- MSF v1 (1991)
- MSF v2 (1998)
- MSF v3 (2003)
- MSF is related to MOF (Microsoft Operational Framework)
- MSF has been developed over the last 10 years. [Standish Groups?]
- Success rate on projects improved from 16% to 28%
- Challenged projects reduced from 53% to 49% [pain! but succeeded]
- Failed projects from 31% to 23% [failure, cancelled]
5 reasons why projects fail.
- Separation of goal and function.
(Programmers motivations or consultants’ motivations are going to be different)
- Separation of business and technology
- Lack of common language and process.
- Failure to communicate and act as a team.
- Process that are inflexible to change. (E.g. SSADM)
Projects on average:
- Cost overrun 189%
- Time overrun 222%
- Functionality delivered 61%
- Program manager [represents the constraints.]
- Product management [what is the user’s requirements.]
- User experience
- Development [any technology specialist incl. architect.]
- Test [ensure quality assurance, during all stages of project.]
- Release management [deployability, support, future operational needs.]
MSF Process model.
- Envisioning [Vision/scope approved, finding a focus.... get team together... business problems. who are the users.. 3-4 page vision documents]
- Planning [Project plans approved.]
- Developing [Scope complete.]
- Stabilizing [Release readiness approved. Move to production when the jelly wobbles the least...!]
- Deploying [Run pilots. Pre-production testing. Change management issues. ]
Sample documents at http://www.microsoft.com/msf
DEVELOPMENT - Public Daily Builds
- Public Daily Build - Biggest improvement in software development.
- Building the product in an executable on a daily basis. Feels like a coherent whole.
- A strong indicator that a team is functional.
- A way to make the product and its progress VISIBLE.
- Focus on breadth NOT depth.
- Solves one major problem integration build.
- n x Daily build(s) lead to internal release.
- On a 4-6 months project (2 months build) ... first daily build will take 5 days or so...
- BVT - Build Verification Test.... minimal level of compatibility.
- 2 days of failed daily builds in a row is a problem, get the other programmers together to fix before continuing with other responsibilities.
- Use source code control. (VSS, Rational ClearCase)
- Each developer works locally (all code and executables on every workstation).
- Define quality levels. (BVT, TST, IDW, IDS, IDC)
- Automate the complete build process (batch files.)
- Upgrade to Visual Studio.NET supports daily build process [How?]
- Focus on high quality competent programmers.
Changing Role of Architects
- Systems Analysts no longer good enough.
- Today an architect must be an analyst, dba, programmer, and project manager.
Enterprise / Solution Architects must also consider the following views:
- Portfolio Management.
- Finances & Costs.
- Vendor Management.
- Technology Strategy and Innovation.
- Business Processes.
- Project life-cycle (i.e. MSF architecture, design, implementation, operations)