July 17, 2019 // By Ben Ambrosino
In the years since the Agile manifesto was authored, Agile has become the industry-standard approach to software development for one simple reason: it works.
Agile recognizes that no two teams nor two projects are alike. It does not prescribe a one-size-fits-all methodology. Instead it encourages teams and organizations to learn and adapt.
With Agile, you will stand a good chance of nurturing healthy teams. How will you know? If they exhibit the seven following traits.
A Unified Outlook
Successful Agile teams recognize that Agile is not a set of activities or ceremonies; it is a mindset. Different Agile frameworks emphasize various aspects of Agile and apply a multitude of techniques. However, all share a fundamental mindset characterized by:
- Respect For The People Involved In the Process. People build software, and any process must put people first to enable sustainable, high-quality development. Burned-out team members look for new jobs, resulting in costly turnover. Happy team members with reasonable, self-determined sprint commitments take pride in their work and can continue to improve.
- Commitment to Continuous Improvement. Ask an Agile novice what the most important meeting or ceremony in scrum is and many will tell you it is the daily standup. Ask an experienced Agile practitioner and you will almost always get the same answer: the sprint retrospective. This practice of continual self-examination, analysis and deliberate improvement (with concrete work items in the backlog) is how bad teams become good teams and good teams achieve excellence.
- An Emphasis on Rapid Iteration. Agile’s success is rooted in understanding that it is impossible to know the exact right solution to a problem up front. Even if you did, it would likely not still be the right solution by the time you are finished, as building software takes time and the market context is always shifting. Only by putting the tool into the hands of users, watching what they do and asking what they think can a team determine if they are building the right thing and develop a roadmap.
A Commitment To Accountability and Continuous Improvement
The main difference between average teams and top teams is the degree in which continuous improvement is expected and nurtured. High-performing teams take responsibility for failures without looking for excuses. It happens when team members are given enough autonomy to make decisions while remaining within the boundaries of organization values. There are no born Agilists. The mindset must be cultivated and practiced. There are no replacements for seeking training, continually reading, and working with other Agile practitioners when developing an Agile took kilt and mindset.
A Coordinated T-Shaped Approach
The best Agile teams understand that they are most effective when they swarm on features, collaboratively working on them to completion. The team should be laser-focused on the top priority item first; until that item is done, all other work is a distraction. It is often said that Agile team members should be T-Shaped: deeply skilled in one area and capable at many others. This means that everyone can contribute to the work that needs to be done now, even if it is not their specialty. Siloed specialists tend to want to optimize for their own time by working on tasks in their area of expertise. If there are none of that type to do in the current sprint, the inclincation is to look at features in future sprints and work ahead. This can disrupt the overall development effort. Yes, a DBA is more efficient at writing store procedures than at testing, but the priority for the team is to finish the work they have in progress today. By optimizing a single team member’s time, the overall team’s output suffers. In addition to reducing time-to-market, collaborative work has repeatedly been shown to be of higher quality. Developers that practice pair-programming learn from one another and are less likely to make mistakes. Additionally, this promotes cross-training and distributes knowledge.
A Comfort With Continuous Feedback
Agile frameworks embrace the importance of measurement and feedback as a key lever for improving performance. Many use an iterative approach to achieve this, such as Scrum and SAFe. These frameworks apply short, repeated, time-boxed efforts to produce a discrete increment of work, all the way through the pre-defined definition of done, and then seek feedback to inform the next increment. However, not all Agile frameworks use iterations to structure work efforts. Lean development practices, including Kanban, work in a continuous flow, without a beginning, middle, or end of the overall effort. They focus on Just-In-Time delivery and limiting work in progress (WIP), recognizing that each distinct work item must pass through a variety of phases or processes, such as definition, development, testing, acceptance and release, and that each of these phases can only work on so many items simultaneously. By analyzing the bottlenecks and enforcing WIP limits, individual work items proceed through the system more quickly. Lean practitioners emphasize quantitative metrics about the process as well as the product. These approaches satisfy the tenets of Agile because the work is incremental even though it is not iterative.
The Ability To Let Go Of The Old Way Of Doing Things
Transforming from a traditional design upfront/waterfall approach to an Agile approach is a big step. When doing so, make sure you don’t confine your agile approach just to your development team. Integrate it with your business departments as well. Once you do that you will find value grow from small increments to large gains throughout your organization.
Comfort With Structure and Creativity
Agile frameworks emphasize doing just enough design and architecture in advance, and allowing the development team a high degree of autonomy in determining the best way to satisfy a particular need or user story. Additionally, iterative development encourages team members to try approaches that may be beneficial but are not yet understood. If the tactic does not pan out, the team will identify that early on and refactor their approach. The combination of this autonomy and acceptance of experimentation leads to creative approaches to problem solving.
A Desire To Find The Best Agile Solution Available
While Scrum is by far the most popular Agile framework for individual Agile teams, it is far from the only option. There is also Lean Development, Kanban, Feature Driven Development, and Extreme Programming, among the many approaches that fall under the Agile umbrella. Scaled Agile Framework for Enterprise (SAFe), Scrum at Scale and Large-Scale Scrum (LeSS) are common frameworks for applying an Agile approach to large endeavors. While the different Agile frameworks emphasize different techniques, they are all guided by the following principles of the Agile manifesto:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
What Do You Think?
What do you think are the most important success factors for an Agile team? Let us know on Twitter!