Section I: Understanding Agile Project Management
More than simply a methodology or approach to software development, Agile Project Management embraces a set of principles that drive effective software development. Agile Project Management methods focus on the customer, embrace the ever-changing nature of business environments and encourage human interaction in delivering outstanding software. In this introduction, we'll discuss the following:
- What is Agile?
- Why Agile?
- Agile Manifesto
- Agile Principles and how they relate to project management
- Agile Benefits
Class Exercise: In this exercise we will discover how utilizing an iterative, Agile approach provides results sooner, more effectively and uses the productivity of the entire team to produce results.
Section II. Forming the Agile Team
Agile Teams embrace cross-functional collaboration and understand that the individual succeeds only when the team succeeds. In this section we discuss how to form the Agile Team, covering the following topics:
- Team Roles and Responsibilities
- Self Organization
Section III: The Agile Coach
Agile Project Managers use a combination of skills and techniques to manage and coach their Agile teams to success. The Agile PM is most interested in discovering what actual problems need to be solved and then do whatever it takes to allow the team to move forward. In this section we cover:
- Role of the Agile PM or Agile Coach
- Agile Project Management
- Tips for working with Agile Teams
- PMI's Code of Ethics
Section IV: Agile Planning
The Agile framework embraces a methodical process of planning that goes into 5 levels of detail. Rather than prematurely fixating on details of ever-changing requirements, Agile planning helps us focus on the right level of detail for the right priorities at the appropriate time. In this section we'll cover the following:
- Project Planning
- 5 Levels of Planning
- Product Vision
- Product Roadmap
Class Exercise: Working in small teams, you will "design the box" in order to establish a vision for a sample project. You may choose to utilize a project from your work as well. You will participate in identifying key selling points, features, operating requirements, etc.
Class Exercise: Class participants work through a simple exercise that demonstrates how "multi-tasking" actually hinders efficient productivity.
Class Exercise: Working in small teams, you will create a roadmap for your product development efforts, defining high-level themes for your product, then discuss how these themes should be prioritized over the course of your development efforts.
Section V: Focus on the Customer
It is critical that the customer be the focus of a product throughout the development lifecycle. Every requirement should bring some value to the customer. Therefore, prior to defining requirements, it is important to define the customer. This will include the following topics:
- Customer Involvement
- User Roles
- Creating and Using Personas
Class Exercise: Within your teams you will brainstorm some customer roles for your Agile project. From the brainstorming, you will consolidate the larger list of roles into key roles that will be the focus of your sample Agile project.
Section VI: Creating and Maintaining the Product Backlog
The Product Backlog is the complete list of requirements for the product. It consists of User Stories (requirements based on the customer's point of view), Foundational Stories and other work items the team must complete. Stories don't capture all of the detailed requirements, but do require enough information to estimate and plan. In this section we will explore:
- The Product Backlog
- User Stories
- INVEST Model (Bill Wake, 2003)
- Acceptance Criteria
- Foundational Stories
Class Exercise: In small teams identified previously, you will engage in a story-writing workshop as a means of building a product backlog for your Agile project.
Section VII: Prioritizing the Product Backlog
Prioritization is often done at a level that excludes the development team and fails to account for the technical expertise the team provides in determining dependencies, impact, risk and the sequencing of work items. In this section we explore methods of prioritization and how Project Managers can help the business and development groups collaborate together to determine the right priorities.
- Prioritization Themes
- Decision Matrix
- Kano Analysis
- Preventing Fire Alarms
- Continuous Prioritization
Class Exercise:Utilizing the prioritization techniques discussed, you will prioritize the Product Backlog for your sample Agile project taking into account the dependencies, risk and impact of your user stories.
Section VIII: Agile Estimating
Among the greatest challenges in developing software and delivering against stakeholder expectations is estimating accurately and subsequently planning how those expectations can be met. Agile cannot make that challenge disappear, but offers some very helpful tools that enable teams to set and meet the appropriate expectations.
- Relative vs. Actual Estimating
- Introduction to Story Points
- Using Story Points
- Planning Poker (Grenning 2002)
Class Exercise:Using the Agile estimating techniques of story points, enjoy a few rounds of Planning Poker, a fun and very effective method of relative estimating to establish estimates for your highest priority stories. This is a critical tool for you to incorporate into your Agile estimating process.
Section IX: Agile Release Planning
The release plan identifies a goal for the stories that will be included in a release of the software. Through the prior processes, the team will have prioritized the stories and estimated the team velocity. These key elements will come together to give the team a level of confidence that they can deliver the necessary requirements for a product release in what is normally a fixed timeframe. We'll examine the following topics:
- What is a Release?
- Schedule Based vs. Feature Based Planning
- Building the Release Plan
Class Exercise: Each team will establish a release plan for their sample Agile project incorporating priority, Agile estimates and velocity as appropriate. We'll discuss how real experiences of fixed time and fixed feature projects can work with an Agile release plan.
Class Exercise: Using an entertaining exercise, each team will experience how cadence helps to establish higher levels of productivity and focus.
Section X: User Story Review
Before teams can get together to plan the details around how they are going to deliver features within an iteration, they must first get together with the Product Owner to flesh out deeper details around what the feature should be and how it works. In this section we cover:
- Getting to the details
- Methods for documenting the details
- Establishing a regular cadence for product backlog review and grooming
Section XI: Iteration Planning and Execution
An iteration is a fixed amount of time in which stories/requirements will be developed, tested and ready for release. Agile Project Managers need to understand how to engage the team to effectively break out the tasks, hours and assignments for the Iteration. We'll also discuss how Agile Project Managers can guide the team to effectively execute the Iteration and facilitate the necessary communication and review sessions.
- Engaging the Team
- Planning the Iteration
- Executing the Iteration
- Daily Scrum/Stand-up
- Scrum of Scrums
- Iteration Review
- Demonstrating Working Software
Class Exercise: Teams are tasked with discussing the details of the stories that, based on the estimated team velocity, may be completed in the first iteration. As the details are discussed, the tasks will be identified that would be needed to achieve the desired result.
Section XII: Measuring and Communicating Progress
An important aspect of Agile Project Management is measuring progress and communicating that progress to the Agile team, customers, management and stakeholders. We will discuss:
- Scrum of Scrums
- Story/Task cards
- Burndown and Burnup Charts
- Cumulative Features Diagrams
- Agile Earned Value Management
- Agile Tools
Section XIII: Retrospectives
Retrospective are one of the key Agile practices and is the inspect and adapt mechanism for the team. Agile Project Managers help the team identify what is working, what is not working and what specific areas need to be improved.
- Elements of the Retrospective
- Facilitating Retrospectives
- Tips for effective Retrospectives
- Review of Empirical Process Control
Section XIV: Advanced Agile Concepts
In this section, we look at some of the advanced Agile concepts used in various project types. The topics in this section include:
- Affinity sizing for user stories
- User Story Mapping
- Process Tailoring
- An introduction to Kanban
- Value stream mapping
- Monte Carlo simulations
Section XV: Adopting Agile Project Management
This section is where we bring everything together and discuss specific implementation strategies, including how to overcome resistance. We will also discuss several additional tips to effectively manage projects in an Agile environment:
- Agile Process Overview
- Overcoming Resistance and Getting Started
- Agile Calendar of Events
- Challenges to Agile Adoption
- Team Roadmap Exercise
Section XVI: Preparation for the Agile Certified Practitioner (PMI-ACP) Certification Exam
Building on all of the material covered in the class, this final portion of the class will specifically address what each of the participants will need to do and need to know in order to pass their exam and receive their PMI-ACP certification. You will spend this time in class dedicated to application tips, tricks and test preparation.
- Completing your Project Management Institute Agile Certified Practitioner (PMI-ACP) application
- How to complete your reservation to take the PMI-ACP certification exam
- What to expect on the day of your PMI-ACP exam
- In-depth review of each section of the exam, what you will need to know, and how to prepare to pass the exam on your first attempt
- Class review of sample test questions to help prepare for the exam