Book Image

The Agile Developer's Handbook

By : Paul Flewelling
Book Image

The Agile Developer's Handbook

By: Paul Flewelling

Overview of this book

This book will help you overcome the common challenges you’ll face when transforming your working practices from waterfall to Agile. Each chapter builds on the last, starting with easy-to-grasp ways to get going with Agile. Next you’ll see how to choose the right Agile framework for your organization. Moving on, you’ll implement systematic product delivery and measure and report progress with visualization. Then you’ll learn how to create high performing teams, develop people in Agile, manage in Agile, and perform distributed Agile and collaborative governance. At the end of the book, you’ll discover how Agile will help your company progressively deliver software to customers, increase customer satisfaction, and improve the level of efficiency in software development teams.
Table of Contents (16 chapters)

What this book covers

Chapter 1, The Software Industry and the Agile Manifesto, states that a crisis in the software industry led to a major turning point and the formation of the Agile Alliance. We'll examine the Alliance's origins and discuss how it revolutionized the way we think about building software. We'll also look at the Agile Manifesto, its values and principles, and the impact they have on how software professionals work.

Chapter 2, Agile Software Delivery Methods and How They Fit the Manifesto, provides an overview of the mechanics and the rationale behind the three most popular Agile methods: Scrum, XP, and Kanban. We'll look at their similarities and differences, as well as how they look to achieve the Agile Manifesto's guiding values and principles.

Chapter 3, Introducing Scrum to your Software Team, provides a step-by-step guide to your first Scrum Sprint. We'll walk you through all of the key activities, including setting up your Agile board, planning to Sprint, a day-in-the-life of a Scrum team, and the differences between the Sprint Review and the Sprint Retrospective. The aim is to give you everything you need to take the first step on your Agile journey.

Chapter 4, Gathering Agile User Requirements, explains that working iteratively to incrementally deliver software needs a different approach to requirements gathering. We look at the approach most commonly used by Agile methods, the User Story. We'll look at how to write a well-defined story. We'll introduce Agile estimation using a technique called relative sizing, and we'll play our first game of planning poker.

Chapter 5, Bootstrap Teams with Liftoffs, explains that the aim of a liftoff is to set teams up for the best possible chance of success. We'll walk you through the activities of a liftoff, which include communicating the vision, defining mission outcomes, and deciding how you're going to work together.

Chapter 6, Metrics that will Help your Software Team Deliver, states that once your team is on a mission, it's important that you know you're moving in the right direction. Taking the right measurements will help us do that. We'll look at various real-world examples that will help your team determine the metrics they should and shouldn't be using. We'll look at negative metrics, positive metrics, metrics that give you quantitative feedback and metrics that give you qualitative feedback. We'll then discuss how to make the information visible and measure the trends over time so that you can see you're improving and moving along the right trajectory.

Chapter 7, Software Technical Practices are the Foundation of Incremental Software Delivery, explains that the right technical practices will increase your team's agility. Practices such as Refactoring, Test-Driven Development, Pair Programming, and Continuous Integration give us confidence that what we're delivering is well designed, tested, and meets expectations. We'll look at these practices, as well as others, and offer ideas on how to introduce them to your team's toolkit.

Chapter 8, Tightening Feedback Loops in the Software Development Life Cycle, shows how to implement an incremental approach to software delivery. We discuss the important role that user experience plays in helping us tease out what our customer needs. We introduce Lean thinking and show how it seeks to optimize our process so that we can deliver sooner. We also show how to shortcut our learning by conducting a Lean Startup experiment with a real-world example.

Chapter 9, Seeking Value – How to Deliver Better Software Sooner, looks at real-world examples to shift the delivery team's perspective from one of just delivering on time, on scope, or on budget, to ways that will actually seek value. We also look at the practical ways teams can use this approach to create feedback loops so that they can measure their value-seeking success as they go.

Chapter 10, Using Product Roadmaps to Guide Software Delivery, explains that one of the roles of the Product Owner is to hold the product vision for the team. We show how to discover our key product features using two different techniques: User Story Mapping and Impact Mapping. We show how to prioritize features/User Stories against release milestones to create the initial Product Roadmap. We also introduce Rolling Wave Planning, a technique for adaptive planning.

Chapter 11, Improving Our Team Dynamics to Increase Our Agility, states that Agile teams are self-organized, autonomous, and prefer high-bandwidth face-to-face communication. This may seem like a recipe for a high performing, collaborative team, but it doesn't always work that way. This chapter aims to demystify some of the art of fostering good team dynamics by looking at what makes a great team. We also describe the five stages of team formation and give techniques for helping a team become the best it can be.

Chapter 12, Baking Quality into Our Software Delivery, looks at several popular approaches that teams take to increase their performance further. We discuss the cross-pollination of skills in cross-functional teams, a total team approach called mob programming, how to live the dream of having no more bugs, and we question the need for estimates in software development.

Chapter 13, The Ultimate Software Team Member, speaks about the power of motivation and how to tap into our inner drive to become the best at what we do. We define some of the characteristics of a great Agile team member. We also consider the fact that, as knowledge workers, we're in a constant state of learning, and give some pragmatic suggestions for putting time aside to learn.

Chapter 14, Moving Beyond Isolated Agile Teams, explains that in order to become an Agile organization, a change in management style is needed. We look at how the leadership model begins to switch to a supportive role and introduce the concept of the Servant Leader. We look at how modern leadership and different organizational structures create an adaptive, more responsive network of teams. This chapter will help you recognize the signs that an organizational transformation is taking place so that you can take advantage of this transformative approach to work.