Popular Approaches to Agile Adoption
While Agile itself is a mindset, there are a number of popular approaches to creating an Agile environment. DevOps, Extreme Programming (XP), Kanban, Lean frameworks, SAFe, Scrum, Test-driven Development (TDD), as well as many others are used extensively to promote Agile practices primarily within software development. In GSA IT, we are actively using both Scrum and Kanban.
What is Scrum?
Scrum provides a process, or framework, for complex projects and can be “deceptively simple.” Currently, it is the most popular Agile approach in use and encourages high-performing, cross-functional teams. While it was originally formalized for software development projects, Scrum works well for any complex, innovative scope of work.
Scrum is neither synonymous with Agile nor with an “increment” (i.e. a Sprint / Iteration); it is not a tool (i.e. JIRA, Rally, etc.), but the Scrum process can be supported by one.
Focus. Because we focus on only a few things at a time, we work well together and produce excellent work. We deliver valuable items sooner.
Openness. As we work together, we express how we’re doing, what’s in our way, and our concerns so they can be addressed.
Courage. Because we work as a team, we feel supported and have more resources at our disposal. This gives us the courage to undertake greater challenges.
Commitment. Because we have great control over our own destiny, we are more committed to success.
Respect. As we work together, sharing successes and failures, we come to respect each other and to help each other become worthy of respect.
Typical team Scrum Ceremonies include:
- Release Planning (also Pilot / Project Kickoff)
- Sprint Planning
- Sprint Review
- Sprint Retrospective
- Daily Standup
- Sprint (or Iteration) Demo
- Lessons Learned
Most ceremonies are specifically for the core Scrum Team, however, Release Planning and Sprint Demos should include key Stakeholders and SMEs (as needed).
Common Scrum Terms
Some common Scrum terms include:
- Release Trains
- Product Backlog
- Sprint Backlog
- Story Cards (depends on the tool)
- Potentially Shippable Product
The Scrum Master is the facilitator of the Agile process and protects the team; they allow the team to self-organize and make changes quickly. The Scrum Master also manages the process for how information is exchanged, helps the team by removing impediments, and essentially functions as “The Coach” of the team.
The Product Owner is responsible for communicating product vision. They prioritize the Product Backlog and clarify requirements for the team. The Product Owner makes the decision to accept or reject each product increment and whether or not it is “shippable."
The Scrum Team is a cross-functional team. They negotiate commitments with the Product Owner and have autonomy regarding how to reach those commitments. The Scrum Team is intensely collaborative and should be composed of no more than three to nine members.
Getting Started with Scrum
Step #1: Get your product backlog in order! Identify the high-level requirements for the effort and begin organizing them into Epics (groups of features) and Stories (a specific feature).
Step #2: How to estimate your product backlog Determine the relative size of your backlog items and estimate the level of effort.
Step #3: Sprint Grooming Clarify requirements that will be worked on in the upcoming sprint.
Step #4: Sprint Planning Task requirements and add pointed estimates. Ensure cards meet the Definition of Ready (DoR) prior to adding them to the Sprint Backlog.
Step #5: Create a collaborative workspace This can be a shared folder space in Google Drive or a Confluence space in JIRA.
Step #6: Sprint! Go forth and iterate! Continuously refine and groom requirements as needed. Only bring in work that is achievable during the sprint.
Step #7: Stand up and be counted! Daily Standups should focus on “what you did yesterday, what you are doing today, and whether you have any blockers / impediments.”
Step #8: Track progress with a daily burndown chart Progress at the end of the sprint is reflected in the burndown chart and reviewed during the Sprint Demo.
Step #9: Finish when you said you would In the Sprint Review, reflect on the work accomplished and whether the work completed met the Definition of Done (DoD).
Step #10: Review, reflect, repeat… Conduct a Sprint Retrospective with the Scrum Team, Product Owner, and Scrum Master to reflect on what went well during the sprint and what can be improved. Check out TastyCupcakes for suggested Agile retrospective activities.
What is Kanban?
Kanban is a process that can be thought of as a pipeline; feature requests entering one end and improved products from the other, encouraging better communication through visual management. A Japanese term, Kanban means a “visual signal” or “card.” Most notably, Toyota line-workers used a Kanban (i.e. an actual card) to signal steps in their manufacturing process. The system’s highly visual nature allowed teams to communicate more easily on what work needed to be done and when. Through its standardized cues and refined processes, the line-workers were better able to reduce waste and maximize value / delivery.
When setting up a Kanban Team, the Scrum Master and Product Owner roles can be leveraged to support and provide direction for the team. Additionally, the Kanban Team can also use Sprint Planning and Sprint Retrospective activities to aid continuous improvement.
Getting Started with Kanban
Step #1: Map the value stream (or development process) Identify where feature ideas come from and what are all the steps that the idea goes through until it is sitting in the hands of the end user.
Step #2: Define the start and end points for the Kanban system Start and end points (i.e. Definition of Done) should preferably be where you have political control. Don’t worry too much about starting with a narrow focus, as people outside the span will soon ask to join in.
Step #3: Agree Determine the initial WIP limits and policies for changing or temporarily breaking them (i.e. “Team Norms”). Define the process for prioritizing and selecting features as well as the policies for different classes of service (e.g. “standard”, “expedite”, “fixed delivery date”). Determine estimates and when choosing work, define which will be selected first through prioritization. There should also be definition around the frequency of reviews.
Step #4: Draw up a Kanban board All you need is a whiteboard and some Post-It™ notes. Don’t spend too much time making it look beautiful because it will almost certainly evolve. However, the Kanban process can be also supported through tools like JIRA, etc.
Step #5: Start using it! Be sure to keep work visible and communicate progress. Whether using a whiteboard or tool, ensure progress is continuously updated and reflective of current status.
Step #6: Empirically adjust over time Use your Sprint Retrospectives to identify areas of improvement for the Team.
These are good references when setting up Agile Teams:
Setting Up Agile Teams
- 3 Key Steps to Building an Agile Team
- An Operating Model for Company-Wide Agile Development
- Building an Agile Team
- Top Ten Mistakes Made by New Agile Teams
- Who is Watching After Your Agile Money?