HISTORY & MINDSET
1.1.1. Origins of Agile
- Many people entering the Agile world see the Agile Manifesto as the beginning of
- the world, where it was really the summing up of much previous work.
- Anchor the ideas of Agile development in earlier work, giving the learners continuity from the past to the present.
1.1.2. Agile Manifesto
- The 2001 Manifesto for Agile Software Development is still the anchor document for all forms of Agile development.
- Make clear that the Agile Manifesto is a set of values, not a prescription for a
- particular type of process. Also, learners should be introduced to the fact that the
- values on the left are preferable to those on the right.
1.1.3. Agile Beyond Software Development
- Agile is gaining increasing adoption throughout the organization.
- Agile methods can extend beyond software development.
1.2. CULTURE & MINDSET
1.2.1. Understanding the Agile Mindset
- Many people come to Agile looking for “the Agile process”. However, while some
- processes and methodologies may be more supportive or common in Agile organizations than others, the mindset must come first.
- Introduce Agile as a mindset and explain that agility is achieved through both “being” and “doing” Agile. The Agile mindset is characterized by things like valuing early failure for learning, collaboration, continuous improvement,
- continuous discovery, etc.
1.2.2. Establishing the Agile Mindset
- Experiencing the Agile mindset is the best way to establish it in a learner Allow the learner to experience situations in which the Agile mindset is likely to be different from their current way of working, so the learner can internalize the
- difference experientially, not just in concept.
1.2.3. Agile in Context (As a Journey)
- The level of knowledge and experience held by individuals, teams and
- organizations can affect behaviors, processes and adoption.
INDIVIDUALS & INTERACTIONS
2.1. CREATING SHARED UNDERSTANDING
2.1.1. Developing Soft Skills
- Soft skills such as attitude, community, trust and morale have traditionally been left out of team-based design. Agile brings them to the fore.
- Highlight how changing community drivers affects work outcomes.
2.1.2. Understanding Communication Barriers
- Projects can be impacted when organizations underestimate the cost of physical and cultural separation.
- Review the costs of physical and cultural distances, and introduce ways to
- successfully address the communication barriers these can raise.
2.1.3. Sharing Knowledge
- When teams ignore tacit vs. documented knowledge, they are not able to make conscious decisions about sharing information.
- Discuss options for sharing knowledge with current and future team members.
2.1.4. Physical Work Environments
- It is easy to set up work spaces that hinder rather than help the team.
- Illustrate concepts of setting up Agile working environments that are conducive to swarming, collaboration and teamwork.
2.1.5. Collaboration Techniques
- Collaboration needs to be experienced, not just talked about.
- Let learners experience techniques for improved collaboration.
2.1.6. Techniques for Shared Understanding
- The Agile community has adopted several tools and techniques to support shared understanding.
- Experience the advantages created by tools and techniques that improve shared understanding.
2.2. SHIFTS IN ROLES
2.2.1. Shifts in Roles
- The term “self-organizing” can create concern for individuals and organizations because it infers shifts in traditional power structures. Agile learners and organizations need to define and align old and new role definitions.
- LEARNING OUTCOMES
- Define what is meant by “self-organizing” and “self-managing,” and where the
- learner fits in an Agile organization.
3.1. INCREMENTAL DEVELOPMENT
3.1.1. Incremental Development
- One anchor of Agile development is incremental development.
- Introduce the concept and value of incremental development, and how it differs from effort-based or task-based management.
3.1.2. Value-Based Work
- Many people, even understanding the idea of incremental development, can’t see
- how to break work into small, value-centered work items and track their progress.
- Develop and practice techniques for breaking problems into value-based parts and
- tracking progress against them.
3.1.3. Retaining Quality
- It is easy to lose sight of the cost of rework in incremental-iterative development.
- Introduce and highlight why Agile developers need to keep an eye on design quality.
- even (or especially) when working incrementally and iteratively.
3.2. WORK-IN-PROGRESS (WIP)
3.2.1. Work-in-Progress (WIP)
- Work-in-Progress (WIP), a term from lean manufacturing, seems to many people a
- strange concept to introduce outside of manufacturing, but WIP shows up in
- incremental development.
- Describe WIP, demonstrate how it maps to design work, to incremental.
- development, to multi-specialist and multi-department teams, where it hides on a
- design project and why it is useful to track and reduce WIP.
3.2.2. Continuous Integration
- Continuous integration is a valuable goal in software development, non-software.
- projects can still use the more general concepts of frequent integration.
- Introduce the concepts of early, frequent and continuous integration, and link them.
- to project effectiveness.
3.2.3. Cost & Benefit of Frequent Delivery
- Delivering is not merely giving a demo; it includes costs as well as benefits.
- Discuss the benefits, challenges and costs of delivering frequently.
CUSTOMER & USER INVOLVEMENT
4.1. INCLUDING CUSTOMERS AND USERS
4.1.1. Defining the Customer
- The literature and common usage can be confusing in defining the customer.
- Clarify customer-side roles and how they are referred to in Agile methods,
- particularly sponsor, buyer and user; relate these roles to actual people who need to be satisfied by the project and product.
4.1.2. User Involvement
- Product/project success correlates with end-user involvement. Many teams face resistance to getting end-users to participate in a project, which then can fail even if the team practiced every other Agile habit besides getting feedback from real users.
- Convey the importance of end-user involvement within, as well as at the end of, iterations.
4.1.3. User Feedback
- Ongoing user feedback is important for maximizing customer value.
- Provide the learner with one or more techniques for soliciting feedback from users
- and sponsors during an iteration or project.
PLANNING & ADAPTING
5.1. PLANNING AND ADAPTING
- A misconception of Agile development is that it involves no planning and no promises.
- Review different planning stages and timeframes, separating release-level planning from daily & task-level planning.
- Agile teams understand the value of collaborative estimation during planning.
- Introduce the learner to the power of relative estimation using the wisdom of the
- crowd; Incorporate different Agile estimation techniques for different granularities and time scales.
- A team and its sponsors need to know how the work is progressing.
- Provide two or more techniques Agile teams use to track and show the status of
- the project and the team.
5.2. PROCESS & PRODUCT ADAPTATION
- A common mistake is to imagine that there is a single process that can fit all projects & situations; even a good process becomes mismatched to the team over time.
- Illustrate to the learner how products/projects in different contexts need different methodologies, processes or strategies, and why it is important to adapt processes even within a single product, project or team.
5.2.2. Product Adaptation
- Products need to be adapted based on learning and feedback, however an
- unprepared team can suffer from reacting too vigorously to change requests.
- Introduce ways to receive feedback and balance responding to change with
- product stability and work predictability. These might include not accepting new
- work during an iteration, having a disciplined Product Owner who re-prioritizes for
- the team in ways that do not disrupt ongoing work, etc.