For organizations that have been on the agile journey, Scrum has been the framework of choice for some time now. The simplicity of the framework and its ability to enable the empirical process are some reasons behind scrum’s success. Having said that, one may question if teams have truly attained agility by doing Scrum.
The terms scrum and agile are often used interchangeably which is where the distinction between doing Scrum and becoming agile becomes important. According to me, if Scrum is the means, agility is the end. To put it simply, Scrum is like a driver’s manual. A learning driver uses it till the time he/she is internalizing the rules of driving on the road. Once done consistently over a period of time, the driver is easily able to navigate through the traffic without referencing or following the manual at each step.
From Doing Scrum to Being Agile – Impediments
- Training(s) – Most agile adoption initiatives start with trainings which are intended to familiarize teams with Scrum framework with limited focus on the agile mindset. Yes, the agile manifesto and principles are covered but there is not enough focus on educating the teams on how they can graduate from doing scrum to attain agility. This often leads the team(s) to believe that Scrum is the end state.
- Scrum as a process – Once a team has been trained, the next step is to ensure adherence to the framework. Generally team will have a Scrum Master whose job is to promote and support Scrum as defined in the scrum guide. Interestingly, while some organizations look at their Scrum Masters as coaches, the scrum guide does not associate the term “continuous improvement” with the Scrum Master role. This also makes the teams assume scrum as a process and end state.
- Process compliance – Organizations with multiple teams often enforce compliance which is attributed to the need for consistency of process and the usage of supporting tools like Jira or Rally. This idea of compliance is generally directly in conflict with the attributes of self organizing and self managing teams forcing the teams to live in the scrum box.
Above mentioned are just some of the reasons. You might have your own but the focus is to emphasize the need to go beyond the process.
Applying Lean Principles
There is knowledge base that connects the roots of Agile to Lean. Lean got its start from manufacturing and applying it to knowledge work required a mindset shift. Lean introduces a customer oriented flexible system for software development. Applying lean principles with scrum teams have shown some encouraging results.
In their book, Lean Software Development: An Agile Toolkit, Mary and Tom Poppendieck outlined how these Lean principles can be applied to software development. In the most simplistic form, these lean principles can be applied on top of scrum the accelerate the move from doing scrum to being agile.
Lean and agile be definition are different things but they are great partners intended to achieve common outcomes. Here is how lean principles can be applied to further mature scrum teams:
Eliminate Waste – A variety of wastes impact the outcomes of scrum teams. In large organizations, these wastes are commonly attributed to processes, complexity, structures, silos, hierarchies etc.. Organizations and teams that are relentless about continuous improvement can benefit greatly from consciously and incrementally looking for opportunities to eliminate waste. Value stream mapping should be conducted at the business and development process level to expose waste and create urgency to eliminate them.
Build Quality In – One of the common struggles for scrum teams is to deliver the “potentially shippable” artifact. Reasons include quality of requirements, structure of requirements (not vertically sliced), dependencies, unstable environment, team silos, processes, handoffs, metrics and more. However; the most common reason is the number of defects produced in sprint or the lack of tools and/or automation to support end to end testing and the mindset of dealing with defects.
Taiichi Ohno when talking about the Toyota Production System talks about jidoka (self-regulation). The idea came from a loom which would stop automatically when a thread broke. When applied to software development, the idea is to enforce behaviors of urgency, collaboration, swarming etc.. as soon a defect is found.
Additionally, the lean principle of building quality in starts by suggesting that quality if everyone’s job and not just QA’s and it needs to be a disciplined practice. Lack of it also is in conflict with the first principles of eliminating waste.
Create Knowledge – This is referred to as “Amplifying Learning” in Mary and Tom’s book where the best way of learning something is by doing it or in other words by actually creating value. Lean is also about learning through experiments. These behaviors and/or mindsets are not often observed with scrum teams.
Some common anti patterns that impede the principle of creating knowledge with scrum teams include team structures, where teams are build up of many specialized skills thus creating silo success criteria and outcomes. Additionally, scrum teams can also been seen doing “foundational” work with an excuse to build a sense of predictability. This is precisely why agile relates the term “evolving” to all dynamic aspects of software development including requirements, architecture, design etc..
Defer Commitment – While scrum revolves around the idea of short feedback loops, teams are often challenged with timelines or scope or sometimes both for a variety of reasons. This is commonly observed with organizations that limit agility to the teams but still have maybe a PMO that engages in yearly planning activities thus leading to assumed commitments.
Similarly, at the team level, the inability of the team to meet it’s sprint commitment (even though the term “commitment” has been taken out of the scrum guide), can go against the team leading to compromise in other areas, more often quality.
The lean principle of defer commitments does not mean that the teams do not plan or make uninformed decisions. It encourages that decisions be made at the last responsible moment. Last responsible moment can vary from companies to industries to teams but the basic idea revolves around acknowledging and conducting experiments to enable informed decision making.
“In preparing for battles, I have always found that plans are useless, but planning is indispensable” – Dwight Eisenhower
Deliver Fast – “Ability to deliver fast” is the most common reason why most companies adopt agile methods. Fast can be interpreted differently in different context. One example is Etsy that delivers code into production multiple times each hour. But not all businesses are the same.
The term “fast” was originally intended to enable fast feedback loops to allow teams to inspect and adapt in their pursuit to cause customer delight.
Every team wants to deliver fast and get value in the hands of the customers as quickly as possible, but most scrum teams are unable to do so for a variety of reasons. Some examples:
- Organizational and team structures leading to increased complexity
- Lack of supporting practices and tools
- Big increments; looking too much into the future
- Lacking urgency to remove impediments
- Intent of building a perfect solution
Going back to the principles mentioned earlier, deliver fast can be the outcome of eliminating waste, building quality-in and creating knowledge. A focused effort to apply these principles leads to the lagging outcome of faster delivery
One of the concepts you’ll hear referred to a lot in Lean is “concept to cash”. It refers to the lead time from the time the idea was conceived to when the customers start purchasing it, or it can start adding value by saving us costs, reducing costs, etc.. as fast as possible.
Respect People – The 5 values of scrum (commitment, courage, focus, openness and respect) help build trust within the team and the scrum team members are expected to learn and explore these values as they work with the scrum roles, events and artifacts. However, a common observation is about how most important decisions are taken outside the team that have a direct impact on the team. Simply put, decisions are taken away from the where the work happens.
Another challenge for teams is the issue of psychological safety. In the lean world, respect is all about developing and empowering the people and trusting them to do the right thing. Lean talks about this idea of a “Gemba”, which refers to the process of leaders going and observing where then works happens, conducting enquiries and identifying counter measures for problem solving along with the team.
Lean also encourages respect for people by communicating proactively and effectively, encouraging healthy conflict, surfacing any work-related issues as a team, and empowering each other to do their best work.
Optimize the Whole – Sub-optimization is a serious issue in software development. Mary and Tom point to 2 critical reasons behind the sub-optimization. First is where developers release sloppy code for the sake of speed and second is the long cycle time that is created between developers and testers as a result of handoffs.
Leans suggests use of value stream mapping to design, produce, and deliver a product or service to customer. After identifying how value flows through their teams, many organizations decide to organize their software development teams to be complete, multi-disciplined, co-located product teams, which enables them to have everything they need to deliver a request from start to finish, without reference to other teams.
Scrum is a framework which means it is an essential supporting structure or the basic structure underlying a system. Teams that are comfortable with scrum and achieve the expected outcomes can apply the mentioned principles are various levels to quickly transform themselves into a high performing team.
Regardless of which framework the team chooses to adopt, it’s important to understand the principles behind the method in order to ensure a sustainable, disciplined practice. If your team is doing Scrum but is not consciously implementing agile and/or lean principles, the outcomes can be slow and the journey long.