Tuesday, June 5, 2007

MSF or SCRUM in Agile Software Development

Recently I had long discussion about usage of MSF or SCRUM in Agile Software Development, and I found lots of different opinions on this in the community.

So first of all I would like to explain what agile software development is all about.

Manifesto for Agile Software Development

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

So what's the difference in achieving these using SCRUM or MSF; let’s have a look

Scrum provides general guidelines to the software development where the key objective is to achieve a set of prioritized shippable features within specific time limits (typically 30 days sprint) by putting primarily focus on team interaction and to adapt fast changing requirement in business process. So scrum is focused on

1. Team interaction
2. Prioritizing the customer requirement
3. Generating working software in monthly cycles (sprint)

Microsoft Solutions Framework (MSF)
MSF was introduced in 1994 as a combination of best practices and guidelines used within Microsoft product teams and Microsoft's Consulting practice and various other Microsoft internal business divisions. At the core of MSF are nine foundational principles:

1. Foster open communications
2. Work toward a shared vision
3. Empower team members
4. Establish clear accountability and shared responsibility
5. Deliver incremental value
6. Stay agile, expect and adapt to change
7. Invest in quality
8. Learn from all experiences
9. Partner with customers

We can find similarities in these MSF principles and Scrum objectives, so what’s the difference. Well as per my discussion with some of the techies who follow Scrum religiously find these issues with MSF

1. MSF defines work for the team, so it’s missing the self-organizing factor.
2. Incremental units produced using MSF are non-shippable.
3. Its more process oriented, which in-turn slows down the development process.
4. It doesn't support cross-functional behavior within the team.

On the other hand people familiar with MSF advocates the same using these points

1. It has a well defined process
2. It works well for big teams and large projects
3. Onsite - Offshore model is more suited to MSF
4. With MSF people not only share responsibility but they also share the common vision, achievable through a defined process

So finally which is good, well being a consultant I will answer "Depends"........Scrum is fast, can give results really early, but I saw few quality issues, doesn't seem to work for large teams or let say large projects. Even sometime producing independent features are also hard, so depends a lot on the project.

Again, MSF works best in offshore delivery model where the large team shares a common vision to achieve the end result in a well defined manner under agile development.

1 comment:

lharillo said...

Good post, I don't understand why nobody told you that before considering the date of publication.