Five Agile Team Frameworks Beyond Scrum & Kanban
Agile is more than just Scrum and Kanban. There are a bunch of team level frameworks that fall under the Agile umbrella. In this article we will take a look at 5 team frameworks that you may not be familiar with including: Extreme Programming, Crystal, Feature Driven Development, Dynamic Systems Development Method, and Lean.
1. Extreme Programming
Extreme Programming is more commonly known as XP. It is an Agile software development framework focusing on continuous delivery and it uses intervals like Scrum’s sprints. XP has 12 built in processes that are specific to it and software delivery.
- The Planning Game is the main planning event within XP. It is held once per interval and covers two planning disciplines: Release Planning and Iteration Planning. The rationale behind the planning game is to guide the product into delivery instead of trying to predict the dates of deliverables.
- Small Releases in XP mean releasing tiny versions of the product to the public as quickly as possible and then analyzing the response and reactions.
- Customer Tests assume that the team is making some mistakes and uses direct customer feedback to inform what needs to be fixed, changed, and what is working as expected.
- Simple Design is a pretty self-explanatory concept that is critical to the success of XP, keeping software designed with clean code and as simple a structure as possible.
- Pair Programming where two developers take turns driving a single keyboard. One enters code as the other reviews it and suggests simplification and or improvement possibilities.
- Test-Driven Development requires that tests be written prior to development so that the code can be developed strictly to pass a series of tests. This simplifies the coding process by creating tactical targets for development.
- Refactoring is the ongoing process of simplifying code without changing functionality. This ensures that the code is lean and flexible to minimize future technical debt.
- Continuous Integration is the practice of storing code in a central repository so that it is accessible to run integrated tests as new code is added to the whole.
- Collective Code Ownership refers to the concept that any developer on the team can change any line of code. This allows everyone to contribute new ideas to all areas of the effort.
- Coding Standards help keep the code consistent and easy for the entire team to read and update. Clean code encourages collective ownership.
- Metaphor is an often misunderstood process within XP where labels are standardized and jargon is not allowed. Metaphor helps keep code easy to understand to new team members or external reviewers.
- Sustainable Pace is important to keep teams delivering predictability. it means that while teams can swarm and increase pace temporarily it is better for teams to maintain an ongoing velocity so that they don’t burn out or develop bad habits.
Crystal is really a group of team frameworks almost like flavors of soda. There’s Crystal Clear, Crystal Orange, Crystal Yellow, Crystal Red, and so on. Each one has slightly different customizations based on things like team size, priorities, regulatory impact, etc. The idea here is that different teams working on different types of products may need different frameworks to optimize delivery.
Crystal’s core principle is focusing on individuals and interactions above processes and tools. This has given rise to two core beliefs within the Crystal Framework:
- Teams can find ways on their own to improve and optimize their own delivery
- Every product is unique and always changing
Crystal has some strengths including: allowing teams to work the way they deem most effective, it supports direct team communication with transparency and accountability, and as an adaptive approach it helps the team learn to respond to changing requirements. However there are some drawbacks like: a lack of any pre-defined plans that can lead to scope creep and little or no documentation that can cause confusion down the line.
3. Feature Driven Development
Feature Driven Development, known as FDD, is another software-focused Agile team framework. FDD involves creating software models every two weeks requiring a development and design plan for each model feature.
FDD has more rigorous requirements documentation than Extreme Programming, so it should be reserved for teams with solid design and planning backgrounds.
FDD is broken down into five basic activities:
- Develop an overall model – teams focus more on the shape and scope of the product
- Build a feature list – using the overall model teams build out the list of required features and rank them by value
- Plan by feature – the planning phase is where teams allocate reasonable estimates to each feature and assign them to a team member
- Design by feature – teams begin designing the features concurrently and collaboratively
- Build by feature – here team members work on their individual builds at the same time and when everything is ready it is sent off for testing
Tips for Agile Teams Working Remotely
4. Dynamic Systems Development Method
DSDM rose out of the need to develop an industry standard framework for rapid software delivery. Part of the mandate for DSDM is that rework is implicit and any development changes must be easily reversible. Similar to Scrum, XP, and FDD, Dynamic Systems Delivery Method utilizes the concept of sprints. There are 8 key principles that DSDM teams follow when delivering work:
- Focus on the business need
- Deliver on time
- Never compromise quality
- Build incrementally from firm foundations
- Develop iteratively
- Communicate continuously and clearly
- Demonstrate control
Including Lean as a team framework may seem like a stretch, but when you consider how many teams are focused on efficiency, optimizing output, and ensuring a streamlined flow of work from intake through release it makes a lot of sense. Lean development is really its own framework but so many of the principles align and play well with Agile that incorporating them into your teams’ practices can only improve outcomes.
Lean has seven principles that together allow teams to easily adapt to change and improve efficiency. The 7 Lean Principles are:
- Eliminate waste – remove anything that does not add value to the customer by focusing on Over-production, Unnecessary transportation, holding Inventory, Wasted Motion, Creating Defects, Over-processing, and Time between steps
- Build quality in – unless this is part of disciplined practice, it’s far easier said than done. In trying to ensure quality, many teams actually create waste – through excessive testing, for example
- Create knowledge – teams should provide the infrastructure to properly document and retain valuable learnings
- Defer commitment – demonstrate responsibility by keeping their options open and continuously collecting information, rather than making decisions without the necessary data
- Deliver fast – get value into the hands of the customer as quickly as possible. The question isn’t why teams want to deliver fast, but rather, what slows them down. Here are a few common culprits: Thinking too far in advance, Blockers that aren’t responded to with urgency, Over-engineering solutions, and business requirements
- Respect people – this means treating the customer, stakeholders, and other team members as people first by considering their positions, best interests and always assuming innocence as a starting point
- Optimize the whole – remove roadblocks and duplications of effort. Look for opportunities to automate repetitive tasks and eliminate low-value work
Which of these can you learn from?
Now that you know 5 new team frameworks which of these makes sense to you? How could you imagine an organization you are familiar with benefitting from adding or adopting one of these team frameworks?
Post your thoughts in the comments section below! I look forward to your thoughts and ideas.