Unfortunately, I’m not going to be able to finish that series I started a few weeks ago. Due to a restructuring and reorganization, my position at Microsoft has been eliminated. In plain English, I’ve been laid off and this was my last day at MSFT.
My intent with the series was to describe the various approaches to software development and testing that I’ve seen in my long career. They range from the process-less “get it to market now” approach to the process heavy approach commonly seen in contracts for the U.S. government.
The process-less approach risks long stabilization phases and consequent delays in getting to production. A heavy process approach often produces products which are obsolete by the time they are released to the market, especially in hardware.
The industry must find a balance somewhere in between the two approaches that has enough process that you know the design is solid and will work at the projected scale of use. Can you imagine the havoc if a web site selling popular products could only handle a few users at once?
In my opinion, Test Driven Development (TDD) will be part of finding that balance. TDD may increase development phase up to 25% but it decreases the test and stabilization phases because the code is already well tested at the unit level. In other words, the test team can focus on integration and end-to-end testing because the classes have been fully tested independently.
I also believe that the balance will be slightly different for different segments of the software industry. Software engineers developing and testing software for medical devices, avionics suites for airplanes, and other mission critical types of software have an obligation to make sure their work is rock solid. Those developing game applications can take more risks. No one will die if a user’s computer’s solitaire game crashes!
It’s been an interesting ride for me at MSFT. Since I was a total UNIX geek before I came here, I went from never having used a Windows PC to using the most sophisticated products MSFT produces. I love learning new technology and attacking new problems. So, it was fun for me.
I loved working with the Developer Community Labs (previously called Aftermarket SOlution and/or Solutions) team to produce open source tools for Visual Studio users. I’m sad that MSFT has discontinued that effort as many of the tools we produced helped tens of thousands of MSFT customers. For example, our MSBEE tool had over 38,000 downloads last time I looked at it.
I now have to decide whether I want to return to my roots in UNIX or continue working in Windows. Once I have made that decision, I will be blogging again on another site.