People in glass houses…
Software engineering isn’t engineering.
Yes, it is. Mostly because “real engineering” isn’t the high bar it’s made out to be. From that blog:
Nobody I read in these arguments, not one single person, ever worked as a “real” engineer. At best they had some classical training in the classroom, but we all know that looks nothing like reality. Nobody in this debate had anything more than stereotypes to work with. The difference between the engineering in our heads and in reality has been noticed by others before, most visibly by Glenn Vanderburg. He read books on engineering to figure out the difference. But I wanted to go further.
Software has developed in an area where the cost of failure is relatively low. We might make million dollar mistakes, but it’s not likely anybody dies from it. In areas where somebody could die from bad software, techniques like formal verification come into play. Those tend to make everything take 10 times longer, and there’s no compelling reason for the industry at large to do that.
If anything, we should lean into this as an advantage. How fast can we make the cycle of change to deployment?
We might make million dollar mistakes, but it’s not likely anybody dies from it.
I had a coworker who got a gig writing PDA software for a remote-controlled baseball machine. He was to this day the most incompetent programmer I’ve ever met personally; his biggest mistake on this project was firing a 120 mph knuckleball (a pitch with no spin so its flight path is incredibly erratic) a foot over a 12-year-old kid’s head. This was the only time in my 25-year career that I had to physically restrain someone (the client, in this case) to prevent a fist fight. I replaced my coworker on the project after this and you can bet I took testing a little bit more seriously than he did.