4 ms·
It really depends on what you consider to be engineering. Traditionally, engineering was creation of a "blueprint". Once you had that, someone had to actually b
by js8 10y ago
It really depends on what you consider to be engineering. Traditionally, engineering was creation of a "blueprint". Once you had that, someone had to actually build the thing in the real world (the craftsmen). But in software? The blueprint is the final product!
Of course there is messiness that was mostly introduced by people, which makes lot of engineering rather trivial, and you can call it a craft if you stretch it. But that's mostly an artifact of doing things wrong.
- varjag 10y agoI would argue with waterfall model (naïve translation of engineering to software) being out of favor for decades now, almost nobody actually makes "blueprints" for software. Agile, XP and TDD is basically "put something together and make sure it doesn't fall apart when we ship it". Now what actually requires engineering is a whole another perspective. I'd argue most software development jobs are closer to "renovate the kitchen" than "calculate building wind load" type of work. Also remarkably in construction, the latter task turned out to be much easier to automate.
- js8 10y ago> most software development jobs are closer to "renovate the kitchen" And why people need different kitchens? Cannot the differences required be resolved by configuration, do they have to be resolved by programming? I argue that everybody having different kitchen is inefficient and wrong approach to software development. Waterfall was never in favor - IMHO programmers (or software engineers) always recognized that there software has no good analogue to reality, and there is nothing like a blueprint for software.
- varjag 10y agoThere are ISO standards for what is known as waterfall model, from block diagrams (the actual blueprint) to project flow. It was the only model in widespread use before time-sharing systems and then personal computing came to dominate the market. The Mythical Man-Month was written as an argument against established practice in the field then. > And why people need different kitchens? Cannot the differences required be resolved by configuration, do they have to be resolved by programming? Sure, if all your want is say IKEA kitchen with IKEA appliances. Some people have genuinely different needs.
- TheOtherHobbes 10y agoEngineering is the process of modelling reality mathematically to save time and money while building useful things. If you skip the modelling part and just build things you hope are going to work - and you can't be precise about when, if, or why they might not work, or how long it's going to take to build them - you're not doing engineering.
- js8 10y agoI disagree. There are plenty of people who I would consider excellent engineers, both in software field (Linus Torvalds) and outside it, but they are not doing any mathematical modelling (except in the sense I outline in the other comment). They are just using lots of heuristics, experience and common sense. But in more mature fields, like mechanical or electrical engineering, such approach is more historical, since the theory and modelling is very well developed. Still, to restrict engineering only to that sounds very wrong from the historical perspective.