2 ms·
Software development as practiced now by a huge number of individuals and companies is closer to a craft, but it can be and must be more than that if we want to
by blub 8y ago
Software development as practiced now by a huge number of individuals and companies is closer to a craft, but it can be and must be more than that if we want to be able to tackle the growing complexity of software and improve its overall barely adequate quality.
Crafts don't scale and are a poor fit for highly complex domains.
The curse of software development is its huge financial success, anemic legislative specification and the observed reality that customers will still buy poor quality software.
These are preventing the craft-like programming from turning into software engineering, but the craft is already failing to reach expectations: countless security disasters, unethical programmers enabling spying on millions, software literally killing users. This stuff will only get worse.
And finally, we do understand software engineering well enough to teach it properly. It's just not done, because it's not considered necessary when one can get by with a computer science degree, no degree or a bootcamp certificate.
- fsloth 8y ago"And finally, we do understand software engineering well enough to teach it properly." This is news to me. I would very much like a citation, please. Or do you mean applying formal proof verification to everything?
- blub 8y agoEngineering doesn't mean using formal methods or specific fancy proofs, it's a systematic, disciplined quantifiable approach to software. It's described in an ISO standard and the more approachable IEEE SWEBOK. The above is neither widely known (I only found out about it after many years of doing professional programming), nor is it necessary in order to be successful in the profession and/or make a lot of money. Commercial software development is mostly a wild west and we're calling that craftsmanship.