I’ve worked in over a dozen software development shops as a contractor or employee, and I've always been surprised at the widely varied approaches to project management. For example, in some companies no developer touched a keyboard until the business side signed off on a design specification. In extreme cases, a senior engineer or manager could suggest a language-specific solution, and suddenly three developers were cramming to increase their proficiency in Java or whatever the language du jour was. In some companies, the product shipped after development testing; in others it went through a battery of quality assurance tests. While it’s understandable that different shops do things a little differently, one thing that really surprised me was that the teams within the same organization adopted different project management philosophies.
The need: Consistency
While a smaller company may be able to support multiple management styles, the problem increases exponentially in organizations with hundreds of projects and thousands of employees. Imagine being the CEO of such a company, asking about the status of a few projects, and receiving half a dozen different responses.
The bottom line is that the larger the company, the greater the need for a consistent approach to project management. Consistency results in a common language that everyone understands. Today there are many management methodologies to choose from, including Project Management Institute (PMI), Total Quality Management (TQM), and Industrial Standards Organization (ISO). Which should you pick?
The answer: Microsoft Solutions Framework
In my humble opinion, there is one management methodology that distinguishes itself from others in that it is specifically designed for software projects: Microsoft Solutions Framework (MSF). MSF should interest project managers because it is the aggregate of the best practices, models, and guidelines used by the most successful software company of all time. MSF provides guidance on establishing a team model. It also puts forth a process model for developing and deploying software, including:
The model is fairly detailed and goes as far as making recommendations for interim milestones—though it is important to note that they are just recommendations. MSF was built to be flexible on the premise that every project is different and has a unique set of circumstances. The methodology is designed to accommodate the typically conflicting goals of structure and flexibility—a difficult feat.
One of the most important advantages of MSF is that it provides a standard nomenclature. For example, what does it mean for a project to have a “high risk exposure?” What is risk exposure? How does one calculate it? MSF makes these terms understood by all team members.
The next step
Interestingly enough, Microsoft does not sell MSF as a product. Microsoft uses MSF internally; the software giant also adopts MSF on all its engagements with partners and customers. Microsoft Consulting Services (MCS), which provides technology consulting to large enterprises, uses MSF religiously.
As a software project manager, you should seriously consider Microsoft Solutions Framework. In my opinion, the models, process, and best practices consolidate everything I’ve experienced as a software developer. In upcoming articles I’ll explore the process and risk models, which are key components of MSF.