|
Why not try moving to it gradually? Implementing an Agile Development methodology on a custom (or bespoke) software development project can be difficult and many organizations new to the agile methodology struggle to adopt it. One of the big ‘problems’ with Scrum (a flavour of Agile Development) is that project-related issues come to the surface early because the team must deliver potentially release-able software within a month. Those issues in combination can seem insurmountable to those new to Scrum. Typical issues/obstacles that arise include:
In a traditional (waterfall) project, the team can spend months on design and when development begins they may start with the low complexity features, thereby not identifying issues until it is too late; forcing the project to run over-budget and/or delivering a solution that doesn’t meet the users’ needs. When introducing Agile, organizations often attempt to tackle all of these issues head on and get overwhelmed with the new methodology, then choosing to revert back to what they are familiar with. Why not introduce Scrum in stages to enable an organization to deal with issues one at a time and gain the benefits associated with solving each issue gradually? Based on my experience as an Agile/Scrum Coach, I have found that introducing each stage below gradually over a number of months can work effectively for an organization that is struggling with Agile Development. This article outlines a number of stages that a project team should go through in the introduction of Scrum. Each stage is summarized and then outlined in more detail below. The first stage introduces prioritization of requirements, focusing only on the highest priority ones within a time-boxed two week sprint. Introducing prioritization can be difficult and issues with lack of business ownership and inability to make decisions must be overcome to enable you to complete this stage. The benefit gained is the ability to re-focus based on changing priorities. At the second stage, you will overcome the obstacle of gaining business buy-in into the concept of Agile and ensure that the business agrees that quality and high priority business requirements are the top priority – over a detailed plan. You will have introduced estimation based on story points which will give the business improved control of the project in making decisions related to priority. At the third stage, you will ensure the team is collaborating more closely; overcoming team communication and development skills deficiencies. You will have reduced the number of defects and the team will produce higher quality software quickly. At the fourth and final stage, proper user stories and acceptance tests written by a Business Analyst will be introduced and the software will be frequently demonstrated to users so that their feedback can be incorporated. The business must learn to trust the team and agree to minimal documentation and sign-off. Once complete, teams are able to deliver software that is more closely aligned with what the user wants. Each stage is outlined in more detail below: Stage 1: Focus on the highest priority requirements within a time-boxed sprint Work closely with the business representative to ask the simple question 'what happens if we don't do that?' For teams that are less Agile, they will quickly realize they are working on a number of low priority requirements that do not necessarily provide much up-front benefit to the user. Once the first logical chunk of work has been identified, but before any development work begins, sit with the team to break down the requirements into tasks (referred to as sprint planning in Scrum). Get team members to commit to estimates so that everyone is aware of what they must do in that first time-boxed sprint. It is a good idea to use a board or software to track the tasks and ensure they are completed within the sprint. Scrum features introduced at this stage At the end of every sprint the software is released for testing. At this stage, I wouldn’t recommend attempting to release the software to testers multiple times throughout the sprint. Issues overcome at this stage Developers always tend to under-estimate their work. When I start introducing Scrum I continually coach the developers to ‘over-estimate’ their tasks during sprint planning, but in the first few sprints individuals often over-commit as they get used to the concept of a time-boxed sprint.
Benefits gained at this stage Stage 2: Communicate the benefits of Agile to the Project Sponsor Some coaches will suggest that this should be the first stage of introducing Scrum/Agile into an organization. I recommend that this is not done until after the first stage, because until the issue encountered in stage 1 related to decision making and business ownership is resolved, there is nothing to get agreement on from the project sponsor. Once the requirements have been prioritized, it is important to ensure that the project sponsor agrees with the concept of Agile. The biggest advantage of Agile is that the team will provide the highest priority business requirements quickly and the solution will be of high quality. The biggest ‘disadvantage’ of Agile is that because quality is not negotiable, if issues arise, the lower priority requirements will be moved further out on the plan. In other words, they no longer have the Gantt chart that predicts (often incorrectly) exactly what features are scheduled when. Instead of a detailed Gantt chart, communication with the Project Sponsor should include high-level goals (outlined in order of priority) planned for the next release. To be able to provide the goals planned for the next release, the developers must provide some high level estimates (story points – relative point system to estimate development time) for each requirement. Based on this the business is able to better prioritize and you should be able to come up with a rough idea of which requirements will make it in to the release. The most important concept for the project sponsor to understand is the ‘Iron Triangle’, as depicted in Figure 1. One of the basics in Project Management is that with any project, if the scope (or the amount of features implemented) is increased then cost and/or time must also increase.
Figure 1 – The Iron Triangle The key thing to focus on with Agile Development is that because you have outlined a fixed release date and have a defined team, time and cost will remain the same and scope is what changes. The Project Sponsor must understand that the goals for the release have been prioritized and if issues arise, the quality of the product does not suffer and we still meet the published release date – but features can be moved out into a future release. Scrum features introduced at this stage Issues overcome at this stage Benefits gained at this stage Stage 3: Improve Team Collaboration and Software Quality Ideally the team should already be co-located, including Business Analysts, Testers and Developers. It is now time to introduce the ‘daily stand-up’, and the sprint retrospective to enable the team to talk about what they did well and where they can improve. In the first stage, developers started committing to their own estimated tasks at the beginning of each sprint. Once that is working well, you can enable team members to select their own tasks from the planning board during the sprint. At the beginning of a sprint, rather than committing to individual tasks, they will be committing as a team to complete all of the user stories, which encourages self-management. The developers should help each other solve issues and collaborate on the best approach for design using pair programming where it makes sense. Not only must the developers communicate more with each other, but the communication must spread to the Testers and Business Analysts as well. This is the only way we can define what should be built and tested. When I first started coaching one team, someone told me that he felt like software testing was like going into an exam where they had no idea what to study since they weren’t sure what would be covered. This was because testers were ‘being creative’ and coming up with ‘new and crazy’ scenarios to test. There were so many ‘defects’ that every few weeks there would be a long defect prioritization session. This type of defect prioritization should never be required. Instead, everyone should be very clear before development begins what will be tested so that the developers can write code that meets the requirements and defects are therefore minimized. If the goal is high quality software or zero defects by the end of the release. The only way to accomplish this is to ensure that defects raised are ‘real defects’ i.e. there is a business requirement (or acceptance test) that is not currently being met. To ensure defects are ‘real’, testers must communicate regularly with the testers and developers. If in doubt, BEFORE raising a defect the tester must clarify that the issue they are raising really is a defect. If it is a new feature, it is instead added to the product backlog.
Scrum features introduced at this stage The team is using acceptance tests to more clearly state the ‘definition of done’ so that both developers and testers know exactly what is expected. Software can be released to testing throughout the sprint rather than at the end of the sprint and defects should always be given top priority over new features. Issues overcome at this stage I have worked with a team that didn’t have any Business Analysts – just a Product Owner who was not available the majority of the time. In this case, we attempted to have the testers and developers write acceptance tests together at the beginning of a sprint. This was very difficult and productivity improved dramatically when Business Analysts were added to the team. Benefits gained at this stage Stage 4: Ensure requirements are user stories that incorporate real feedback At this stage, it is important that the Business Analyst steps back and examines the high priority functional requirements scheduled for the next iteration to ensure that they fully understand the requirement and are communicating it clearly. The best way to minimize misinterpretation is to write requirements as user stories. They should be worded in the following way: ‘As a’ user ‘I want to’ do the following ‘so that’ the following benefit can be met. The Business Analyst must make it clear what is expected at the end of a sprint – also referred to as ‘the definition of done’. To communicate this clearly acceptance tests should be written. To ensure that the team has actually developed what the user wants, at the end of each sprint, demonstrate the solution and get feedback from the user! For software that is already in production, ensure there are frequent releases so that real user feedback can be incorporated. Note that the best way to enable your team to release software frequently is to introduce automated regression testing. Scrum features introduced at this stage The best way to demonstrate that limited documentation still works is to demonstrate the solution to the users regularly and incorporate their feedback – this is a key feature of Scrum. Ideally, the team has been producing working software at the end of every sprint, but if they haven’t been, now is the time to enforce this. Issues overcome at this stage Benefits gained at this stage
Conclusion In my experience, there are a large number of organizations that are adverse to change – especially large corporations and government organizations. In these types of organizational cultures, it is best to deal with one obstacle/issue at a time rather than getting overwhelmed with all issues at once. I recommend that you first ensure the business is taking ownership and making decisions. I think it is best to focus on overcoming this obstacle first before moving onto the second stage. Once a Product Owner has taken control of a prioritized product backlog and the team is working on only the top-priority requirements, it is then time to explain the benefits of Agile to the business. Once they have bought-in to Agile and are given more control over the project, it is then time to focus on improving software quality. Improving team collaboration will ensure that developers, testers and business analysts are all working towards the same objectives in each sprint will enable you to reach the goal of zero defects at the end of each release. The final goal is better met user expectations which I think is only possible through the introduction of user stories, acceptance tests and regular demonstrations with users. Getting the business to agree to new processes around documentation can be difficult as it requires that trust in the team is established – which again is difficult to do until the initial obstacles have been overcome. About the Author Lorraine Pauls Longhurst is a Certified Project Manager with expertise in the use of Agile software development methodology (SCRUM / ADM) with LPL Software Consulting (www.lplconsulting.com.au) based in Sydney Australia.
Trackback(0)Comments (1)
|
| Last Updated on Wednesday, 10 November 2010 12:17 |
Agile Marketplace - Announcements and Special Offers
Upcoming Webcasts
Sponsored by Urbancode - On Demand
Mastering Complex Application Deployment
Sponsored by CollabNet - Wednesday, August 24, 2011
Closing the Agile Loop: Continuous Integration, Continuous Information
ScrumWorks Pro – The World’s Best Agile Project Management Tool
Simply put, CollabNet’s ScrumWorks Pro is the best Agile project management solution on the market, bar none. More than 150,000 Agile professionals rely on the power and simplicity of ScrumWorks every day. But don’t take our word for it – try it yourself for free. CollabNet is now providing the first 10 users of ScrumWorks Pro at no charge!
Download ScrumWorks Pro today!
The Business Case for ALM Transformation
Are legacy systems holding your company back? Breakthrough these technical constraints with an open and scalable environment that meets your unique business need to transform. There is no reason to be locked into an obsolete platform. The output of a number of recent transitions from legacy systems, this is practical white paper shares lessons learned and illustrates how guidance and enablement can pave the way for change.
Download this Whitepaper


Having troubles introducing Agile Development on your custom software development projects?



http://www.breakthroughsolns.com/BooksAndPapers/Papers/MakingSenseOfAgile.aspx
Chuck