The Truth About Agile Software Development with Scrum, The Facts You Should Know
Copyright Notice of rights All rights reserved. No part of this book may be reproduced or transmitted in any form by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher. Notice of Liability The information in this book is distributed on an As Is basis without warranty. While every precaution has been taken in the preparation of the book, neither the author nor the publisher shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the instructions contained in this book or by the products described in it. Trademarks Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations appear as requested by the owner of the trademark. All other product names and services identified throughout this book are used in editorial fashion only and for the benefit of such companies with no intention of infringement of the trademark. No such use, or the use of any trade name, is intended to convey endorsement or other affiliation with this book.
The Truth About Agile Software Development with Scrum, The Facts You Should Know Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing crossfunctional teams. Agile methods generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices that allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals. Conceptual foundations of this framework are found in modern approaches to operations management and analysis, such as lean manufacturing, soft systems methodology, speech act theory (network of conversations approach), and Six Sigma. This book is filled with case studies and real life anecdotes. If you like learning by example, this book is for you. Scrum is quite likely the best starting point for most companies interested in pursuing an agile development process. The readability and excellent anecdotes in this book make it a fantastic starting point for any journey into agile development.
Filled with examples of how Scrum is applied Scrum in many varying situations. Although this book is ostensibly about software development, Scrum has its roots in general new product development and can (and has been) applied to a wide variety of development projects. Learning Scrum by reading a book filled with examples like this is the best way to get the feel for how to use it on your own projects. This book really hits the nail on the head and delivers what's needed the most: a practical guide to Scrum with anecdotes and "what happens if..." situations from real world Scrum implementations.
Table of Contents Agile - More Than Just a Methodology... 11 Agile Development Brings IT, Business Together... 13 Agile Planning from Enterprise Vision to Team Stand-Up Part 1 16 Agile Project Management... 20 Agile Scrum - Incorporating Usability Practices and UCD Processes in Agile Projects... 21 Agile Software Development Ecosystem... 23 Choosing a Scrum Pilot... 26 Estimating Agile Software Projects - How to Stay Within Budget29 How Agile Methods Resolve Chaos and Unpredictability in Software Projects... 34 How Agile Offshore Practices Can Avoid the "Real" Costs of Offshore Outsourcing... 42 Keep Business Operations and Logistics Simple, Streamlined and Agile... 46 Monitoring Source Control For Enhanced Agile Visibility... 51 Principles Of Agile Manufacturing... 54 Proven, Practical Tactics For Agile IT Release Management - A Case Study... 56 Proven, Practical Tactics For Agile IT Release Management - Definitions and Triage... 60
Proven, Practical Tactics For Agile IT Release Management - Final Quality Control... 68 Proven, Practical Tactics For Agile IT Release Management - Lessons Learned... 73 Proven, Practical Tactics For Agile IT Release Management - The Core Solution... 79 Scrum Acceptance Criteria... 86 Scrum Backlog... 88 Scrum Daily Standup... 90 Scrum Epics... 92 Scrum Impediments... 94 Scrum is a Flexible Process!... 96 Scrum Master Role... 99 Scrum Product Backlog Grooming... 101 Scrum Product Owner... 103 Scrum Retrospective... 105 Scrum Teams... 107 Scrum With a Physical Taskboard... 109 Six Sigma and Agile Software Development... 112 Source Code Analysis in an Agile World... 114 Successfully Communicating With Distributed Agile Teams... 117 The Agile Software Revolution - Information Technology in US Manufacturing Today... 121 The Role of the Product Owner in Scrum... 127
The Scrum Sprint Burndown Chart - Every Picture Tells a Story... 130 What Every Manager Ought To Know About Agile Development... 133 What is Agile Software Development?... 136 What is Agile Software Testing?... 138 Why Scrum Teams Should Be Small... 140
11 Agile - More Than Just a Methodology Agile is not just a software development methodology but a way of working that helps deliver business value faster, cheaper and with less risk. If you are an IT professional within an IT department or organization, or if you are a business professional in any sector, Agile values, principles and practices can help you optimize your team, your deliverables and the related processes. Agile started off as a software development and delivery methodology but over the last few years it has grown broader and scaled to the organization level. Organizations in all kinds of industry are finding that the Agile way of working is not just suitable for IT departments but for the organization as a whole and it is delivering tangible benefits in record time. Agile is not a radical new way but rather an evolution of best practices and work philosophy that now has a definite shape and can be implemented to deliver substantial improvements. Agile Values Values are ideals that teams should pursue as a goal. Agile Principles Principles are applications of the Agile Values or Ideals to a particular industry. Value:Focus on business benefits and risk mitigation. Collaboration:Focus on actively working together and leveraging collective knowledge. Speed:Focus on time-boxed delivery and sustainable development. Flexibility:Focus on adapting to business requirements and welcoming change. Simplicity:Focus on keeping things simple. Teamwork:Focus on creating empowered, self-adjusting teams. Agile in Practice There is more to Agile success than just using practices. However, practices can serve as valuable techniques to assist you working Agile.
12 Agile Leadership Focusing on leaders and stakeholders outside and around the Agile project team (not project or iteration managers), this course outlines and examines the leadership role in dealing with Agile project teams and teams working in an Agile manner in general. Learn about the roles, responsibilities and accountability of line management and team leaders, both de-facto and nominated. This course covers leadership behaviors and traits required to be effective and efficient in an Agile environment, as well as imparting tips and techniques to enable leaders to build high performing teams. https://www.agileacademy.com.au CamParry
13 Agile Development Brings IT, Business Together I write a lot about the general importance of improving communications between IT and the business and the havoc that poor communication between the two camps can wreak. Considering the strategic importance of software applications to many companies and the high costs of development and, in particular, of going back and doing major code fixes, development is one process where communication would appear to be especially important. There's also users' general dissatisfaction with enterprise applications to consider. Close communication between users and developers is a key characteristic of a process Computerworld calls application development 2.0. I'm no expert, but I think the article is referring to Agile software development, which departs from the traditional waterfall development process in a number of ways. As is the case with a number of other tech trends, Agile first gained popularity with consumer-oriented applications and is making its move to a somewhat skeptical enterprise. Looking at it from a high (and admittedly non-technical) level, I am not sure why companies seem so suspicious. Agile values flexibility, simplicity and getting tasks accomplished quickly - three characteristics that are hard to see as negative. I learned a little about Agile development in a recent discussion I had with Doug Mow, senior VP of marketing for outsourcing provider Exigen Services. Perhaps the single biggest difference, says Mow, is that "Agile methods assume that change is inevitable and seek to incorporate change, not resist change."
14 In outsourced application development, a competitive force, regulation or other factor that leads companies to ask for a change not included in original design specifications leads to a change in scope and a change order with added cost. While added costs may not be as obvious for an in-house project, delays do drive up costs and also often create ill feelings between the business and IT. As Mow puts it: "There's often this gap of IT saying, "The business can't make up their minds" and business saying, "IT can't keep up." Agile's emphasis on speed and its iterative nature result in greater user participation, fewer hard feelings and hopefully, happier business people. Says Mow: "One of the benefits of this is that you deliver working code much sooner. The business community can request changes in between each one of these iterations. The business community is watching this system become more malleable instead of more rigid. The changes they request are actually being incorporated. The issues they raise are addressed sooner in the process. Their participation actually has an effect on what happens - this isn't always the case with more traditional development methodologies. You really get a greater degree of alignment between IT and the business." A caveat: Whether a project is in-house or outsourced, Agile requires a high degree of collaboration between IT and the business, something that not every organization is prepared to offer. According to the Computerworld article, which echoes many of Mow's points, 70 percent of developers participating in a recent TopCoder online coding competition said that traditional corporate development teams could benefit from newer techniques, especially incremental feature releases, speedy user feedback and quality assurance programs involving users. The article offers five suggestions for tech executives who want to try Web 2.0 development:
15 Encourage close contact between developers and end users, and involve users in quality assurance processes; Stress simplicity; Use dynamic scripting languages like Ruby, Python and Perl rather than Java or.net; Emphasize frequent releases; Users, not developers, should determine new features. Another endorsement for Agile: General Electric engineers apparently use Agile methods for frequent tweaks to the company's much-vaunted SupportCentral network, which serves 400,000 users in 6,000 locations around the world. Read Ann's complete interview with Doug Mow, senior VP of marketing at Exigen Services, "Outsourcing, with an Agile Twist" - http://www.itbusinessedge.com/item/?ci=42547 AnnAll
16 Agile Planning from Enterprise Vision to Team Stand-Up Part 1 Experience gathered during large-scale implementation of Agile concepts in software development projects teaches us that the currently popular Agile software development methods (like Scrum ) do not scale to program, product and organization level without change. The fundamentals for changes to these methods are found in Lean principles, or: the future of Agile methods is found in its origins. This paper describes a planning framework that has been used successfully in large-scale Agile projects and investigates the impact of introducing this framework on three core Lean principles : Muri, Mura and Muda. Planning in Large Scale Agile Projects In Agile methods, loading a team with work is done through iteration planning. Due to the shortness of the iteration (typically one to six weeks) a plan reduces in importance and planning gains in importance. For small projects, it may be sufficient to plan only a single iteration at a time. The experienced disadvantage of iteration planning when applied to projects that run for more then a few iterations or with multiple teams is that the view of the longer term implications of iteration activities can be lost. In other words: the view of the whole is lost. A solution is to add planning levels to incorporate the current view of the whole. In plan-driven and waterfall methodologies, this problem is overcome through a large upfront design, aiming to predict accurately how much work is involved in each project task. This leads to a large investment early in the project, when it is by no means certain that the designed functionality is actually the functionality desired by the product owner. An approach with multiple levels of planning has to avoid the reintroduction of the big design up front.