Microsoft Solutions Framework

July 1, 2008 at 1:58 am | Posted in Development Management, Project Management, SDLC | 2 Comments

When it comes to managing I.T. projects it makes sense to learn from a company that has been doing it for 3 decades.

Microsoft have had the opportunity to develop software solutions on a scale that cannot be touched by even its closest competitors. And over the years they have refined and harnessed this experience into a solutions framework and made it available to the rest us.

What is the MSF?

Microsoft® Solutions Framework (MSF) is a deliberate and disciplined approach to
technology projects based on a defined set of principles, models, disciplines, concepts,guidelines, and proven practices from Microsoft.

and …

Microsoft Solutions Framework … [is] a loose collection of best practices from Microsoft’s product development efforts and Microsoft Consulting Services engagements …MSF has been evolving … based on deliberate learning from the
successful, real-world best practices of Microsoft product groups, Microsoft Services, Microsoft’s internal Operations and Technology Group (OTG), Microsoft partners, and customers. Elements of MSF are based on well-known industry best practices and incorporate Microsoft’s more than 25 years of experience in the high-tech industry.

Microsoft Solutions Framework version 3.0 Overview whitepaper   

My take on it is that it is basically your typical SDLC dicipline with extended “soft” features added – let me explain.

 Let’s take your typical SDLC:

Nothing new here right?
Well MS have taken this design and added some essential extras such as:
Open Communication
Learn from every experience
Manage Risk
Expect change
Shared Vision
Empower Team members
And a biggie …
Establish clear accountability and shared responsibility.

As well as adding some intermediate steps eg:
         MSF: Envision
       MSF: Stabilise

Another useful tool that the MSF employs( and something I haven’t seen many other companies focus much on ) is end user experience.
“Yes Yes,” I hear you say, “we have been doing this all along, nothing new here.”
Well maye. But the fact that they have formalised it and made sure that it is another check box that gets ticked makes it really useful in my opinion.

The MSF also includes a list of roles and assigns duties to them. I found this to be a very interesting aspect. In my experience roles have been pretty well defined. There is the ‘BA’, the ‘architect’ the ‘tester’ etc … but the MSF goes beyond this in that it assigns ‘groups of roles’ to ‘project goals’ – a very interesting concept that I need to spend some more time looking into.

Of course, the MSF is a whole lot more than this but it would be impossible in a one page blog to fully capture everything that is the MSF.
My purpose here is just to let you know that it is out there and that it is a great tool for managing I.T. projects. In fact I think that the MSF is the perfect marriage between Development Management and Project Management.
Why do I say this? Well for me the SLDC seems to focus soley on the ‘process’ with very little regard for the ‘team’. The MSF tries to include ALL the elements that go into successful project delivery.

The reason it is called a framework is basically because it is made up of various components that can be used individually or together to achieve the desired outcome. The MSF offers a ‘wholistic’ approach to solution delivery. A very high level breakdown would be as follows: (Taken from their whitepaper)

• MSF foundational principles.
     The core principles upon which the framework is based.
     They express values and standards that are common to all elements of the framework.
• MSF models.
     Schematic descriptions or “mental maps” of the organization of project teams
     and processes (Team Model and Process Model—two of the major defining components of
     the framework).
• MSF disciplines.
     Areas of practice using a specific set of methods, terms, and approaches
     (Project Management, Risk Management, and Readiness Management—the other major
     defining components of the framework).
• MSF key concepts.
     Ideas that support MSF principles and disciplines and are displayed
     through specific proven practices.
• MSF proven practices.
     Practices that have been proven effective in technology projects
     under a variety of real-world conditions.
• MSF recommendations.
     Optional but suggested practices and guidelines in the application
     of the models and discipline 

If you are a serious development manager I would highly recommend that you spend some time investigating the MSF. It is an invaluable tool to add to your management arsenal.

For more information please visit their site at:



The walk of shame

April 29, 2008 at 12:26 am | Posted in Project Management | 1 Comment

Yes we have all been there.
You put your project plan together, made the proposal, it was accepted and the project was given the go ahead.
You estimated 5 days, starting Monday, for a particular phase to be completed.
Wednesday comes around and it is becoming abundantly clear that you are not going to reach the deadline.
After some soul searching it is decided to go cap-in-hand back to the key stakeholders and ask for more time. I remember the first time I had to do this. I dubbed it my ‘walk of shame’ as I made my way down the corridor. It was my first big project and I was so confident.
We had crossed all the T’s and dotted all the I’s and yet here I was, about to admit failure (in my eyes) before the group that so confidently had entrusted me with managing this project.
Well I’m older and wiser now, and I thought that I would offer a seasoned perspective that some of you may find helpful.

It Happens!
First of all you need to get into your head that this stuff happens. Despite all our best efforts, things change! Sometimes it’s our fault and other times it is the result of something outside of our control.
Usually (as in my case) the estimations were incorrect, and this occured because there was not sufficient requirements  gathering at the outset. remember – you can’t ask too many questions!
Sometimes a key resource is pulled off the project for one reason or another and this can set all your expectations back by weeks or even months.

People Understand!
Remember that in most cases, we are all human, we have a mortgage, a job, a car and a mother-in-law. We are all trying to get through the day and do the best we can. I have found that if we communicate clearly people will usually understand. Yes there is going to be the one argumentative, type A, grumpy pants – there always is. Just deal with it – and Always be honest! Accept blame where it is due and commit to move ahead and bring things back in line.

Don’t take it personally!
Wow this was a big one fo rme. Once it sunk in I felt much better. Remember that you are a professional. Absorb the moment, deal with it, learn from it, and move on.

I have found that regular communication (even a once a day email) helps to position people’s expectations, and lessen the blow when you eventually knock on their door. People are usually open to most things, just try and lessen the surprise by keeping them in the loop.

Never overpromise! 
Guys, this is the most important thing – and I am talking from experience here. Be honest. Always be realistic and don’t be afraid to say “No” it can be a PM’s best tool.

How to cost a project

April 28, 2008 at 2:53 am | Posted in Project Management, SDLC | 1 Comment
Tags: , ,

If you have been asked to estimate the cost of a project, the best way to arrive at a reasonable figure is to breakdown the project into its SDLC components.
SDLC milestones may vary but a general breakdown is as follows:
1) Analyse
2) Design
3) Develop
4) Test
5) Deploy
6) Maintain

Like I said, these are just a high level breakdown but they are a good place to start.
Let’s examine each phase in depth.

This step usually involves the Business Analysts. Each BA has their own way of doing what they do, but it sometimes involves USE CASES and other analytical techniques to achieve a reasonable understanding of the client’s requirements.
This task usually involves a software architect, who liaises with the BA team to gain an understanding of the solution requirements.
This phase is usually led by a Lead Developer who takes the architect’s plans and converts them into a product.
Depending on the type of organisation you are dealing with, this will either be a specialised person / department or it may involve one or more developers from the development team.
This part of the project involves the OPS or IT departments as it normally requires infrastructure assests such as servers etc.
On going bug reportng etc ….

(Please note that very seldom, and in fact never in my experience, does the SDLC actually flow from top to bottom in a linear fashion. There are usually several loops between development and testing etc This topic is on costing and not the SDLC)

When costing a project one needs to start with the following procedure:

  • Hold a ‘Vision and Scope’ meeting with representatives from each of the SDLC teams. In this meeting a high level understanding will be reached as to the expected outcomes of the project.
    Each member will go back to their teams with an outline of the expectations, and be required to gather estimates as far as resources, timelines etc
  • When the project team next meet, all figures are made public and the team members substantiate their estimates under the scrutiny of the other team members.
  • Once a concensus has been reached the Project Manager will draw up a cost estimation based on the outcome of these meetings.

Obviously costing is only one aspect of the PM cycle, and this particular example is based on the ‘Delphi Wideband Method’.

Stepping Out

April 3, 2008 at 1:26 am | Posted in Career, Development Management, Project Management | Leave a comment

Many developers seem to think that they are limited in their career options once they finally reach the point when they no longer wish to be directly involved in the coding process. I too reached this point in my career, and after some soul searching I basically decided that there were 4 paths that I could follow:

This is usually the logical choice for those who still wish to maintain some technical involvement but move into a higher visibility level on the corporate ladder. The majority of architects arrived in their current position by slogging it out as a senior developer or technical lead for some development house ( that’s me 🙂 ) and as such have a really good understanding of the coalface technicalities of designing a solution.

Project Manager
Again, senior developers usually have a decent understanding of the SDLC and as such would have some valuable insight into costing and effort estimates. However one needs a lot more exposure to resource juggling and considerations of resources outside of the development team.
In my experience developers can be quite insulated from clients, BA’s and even the entire testing process. A PM will be involved with all these stakeholders and it is a really good idea for any developer wanting to step out to gain as much exposure as possible to these facets.

Development Manager
Heading up a team or teams of developers at various client sites is another option that a ‘retired’ coder could follow.

The obvious skill that needs developing in this area is ‘contract negotiation’. As a developer you will likely never  have been exposed to this aspect of the project. There are areas of the SDLC where a PM and DM’s roles may overlap but I see the DM as more a solid line reporting path and the PM as a dotted line. A DM will need to be more involved in H.R. issues and not many people enjoy this aspect of the job description.

Complete Career Shift
This is pretty self explanatory, but if you want to use your technical expertise then perhaps you could be a technical writer for a local magazine or website – or you could write a book.
You could become a teacher / trainer of IT or even assist with technical documentation.

I would advise spending some time doing due dilligence to each of the choices by researching the domain knowledge within each discipline.
Spend some time researching the various architecture frameworks eg: Zachman, try and think of where you would use each one and spend some time trying to apply each framework to projects you may have been involved in.
Find out what the pro’s and con’s of each framework are and read as many case studies as you can on each one.

Project Management:
Research the various methodologies eg: PRINCE2 and try and apply them to projects that you have been involved in. Also, do some practice project costings to see how you would have done in estimating the budget for a particular project

Development Manager:
Get involved in ‘first contact’ scenarios when a project is proposed and a client is introduced.
Get some exposre to business law, contract etc and learn from those who have held the position in the past.

I am sure that there are many other options out but these are a few that came to mind as I pondered my own fate.

Create a free website or blog at
Entries and comments feeds.