Course Description
In this powerful two-day course, you'll grasp the concepts, principles, and methods of Agile development and become empowered to execute on your plans for incorporating Agile practices and techniques into your organization.
Agile success demands a strong and stable foundation.
A common misconception is that Agility means lack of order or discipline. This is simply not the case. Those who try to incorporate an Agile methodology or practice into their SDLC with an expectation of shedding the discipline are on a path to failure. Agility in software development requires strong discipline. In order to successfully create Agility, you must have a solid foundation in the practices and procedures you wish to adapt and learn how to follow those practices correctly while tying them to rigid quality goals.
This workshop will give you the foundation of knowledge and experience you need to begin. This course is a starting point for you to acquire the techniques, skills, and tools that enable you to build Agile discipline.
In addition to defining Agile principles, we will cover the advantages of Agile development. Learn about organizing and participating in an agile team, and understand the practices of the most popular Agile technique. Understand and learn how to take advantage of the opportunities for Agile. Finally gain an understanding and practice the collaboration and communication needed between customer and developers for Agile to succeed.
Course Outline
Part 1: Agile Overview
We begin by discussing why an organization would want to switch from traditional development techniques to Agile ones.
- Making the Case for Change ñ Organizational change (which an Agile transformation is) is difficult to achieve unless there is a clear understanding among everyone involved about why it is necessary.
Exercise: Make a list of software project problems that you would like to correct.
Part 2: The Agile Paradigm Shift
Agile techniques are based on a completely different mental model and set of paradigms about projects. In this section, we begin to explore the mindset that that the Agile methods are built upon.
- A Paradigm for Complexity ñ The inherent complexity of developing software is the source of most software project failures, so the Agile methods embrace paradigms that are designed for complexity
- Predictive vs. Adaptive ñ A key difference between traditional and Agile paradigms concerns our ability to predict how the project will unfold. The Agile approach is to expect that our predictions may be less-than-accurate, and to structure the project so we can adapt to these surprises as they unfold
Part 3: The Agile Foundation
We continue exploring the Agile mindset by examining the foundations upon which the Agile methods were built.
- Agile Manifesto ñ The value system upon which Agile is built
- Agile Principles ñ The necessary elements for making Agile work
- Agile Benefits ñ Actual benefits as reported in the State of Agile Report
Part 4: Agile Methodologies
With the reason for Agile in mind, and an understanding of the Agile mindset, we are ready to explore the variety of Agile practices that your teams can embrace. Since there is not a single ìcorrectî way to be Agile, we explore the practices associated with four of the most commonly-cited Agile methods.
- Lean ñ All of the Agile methods are based on the principles first formalized in Lean Manufacturing, so we start with Lean Software Development
- Scrum ñ The most widely-used of the Agile methods, Scrum is a good method to use to understand the basic iterative practices employed by most Agile teams
- Kanban ñ Originally created by the Lean Movement and more recently embraced by the Agile Community, Kanban provides an alternative process structure that (unlike the other Agile methods), is not based on iterations.
- XP ñ Extreme Programming (XP) is one of the few Agile methods that goes into detail about technical programming practices, so we will take some time to explore them.
- Custom Hybrid ñ We complete this section by observing that many teams create their own custom Agile method by drawing practices from several Agile methods and combining them in unique ways.
Exercise: See for yourself how common practices that Lean counsels against can make a team less efficient.
Part 5: Building the Agile Team
The Agile practices only work as promised when used in the context of an Agile self-organizing team. In this section we delve into what self-organization means, and the attributes of an Agile team, including roles, responsibilities, and the team dynamics that make Agile practices successful.
- Systems Thinking ñ Seeing the Agile team as more than a collection of people
- What Makes a Great Team ñ The secret of an effective team goes way beyond the process they are using
- Agile Team Roles ñ Agile teams have some unique and important roles
- Team Best Practices ñ Guidance from Agile coaches on how to lead an Agile team to be the best they can be
Exercise: Make a list of the attributes of great teams you have been a part of.
Part 6: Inspect and Adapt
Continuous Improvement (the heart of Lean principles) is the heart of Agility as well. We will focus on the practices then enable Agile teams to ensure not only that they are building the right product, but also that they are constantly improving their capacity to do it. They do these things at the end of every iteration (every few weeks)!
- Iteration Review ñ A status check helps the team to stay on track and know if they need to take corrective action
- Demo ñ A show-and-tell with the customer ensures that what they just built is indeed what the customer expected and needs
- Retrospective ñ A mini-lessons-learned gives them the opportunity to improve how they workóbeginning the very next day
Part 7: Agile Adoption
We wrap up with a quick look at how to move forward with an Agile transformation.
- Leading Change ñ A look and organizational change management
Exercise: What will you do in your organization with what you just learned?
Course Objectives
- Understand Agile values and principles, and how to build the discipline to support those principles in your everyday practice
- Appreciate the history of Agile and how the collection of principles and practices came together to enable customer success
- Examine Agile methods, including: Scrum, Extreme Programming, Lean Software Development, Kanban
- Draw best practices from the various methodologies that will contribute to your team success
- Talk the talk: learning the Agile terminology, roles and forums with their context
- Walk through the processes that support Agile principles to enable the delivery of great products
- Begin to map the transition of your existing team or enterprise-level processes to Agile
- Discover the power of Agile teams through communication, collaboration and cadence
- Uncover the pitfalls that teams will encounter in an Agile transition and understand how to overcome those challenges
- Lay the foundation upon which you can build a learning team and organization
Course Prerequisites
There are no prerequisites for this course.
Course Information
Length: 2 day
Format: Lecture and Lab
Delivery Method: n/a
Max. Capacity: 16
Schedule
Contact Us
Do you have more questions? We're delighted to assist you!
Labs
Exercise 1: Forming the Agile Team
In this exercise, you will explore the unique factors of Agile teams and recognize the key factors for successful Agile teams.
Exercise 2: Transition to an Iterative Approach
Teams will engage in a fun exercise that will highlight the benefits behind why iterations work.
Exercise 3: Building Cadence
As with any process, the process should not be a distraction. In order to achieve that desired state, cadence is needed, team members must know what to expect repeatedly and consistently.This exercise will help reinforce the need for and power that comes with cadence.
Exercise 4: Determine What is Next for You!
Teams and individuals will collaborate with each other and with the instructor to determine what you can do to build upon the foundation established during the course.
Who Should Attend
- Project Managers
- Program Managers
- Analysts
- Developers
- Programmers
- Testers
- IT Manager/Directors
- Software Engineers
- Software Architects
- Customers/Stakeholders
- Product Managers