Wednesday, February 18, 2009

Software development projects

I recall back in fall 2001 back at Core Networks, shortly after I joined Core. We were kicking off a project for the next version of the CoreOS flagship product. The project lead mentioned that we were going to be doing some tweaks to the software development process for this project.

At that time Andrew, one of the earliest Core Networks employees from the founding in 1998, had this comment. He said "except for emergency bug fixes, no two software development projects in the history of this company have ever been done the same way."

Which was true at the time. What's interesting is 7 years later in 2008 when I left SupportSoft (which had acquired Core in 2004). In 2008 Andrew's statement was just as true as in 2001. Except for emergency bug fixes, we still had never done two software development projects the same way.

At least with Core/SupportSoft there was always some desire to change the way we did software development projects. For whatever reason management, the architects, or the developers or whoever instead of standardizing on something that worked was always reinventing how software was to be developed.

Perhaps it's like software itself, which is perceived as infinitely flexible and changeable. The process of software development is perceived as infinitely adjustable and changeable. Some new fad or methodology. I would argue that the perception that changing software development process is cost free encourages excessive and unnecessary tinkering and adjustments.

I think most everyone would agree that the old style late and large delivery to the test team is not a good way to go. However once you get past that I don't think people recognize that the changing the software development process is disruptive and expensive. I suspect the point of diminishing returns is reached sooner than people would like to admint.


Some recent work on my street has made me think about it I guess. There are 6 apartment buildings on my street. They are all wood, 3 storey, around 30 years old, built around the mid 70s. Although the ownership of the buildings is mixed, within the last 8 months or so 4 of the 6
buildings have had their exterior renovated. Front shingles and siding replaced. Two of the buildings have also got new vinyl windows to replace the legacy metal frame windows.

For the companies doing the work, I'm sure this is a pretty standard project. Shingles and siding on a 30 something 3 storey wood 20 unit apartment building. I suspect that they followed the same methodology for each building project, and did not make material changes from building to building on the order of work done, number of people per building, starting on front vs. back, amount of cleanup done per day and at the end, what work is done by the most experienced journeymen vs. the less experienced apprentices, etc. It was just the same standard way that everyone understands, is predictable, and works well and everyone knows what to do and how and when.

Thinking about it I kind of envied them a little bit. Maybe there's something to that we could use in software.