Thursday 25 August 2011

SCRUM YES/NO

While there’re still discussions and arguments on applying SCRUM, it does exist. One day, you may be requested by your client or your manager to use SCRUM in one project. SCRUM may or may not be a good model, but there are some circumstances you should say "NO" to SCRUM. 

1.       Introduction
This article is to share one project which is failed in applying SCRUM and the lessons learned on it. Because it is an Outsourcing project on new Application Development, this article will so only cover this type of project.
The intention of this article is not to against using SCRUM, but it will provide a checklist to evaluate the factors around the project context to see whether or not we should move on with SCRUM. 


2.       The case study
Paul is Mike’s client. When Paul comes to Mike’s company to outsource one project, Paul only has a list of features which he expects to have in the software product to be built. It will be a B2B enterprise application. Moreover, Paul also wants this project to be run under SCRUM model.
Mike builds a team of 6 people, including 4 developers, 1 technical leader and 1 tester. Mike is the SCRUM Master. In the first few weeks, Paul is very happy when he often sees new screens and new features delivered after every two weeks. (the sprint cycle is two weeks)

Mike also applies most of the principles of the SCRUM, including product backlog, sprint backlog, burn down chart, Sprint planning, Sprint daily meeting and Sprint retrospective meeting. However, because Paul is often busy, Mike hardly arranges time to talk with Paul about which stories should be planned for sprints. Especially, Mike can’t arrange time with Paul for Demo sections after every sprint. Instead, Paul often reviews the products offline at his spare time and sends back the list of findings (bugs or change requests) to Mike.

Sprint by sprint, Mike keeps delivering new products, he also includes high prioritized bugs and important changes into sprints. This makes Paul feel happy as he thinks his system will be ready soon.

After 6 months, Dan who is Paul’s manager asks Mike to plan for the first version to go live. Even many features have been built but some important ones are still not available. Looking into the list of bugs and change requests with more than a hundred items, Dan begins worried. Dan asks Mike to give some artifacts such as Architecture & Design, Unit Test reports, System Test reports etc. but Mike couldn’t give sufficient documents and reports because they were not planned to be done.

Dan asks his Technical Architect to look into the project in more details technically and he’s got the result:
·         Coding convention is not at level of his expectation
·         Unit test coverage is far low from his expectation
·         The architect of the system (MVC) is not followed strictly and it will be very difficult to enhance in the future.
And the worst thing, Dan’s Technical Architect suggests rebuilding the system as it is too late now to modify it.


3.       The analysis
In the above case study, there’re many reasons which have caused the project fallen into a very difficult situation, but in this article I’ll only focus the ones under SCRUM perspective. 

3.1.    Workable product and validation
The heart of SCRUM is to deliver the workable products (the output of sprints) to client as early as possible. Workable means it must be at an acceptance level of quality, otherwise, the product should be cancelled or shouldn’t be delivered.
A lot of products have been delivered during 6 months, but most of them are not workable because they were not validated by Paul, the Product Owner, yet. Without validation, Mike has delivered lots of non-workable products, there is no way to combine non-workable products together to have a complete system. It becomes a mess!

3.2.    Planning
As the nature of the Software Outsourcing industry, the Outsourcing Project Manager who is often the SCRUM Master doesn’t stand in the client’s business. He’s not at the position to make the release plan or decide on which stories need to be done first, which products need to be delivered before the other. Product Owner or someone else from client has this responsibility and the SCRUM Master is only able to commit together with the team on the deliverables of each Sprint. Product backlog and release plan should be client’s mission.
This was not the case in the story when Paul did not really pay too much attention in planning and there was no one else doing this from Paul’s company. Lacking of planning outside of Sprint cycles is like sailing a ship without a compass.

3.3.    Product Owner’s availability
SCRUM encourages communication between Product Owner who knows well on the products to be delivered and the SCRUM teams. The traditional document like software requirement specification will not be used as an agreement between two sides. Instead, Product Owner is supposed to work closely with the team, to answer questions regarding to the features to be done and give feedbacks in time on the output.
Paul didn’t have time for product validation and planning. He also didn’t invest time enough to work closely with the team to tell them what he wants. How the SCRUM team can deliver the right products when the requirement is not written and the Product Owner is not with them.

3.4.    System architect
Not everything can be planned and executed under SCRUM methodology. Even a project is managed under SCRUM there’s still something such as defining System Architecture, creating System Architecture Framework, creating Graphic User Interfaces etc should be done outside of SCRUM cycles.
The team was focusing too much on delivering products and losing focus on a bigger view which is the system architecture. As the result, the architecture was broken. The MVC architecture was assumed in mind of each SCRUM team member, but it needs to be visible and monitored the compliance of implementation.

3.5.    Scope management
Mike was asked to give the Architecture document, the test reports and so on but he couldn’t provide because he didn’t plan for these activities. Paul should have managed this. There’re other expectations of client to be managed beside the workable products such as documents, reports, standards, test coverage etc. Even none of them is required, at least it is agreed in writing. Scope Management is still important in SCRUM typed project.

3.6.    SCRUM Awareness
After all, one major problem which caused the other problems above is about SCRUM awareness of two important stakeholders, the client and the SCRUM Master. Paul didn’t commit time for the project as Product Owner, client didn’t have someone take care of planning because they didn’t have good awareness on SCRUM. Mike didn’t train/coach Paul on the methodology, he shouldn’t have kept releasing products without validation.
SCRUM doesn’t mean undisciplined purely. SCRUM does require the practitioners to follow its principles to manage undisciplined working processes.

4.       SCRUM YES/NO
Ok so you’ve seen the failure and the lessons. I hope if you are starting a SCRUM typed project, make sure you say “NO” if it should be. Actually, the boss will always expect a “YES”, but at least we see which are missing from the checklist below so that we can put them in risk management and look for a mitigation plans.
Item
Y/N
Note
[Product validation] Is it feasible to do validation on products in every sprint?

There must be the acceptance criteria which are used to validate whether the products are acceptable or workable. Something such as  no major defects, unit test coverage, architecture compliance … Client has to commit doing this every sprint.
[Planning] Product vision and release plan must be taken care of.


No matter who does this, it must be done. Normally, someone at client site should be responsible for.
[Product Owner’s availability] Product Owner must have time to stay with the team every day.


It is recommended the product owner co-locate with the team if possible. Besides, he should commit at least 2 hours per day for queries and explanation on stories.
[System architect] There must be some first sprints to do architecture. Alternatively, there must be a non-SCRUM phase for doing architecture.


This is extremely important when the application is big and complicated. Not only doing the architecture but also validating the compliance on the implementation is required.
[Scope management] Scope management must be done before starting SCRUM cycles.


SCRUM doesn’t cover fully scope management. Refer to Scope Management to see what more need to be managed.
SCRUM Awareness

Make sure you have adequate knowledge to be a SCRUM Master, make sure client has good awareness on SCRUM.

5.       Conclusion
Although this article has shared one failure application of SCRUM, it doesn’t have a negative meaning. Instead, I hope you would make the right decision when deciding to go with SCRUM.
Beside this failure, I do see other projects which were applied SCRUM successfully. Look through the checklist, it was almost complied in those success stories. Hopefully, I would have the next post on one typical successful SCRUM typed project.

4 comments:

  1. In this post, I realize two issues from scenario. The first one relates to design missed and another is value-added from list of features developed.
    For issue of design, this team forgot a principle of Agile is Simple Design. It means Design should open to change but close to modify, this does NOT mean no design in Agile
    For issue of value-added, obviously Paul was not Product Owner, so all he wanted were not what brought benefits to org.
    An another thing I see from the scenario is product was not put to Production Environment as soon as it should be.

    ReplyDelete
  2. According to case study, author works out nearly enough the team issues. Very nice and useful topic, I thought. Thank Mr. Dat

    However, I would like to share my thoughts on a issue I think we easily have to deal with in our software project development using Scrum. It is "Scrum Team Issues"

    Applying Scrum process is quite difficult and the Scrum team must be mutual. What is mutual team? I list out some points that the team must possess based on my experience
    + Communication well: I would like to emphasize the important level of collaboration and communication between each others in planning meeting and daily meeting.
    + Good estimation: give right decisions regardless of approving number of user stories commitment, breaking down them to specific tasks and estimating for them
    + Good Scrum knowledge process and Agile principle: please see the link here, I hope it provides some good ideas need to be aware http://www.allaboutagile.com/10-key-principles-of-agile-software-development/
    + Strong technical skill

    It's quite complicated to describe Scrum mutual team in comment thread. Hope could reach you in formal topic.

    ReplyDelete
  3. Simple Design (also called Spike Design) is a smart approach of Agile model and I see it works most of the times. However, it won't work for complicated systems such as B2B Enterprise.

    Production Environment and mature SCRUM teams are also important points to pay attention to. (Actually, it's very nice to have mature teams which PMs don't often have such good luck ;-) ).

    My post doesn't intend cover all aspects. Instead, it helps PMs in the very early phase of project like pre-sale or initial phase.

    ReplyDelete
  4. I have not worked in a SCRUM but I didn't like this model at the first time hearing about it. This model maybe suitable for simple project where the requirement of product/service can be done easily by everyone in team. Skill of team member is not easy to develop through project, so this model requires a certain skill level of team members...Project seems to be moved fast at the start time and will be slower through project life cycle, especially when the problem list become bigger because the decision making is done slowly in this model...Scope is not well managed, it may be cause of "gold-plating" problem :). Team member may feel lot of things has been done but lot of problems should be fixed, what is current stage of project and what is the things should be done to complete project....lost control :D

    ReplyDelete