Module 1 | Introduction to Agile
The use of agile software development methodologies has exploded over the past 20 years. In fact, several surveys indicate that agile frameworks are ubiquitous in most organizations and are used for at least some of their product development work. As agile matures, the frameworks and techniques used by practitioners have evolved as well with many company adapting agile to fit their project environments. As a result, we have an explosion of fit-for-purpose methodologies, tools and techniques that organizations can use to more effectively deliver human-centric software solutions. In this section, we’ll introduce you to the history of agile, provide an overview of several of the more popular agile methods, and orient you towards user-centric design.
Download Module 1
Module 2 | Product Visioning
Before we get to delivering our project, we need a way to define what it is and who it’s important for. In this module, we’ll build on user-centric design through a discussion of user research techniques that you can use. As an outcome of our user interviews or studies, we’ll create personas, a hypothetical representation of important users. Once we’ve developed a good understanding of our target audience and crafted our personas, we can narrow in on a solution to meet their needs, and create a vision statement that articulates what we’re going to build for them.
Download Module 2
Module 3 | Creating the Product Roadmap
We start leveraging our user insights to formulate our product backlog: The functionality that we want to deliver to our users. To ensure completeness of our user interactions, we can use a number of different methods to understand how our users want to engage with the solution. Once we understand the required functionality, we create our product roadmap, which outlines what we will be delivering on a release timeline. The roadmap is a key communication document that the product owner can share with stakeholders, and aligns the team to a common purpose and goal. With our initial planning activities complete, we begin to prioritize and groom our product backlog for delivery work.
As the team starts the Scrum process, we’ll cover the Scrum team structure as well as processes and activities within the Scrum framework. This includes some of the team planning aspects of sprint execution, including the use of a sprint zero to get the team off to a successful start.
Download Module 3
Module 4 | Design, Estimation & Planning
Let’s look at architectural considerations for developing our solution. While architecture isn’t explicitly covered in the Scrum framework, we still take an iterative approach in crafting the design for our solution. If the team is evaluating a new solution, prototypes and wireframes provide low-cost, low-impact ways to test our designs from both an end-user and technical perspective. In the prototyping process, we can create low-to-high fidelity prototypes to communicate and share our ideas. High fidelity prototypes provide a high impact way to show your users what the finished product could look like before development begins, giving them the opportunity to provide valuable feedback.
Once we’ve established the general architecture and design for our solution, we can look to our product backlog to start decomposing high priority items into user stories. User stories are a written description of a requirement from an end user perspective. The story reflects functionality that they value.
In estimating the amount of work that it will take to complete a story, the team breaks down their product backlog into story points or ideal days estimates to provide a rough order of magnitude for development work. Additional considerations include the team’s velocity, a measure of how much work a team can complete within a sprint.
Download Module 4
Module 5 | Agile Quality Management
Learn how quality management plays a critical role in the project/product lifecycle regardless of delivery methodology. Quality management activities represent a broad set of functions to proactively plan for and monitor product quality. The processes around quality management help the project team ensure that the project deliverable meets its intended purpose. Specific to agile, we look at how agile teams employ a “whole team” approach to quality, starting with development practices. Finally, we review testing approaches and discuss different testing methods across agile and traditional testing environments.
Download Module 5
Module 6 | Scaling Agile
In this module, we evaluate some of the more advanced practices in agile, including automated methods for integrating and deploying software solutions. Capabilities such as continuous integration (CI) and continuous delivery / deployment (CDD) create predictable development workflows that can be executed on demand. Creating a DevOps environment that utilizes CI/CDD practices removes the friction between developers and teams responsible for releasing software by integrating the two functions into a seamless process.
For larger projects or programs, organizations may need to scale their agile practices through distributed team structures or through one of the emerging scaled agile frameworks. SAFe, or Scaled Agile Framework, is the most prevalent methodology, but options such as LeSS, Scrum at Scale, and Disciplined Agile Delivery (DAD) are also gaining traction.
Download Module 6