Do you ever wonder why the software projects in your department consistently seem to run out of time or money (or both) before agreed goals have been achieved? Why staffing a team with technical experts and certified project managers is no guarantee of project success? Why what seemed like an achievable plan at the beginning of a software project inevitably falls short of expectations?
The Information Technology (IT) industry is filled with endless examples of high-visibility software projects that failed miserably: multi-million dollar budget blowouts, faulty software that was released prematurely into a live environment to meet a contractual (or management) deadline, and part-time support and maintenance services that become unending full-time commitments. Even more notorious are the numerous smaller projects, where delays, quality issues and firefighting eat away at staff’s time, deplete allocated budgets, and risk jeopardizing the IT department’s credibility in the organization.
The truth is that missed deadlines, problem-ridden software and budget blowouts have become so commonplace in the IT industry that people have come to expect them. It is a rare situation where software and IT services are delivered on time, within budget and to a sufficiently high quality to genuinely meet the needs of the business. Having an IT department that consistently achieves these objectives is virtually unheard of.
As an IT director, the challenges that you face in delivering successful software solutions and services are compounded exponentially by the challenges of achieving these objectives within the management structures and constraints of your organization – including budgeting, staffing, corporate reporting, complying with governance frameworks (e.g. PRINCE2® and ITIL®), strategic planning, negotiating and managing contracts, attending endless meetings, and keeping a range of internal and external stakeholders – including your executives – happy. This is in addition to the time that you spend fighting fires, addressing quality issues in delivered software, and appeasing dissatisfied users. These responsibilities alone are enough to fill a 60-hour week, which barely gives you breathing space to get your head around new approaches to software and services delivery, let alone implement them in your department. So why is Agile worth your time?
The best way to answer this question is by having a look at the actual work that your staff do on a daily basis. How much time do people really spend:
• Creating, adjusting – and maintaining – their project plans?
• Writing up – and then constantly modifying – functional and technical specification documents?
• Trying to interpret user requirements on their own (and then reworking released software to support what the users actually wanted)?
• Accommodating unrealistic – or unachievable – system capabilities that the users have requested?
• Building functionality that the business rarely – or never – uses?
• Managing scope creep when user requirements change (including corresponding changes to project plans, functional and technical specifications, resourcing, budgeting and contracts)?
• Firefighting to resolve last-minute issues before software is released?
• Addressing bug fixes and usability issues in the delivered software?
Each one of these activities is distracting your staff from the core business of delivering the systems and services that the business genuinely needs. These activities are eating away at your team’s productivity by taking up an inordinate amount of their valuable time – and yours. A critical review of the day-to-day work in your department will likely reveal that the time-wasting activities listed above are the root cause of many of the missed deadlines and budget blowouts in your projects.
Agile methodologies provide proven and practical approaches for minimizing the countless hours that IT staff members spend on creating and updating upfront project plans, developing and maintaining detailed documentation, accommodating unrealistic user requirements, building low business-value features, and addressing pre- and post-production software problems. Agile approaches allow your staff to focus the majority of their time on building and delivering high-quality, fully functional, fully tested solutions that genuinely meet the needs of the business.
At the heart of Agile approaches are adaptive management practices that shift the focus of your staff from struggling with immovable upfront commitments to working collaboratively with business areas to achieve shared goals throughout the process. Agile replaces the time-consuming detailed management of scope creep with an understanding that user requirements will change as the project progresses, and, therefore, provides low-overhead structures to support these changes. Agile encourages teams to deliver fully functional, fully tested, production-ready software components on a regular basis (generally once a month), which mitigates the risk of finding significant technical issues at the end of the development cycle – when making changes to software can be much more costly and resource-intensive. Agile approaches measure the team’s progress through hands-on reviews of working software, not piles of status reports.
These are the real productivity gains1 that Agile approaches have delivered to thousands of organizations worldwide, including Nokia Siemens Networks2, Yahoo!3, Google4, Microsoft5, BT6, Bankwest7, SunCorp8 and Wells Fargo9.
As an IT director, you are in a position to leverage the extensive work that these organizations have been doing over the past 20 years to implement – and refine – Agile approaches. However, the real challenge for you is to make these approaches work within the structures, constraints and culture of your organization.
This book has been written specifically to address the unique challenges that IT directors and managers face when implementing Agile approaches within their organizations. It provides you with the information that you need to assess whether Agile is right for your department, to select the Agile methodologies and practices that are best suited to the work that you do, to successfully implement these approaches in your department, and to measure the outcomes. Most importantly, this book gives you strategies for aligning Agile work within the unique reporting, budgeting, staffing and governance constraints of your organization – arguably, the biggest challenge.
2 NokiaSiemens and Agile Development, Haapio P, JAOO (2008): http://jaoo.dk/file?path=/jaoo-aarhus-2008/slides//PetriHaapio_CanAGLobalCompany.pdf.
3 Lessons from a Yahoo Scrum Rollout, Mackie K (2008): http://campustechnology.com/articles/2008/02/lessons-from-a-yahoo-scrum-rollout.aspx.
4 Scrum Tuning: Lessons Learned from Scrum implementation at Google, Sutherland J (2006): http://video.google.com/videoplay?docid=8795214308797356840&q=type%3Agoogle+e ngEDU.
5 Microsoft Lauds Scrum Method for Software Projects, Taft D K (2005): www.eweek.com/c/a/IT-Management/Microsoft-Lauds-Scrum-Method-for-Software-Projects/.
6 Agile Coaching in British Telecom, Meadows L and Hanly S (2006): www.agilejournal.com/articles/columns/column-articles/144-agile-coaching-in-british-telecom.
7 Bankwest goes agile: project time slashed (2010): www.zdnet.com.au/bankwest-goes-agile-project-time-slashed-339306091.htm.
8 Suncorp goes Agile for 19k desktop integration project (2008): www.itnews.com.au/News/130927,suncorp-goes-agile-for-19k-desktop-integration-project.aspx.
9 Ready, Fire, Aim! An Agile Approach to Architecture & Software Development (2009): www.milwaukeeagile.com/events/11787272/?eventId=11787272&action=detail.