zlacker

[parent] [thread] 8 comments
1. datalu+(OP)[view] [source] 2021-08-06 13:51:07
I would say a lot of this confusion comes from the word engineer. Building software is not like building a bridge. You can't design it first and then go and build it.

So I would say engineer is a poor term, but also the only one we've got for now.

replies(8): >>ordu+V5 >>clover+0b >>dnh44+Ho >>blacks+yv >>Rd6n6+pC >>motion+1I >>cfcfcf+071 >>branko+Mj2
2. ordu+V5[view] [source] 2021-08-06 14:23:08
>>datalu+(OP)
As I see it, it is more nuanced. When engineer designs a bridge she does a very similar work to a programmer. Programing it is like designing a very complex bridge without constructing it really, because when you finished your design it had been built already.

So it is not exactly like you've said:

> You can't design it first and then go and build it.

You can design, but you cannot build.

A process of building by a design can be paralleled with deploying software -- suddenly there is a hairy real world, not all the hair was considered at the design phase, and either we hack around existing software (i.e. design plans), or call a programmer to redesign.

3. clover+0b[view] [source] 2021-08-06 14:43:37
>>datalu+(OP)
> You can't design it first and then go and build it.

You can't design it in full in one go, but you can design it and then incrementally update said design. Sadly many (companies) do not. But you can define the problem(s), the scope, the scale, and then design a solution appropriately to meet those needs (for a defined period of time). That's what distinguishes software engineering from hacking. They both have their place. Many companies claim to do the former but are mostly doing the latter. Software is still early in its life and as various kinds of system designs stabilize, so will the formalizations around what it means to be a software developer. Reading a book like Designing Data Intensive Application's you can't help but see those formalized topics budding.

4. dnh44+Ho[view] [source] 2021-08-06 15:40:37
>>datalu+(OP)
No it's not like building a bridge. It's like thinking you're building a bridge but then the client decides he needs it to be moveable so then you have to give it legs so it can walk. Then the client's manager decides he wants it to be able to get to the moon so you then have to strap rockets and parachutes to it. Then after it gets installed and someone finally speaks to the users you realise all they needed was a canoe.
5. blacks+yv[view] [source] 2021-08-06 16:07:12
>>datalu+(OP)
Hmm, 'developer' has a cheerful kind of vagueness about it - it comes close to describing the iterative process of starting to write something one way, then realizing your original approach wasn't quite right and rewriting it. At least, I don't think mechanical engineers do that too often...
6. Rd6n6+pC[view] [source] 2021-08-06 16:36:05
>>datalu+(OP)
In Canada, engineer is a protected title. There are software engineers and you get professors who stress to you the importance of testing and safety, and there are safety and ethical requirements. It’s not very strongly enforced though, lots of people here get away with using the title
7. motion+1I[view] [source] 2021-08-06 16:57:48
>>datalu+(OP)
I mean, I'm and audio engineer, a fire protection engineer by degree, and a software engineer. Your bridge building analogy doesnt hold up, there is always changes and refinements of guestimations.
8. cfcfcf+071[view] [source] 2021-08-06 18:56:38
>>datalu+(OP)
Yes, I personally find developer or programmer more accurate, although neither is without its own connotations and baggage.

As a designer I’m a bit embarrassed by the trend to describe ourselves as product designers. To me a product designer makes chairs and coffee tables.

9. branko+Mj2[view] [source] 2021-08-07 05:47:21
>>datalu+(OP)
It's exactly like building a bridge... if nobody never built a bridge before.

The only reason you can design a bridge beforehand is because (millions?) bridges have been built before so you can apply the lessons learned. Even if your bridge is "unusual", it will still be similar enough to older bridges so you don't have to invent the vast majority from scratch.

Other kinds of engineering don't have the luxory of leaning on the prior experience so much, simply because there is less of it. SpaceX's reusable rocket could not have been be fully designed before built, simply because nobody built a reusable rocket before. But it could be done through iteration, which is just another name for experimentation.

Software tends to be less like bridges and more like rockets... all of which falls within the spectrum of "engineering".

[go to top]