I have been in software development for a long time, 2+ decades in the trenches, far from comfortable corner offices. I have met many incredibly talented individuals who have delivered against impossible odds. I have also seen many great teams, staffed with A players, fail miserably, screwing up on a scale that defies understanding. It is for this reason that I put finger to keyboard and start to type ( 2 fingers at a time ) and investigate the dirty underbelly of an industry that could be, and needs to be, so much better.
I did a comp science degree, got my first job with a failing UK computer company ( ICL ) working on a fast failing project. Right out the gate I saw failure close up. At the time I didn’t realize it was the norm, a sign of things to come. Eventually, after years bouncing around jobs and continents, I ended up with Sun Microsystems, ( thanks Scott McNealy and to a lesser extent your pony tailed successor for screwing up a great company and my early retirement ). I joined Sun’s Java consulting practice just as Java launched. It was an unforgettable ride, at the heart of something new and part of a small, exceptional team figuring out the future. We had 3 incredible years, the bubble burst and then 4 years of slow but certain decline, were the phone stopped ringing and expensing donuts and pizza for a team lunch was prohibited.
Over the years, my team worked with many of Sun’s customers. 60%+ of the time we were called into projects in distress. Java was new and lots of projects were in trouble. The problems however were not generally related to Java issues. At times there would be a bunch of C hacks trying to do Java and screwing up, but that was not a problem with Java, it was a problem with a bunch of C hacks trying to do Java.
Projects fail today for the same reasons they failed in the past. There is nothing new at play, its just as an industry we haven’t figured software development out.
Thank god we aren’t building aircraft.