Featured Whitepapers
- Apples, Oranges, and Acorns - All Agile Development Tools Are Not the Same
- One's Enough for Agile Application Development Management
- Requirements Management 101 – 4 Basics Everyone Should Know
- Tips on Requirements Traceability – Learn How to Control Change and Improve Quality
- Scaling Continuous Integration to Large and Distributed Teams
|
– Albert Einstein If Agile is going to make a difference to an organization, it must accomplish two things. First, it must assist us in being driven by business needs – not the development organization. Second, it must help us with the entire value stream – not merely part of it. All too many organizations start and achieve seeming success with team centric pilot projects. Yet, many of these do not have a positive impact to the bottom line of the organization. Lean can assist Agile methods by providing a broader perspective in what needs to be looked at – both in the value stream and in how to achieve the transition itself. Thus we must turn scaling agility on its head and think about agility at scale right from the beginning with Lean-Agile. It is often forgotten that software, by itself, is useless. Software is only of value in how it provides value to those using it. Unfortunately, we see violations of this simple principle over and over again. It can be argued that the mere separation of business from IT is an example of this. Why do we have two organizations when there is only one business? In product companies, the situation is somewhat better, but the problem is still mostly there. While Agile methods have greatly enhanced the capabilities of teams, it is time now for Lean thinking to provide insights of how to attend to the entire value stream in order to maximize the value of software development delivered. This presents us with an opportunity to reunite the business and software development organizations so our Application Lifecycle Management (ALM) can focus on value, not merely software, delivered. For each success you hear in the Agile world, it seems there are a few others that don’t reach as high. We must learn why some Agile projects succeed while others fail. Does failure occur merely because the organization does not have the wherewithal to become Agile? Or is there something wrong with Agile methods that do not allow them to be successful under certain circumstances? I think these are important questions to delve into. My personal story speaks to the dangers of thinking the success you had is the success others need. I formed Net Objectives in 1999 as an organization devoted to assisting developers in better design and coding methods. This was where I had the greatest experience – and success – almost 30 years as a developer, software architect and C-level of small software product and IT organizations. Being a consultant, however, gave me a different perspective. Instead of seeing only 1-2 projects a year, I now saw dozens. This enabled me to see the challenges of a large variety of organizations. This broader perspective quickly taught us that although the drama was often with the developers and testers when the deadline loomed the real problems for many organization lay outside of this area. Over the years I’ve progressed from focusing on the development team to looking at how requirements were created to looking at the testing organization, to project management, to product portfolio management, to deployment and support. Each year seemed to extend my view of the value stream up towards the business side and down towards deployment and support – finding new challenges at each step of the way. This broad view taught me one irrefutable truth – the major blockage in your development organization can occur anywhere – and most methods, e.g., design patterns, XP, Scrum, even Kanban, only deal with part of your value stream. It also emphasized that when different parts of the value stream focus on different objectives, the value delivered to the customer is less than it could have been. Insights From Lean
This article is about using Lean principles, attitudes and mindsets to discover where your challenges are, and what you need to attend to solve them. It is about integrating the different steps in your methods so that all of those involved can keep their eye on the goal – value achieved by the customer. The times of easy improvements achieved by teams that embraced Agile and focused on delivering value iteratively are over. As Agile has crossed the chasm, these easy situations have most likely been encountered and solved. As we’ve jumped across the chasm, we have found situations where the standard team-based agile methods do not work nearly as well or at all. The Agile community’s focus on team-based Agile methods has been met with frustration by many and is creating a backlash against Agile in general. It is important that we not ascribe flaws to these later adopters and casually explain away their challenges. We must realize that methods that have worked in certain situations just do not work in others. Using Lean to Guide Agile Adoption Lean thus broadens our horizons in another way – that of suggesting we control the transition to new methods. Lean suggests we start where we are and respect the way people are currently working. We want to establish a method of continuous improvement – not just dramatically change our process and hope the team moves forward. This is a great difference between Kanban and Scrum at the team level. Scrum suggests throwing people into a new structure and organization that we know works. We assign new roles (ScrumMaster and Product Owner), we provide new work methods and timeframes. This dramatic jump often works. But in larger organizations, it seems to throw many people into chaos and fear – conditions not conducive to learning. Kanban suggests a better learning approach is one of continuous process improvement. To do this requires two things. First, the policies of the team must be explicitly stated. Explicit policies merely means how the team works is explicitly discussed by the team and expressed to management. It does not mean writing them down or making them hard to change. The point of explicit policies is so that we can see 1) that we are doing what we say we think is the best way, and 2) if what we are doing is working. These beliefs manifest themselves in Kanban development by having a Kanban board that reflects the process the team has been explicitly discussing amongst themselves while also making management (leadership) aware of how the team is working. People don’t follow the board, rather the board reflects the team’s explicitly stated best way of doing their work – in a sense, the board follows the team. This enables the team to try different things and see if these new ideas work. A team starts Kanban by observing how they are currently working and then decides how they believe their work might be improved. While many people think Kanban is mostly about limiting work in progress (WIP) or doing Lean-Flow it is really about providing this transition management system. That is, it provides companies a method of managing the change in their organization to give an alternative to just abandoning their current methods and hoping for the best. It also enables us to start where we are. We don’t need to work on just one team and possibly adversely affect others. I believe this is a useful transition method in most places. However, it is absolutely essential where the creation of teams due to highly specialized people prevents effective team building across the development organization. Lean therefore provides a more holistic approach in two dimensions. First, Lean suggests optimizing the whole – that is, looking at the entire process from idea initialization through consumption by the customer. The second one provides us with a method of managing how we introduce improvements and attending to the rate of change that is optimal for the organization making the transition. Transitioning to Agile With Lean to Guide Us
We can combine these principles and insights of Lean to give us a roadmap for our Lean-Agile transition. Like any roadmap, we need to know:
Let’s see how Lean provides us with insights on each of these. Where we are
The prevalent assumption that the teams’ development methods are mostly always the primary problem is not founded in our experience. Lean’s analysis of the value stream helps you learn where to start, because it’ll tell you where you are. Where we want to go.
What our means are to get there Business stakeholders not understanding what they need created. This results in too many and too large projects which overwhelm the teams. Lean adoption will suggest we need to do product portfolio management to alleviate this challenge. More importantly, Lean suggests that what is developed must add value to the customers, not merely be software with great features. Adding value to customers means to focus on their operational and commercial value streams. This gives us a way to connect our software development efforts to our customers (whether they be internal as in IT organizations, or external as in product companies). Teams not knowing how to work together. For years I’ve worked with many teams and lamented the ineffectiveness of Scrum-of-Scrums. Coordinating the work of agile teams that are dependent upon each other or who are working on different parts of the same feature is particularly difficult when the organization does not have a really good method of coordination already in place. While Lean focuses on cycle-time, it can also be used to think about the time until you get useful feedback. When teams need to coordinate together, one level o useful feedback is when they integrate their work. If integration takes place after all of the teams have completed their work on the feature in question, this work may take a considerable amount of effort – merging branches as well as larger integration tests. Lean suggests giving smaller pieces to the team to get them done more quickly. Inspired by Lean’s focus on time, in particular, getting feedback quickly, I have seen that selecting stories and then giving the appropriate fragments of these stories to the appropriate teams, speeds up integration and greatly reduces the need for coordination. The details of doing this is beyond the scope of this article but will be presented in December’s edition of Agile Journal. Too many projects being dumped on the teams. This can be addressed by limiting how many projects are in play at once. Even if Scrum is used, limiting work in progress at this project level is still a very powerful method. Teams not knowing how to deliver value in small increments. At the team level, either Scrum or Kanban may be effective. We should chose which one we want based on the ability to form teams as well as the ability for team members to adjust to change. If Scrum is chosen, it is critical that many of the practices that Kanban suggests (e.g., visibility, explicit policies, limiting work in progress) be incorporated to enable all parts of the value stream to work better together. The interested reader should refer to our Practices All Scrum Teams Should Follow. Not being able to create well-formed teams across the organization. Until Kanban, all Agile methods were organized around teams being formed. While Kanban does not require teams, it can be practiced when teams do not exist. This is very useful for those organizations that have people who have specialized skills, expert domain knowledge or are familiar with certain parts of the company’s legacy code and need to be shared across projects. In these situations, forming teams may just not be possible. The mandate of cross-functional teams, while ideal, may just not be possible. It is not possible to easily cross-train someone to learn what a person knows who was around 10-15 years ago when a legacy system was built. Nor is it easy to replicate a person who is a specialist in stress testing airplane wings that requires a Ph.D. and eight years experience. People like these typically need to be available to multiple teams, making the Scrum model inapplicable. What our suggested path is Our path becomes one of looking at the entire organization. Focusing on adding value and looking to see where we need to start and while keeping an eye on where we want to go. While we may start a pilot project under Lean’s auspices, we’ll do it while considering the entire value stream. Any changes we make will attend to how they impact the broader picture. Summary About the Author Alan Shalloway is the founder and CEO of Net Objectives. With almost 40 years of experience, Alan is an industry thought leader in Lean, Kanban and design patterns. He helps companies transition to Lean and Agile methods enterprise-wide as well teaches courses in Lean, Kanban, Scrum, Design Patterns, and Object-Orientation. Alan has developed training and coaching methods for Lean-Agile that have helped his clients achieve long-term, sustainable productivity gains. He is a popular speaker at prestigious conferences worldwide. He is the primary author of Design Patterns Explained: A New Perspective on Object-Oriented Design, Lean-Agile Pocket Guide for Scrum Teams, Lean-Agile Software Development: Achieving Enterprise Agility and is currently writing Essential Skills for the Agile Developer. He has a Masters in Computer Science from M.I.T. as well as a Masters in Mathematics from Emory University. You can follow Alan on twitter @alshalloway
Set as favorite
Bookmark
Email this
Hits: 2192 Trackback(0)Comments (0)
|
Agile Marketplace - Announcements and Special Offers
The Business Case for ALM Transformation
Are legacy systems holding your company back? Breakthrough these technical constraints with an open and scalable environment that meets your unique business need to transform. There is no reason to be locked into an obsolete platform. The output of a number of recent transitions from legacy systems, this is practical white paper shares lessons learned and illustrates how guidance and enablement can pave the way for change.
Download this Whitepaper


"We can't solve problems by using the same kind of thinking we used when we created them."
