So… we’ve got another snow day here in Atlanta. After getting about 7 inches Sunday night, the snow turned to freezing rain and then turned the snow on the ground into ice. Since we have no way to melt the snow… and the forecast is calling for freezing temps all week… I think we might be screwed. This is going to wreak havoc with my calendar, but I am sure there is some lesson to be learned here about over-scheduling myself. Probably not… learning from mistakes is overrated ;-)
The last couple of posts we’ve been breaking down what factors lead to successful agile adoption and some of the assumptions team-based methods make about your organization. What I’m trying to do is get really explicit around two points. First, adopting agile is not about adopting practices. There are lots of ways we can be successful, and much of the practices we consider agile, are just some of the many. Second, when you do adopt practices, you have to be aware the context in which they are intended to be applied. Failure to recognize the underlying organizational assumptions behind the practices will render them mostly useless.
Let’s assume for the moment that you’ve internalized the 12 Keys to Success and fully understand the 12 Key Agile Assumptions, and you are leading your transformation initiative with eyes wide open. You’ve committed to choosing practices that will work, in your context, to achieve your desired business outcomes; and you’ve decided to hit the assumptions head on, and either make the necessary changes… or adapt the practices to function within your given constraints. That’s great, but there are still a few more things you need to know.
Change is not easy and it surely doesn’t happen overnight. You can expect a fight… even if you are the CEO. You need to understand what you are up against, you need to understand the changes you’ll need to put in place along the way, and you need to have a plan for dealing with the resistance. Here is my list of the top 12 things you might need to consider before you get started transforming your organization.
1. Requires structural changes – Most companies we work with are organized around functional disciplines or roles. We have a team of developers, we have a team of QA analysts, we have a team of Analysts. Agile doesn’t necessarily require that we give people new managers, but it does require we think about how we manage them. Because we are creating teams that stay together over time, we are shifting to an organization where the project/product is the strong side of the matrix. Our allegiance is less to the manager and more toward the team. Without the structural changes to support this new organization, managers often find themselves with less to do. At the very least, it’s complicated.
2. Requires role changes – XP talks about the customer and the team. Scrum talks about Product Owners, ScrumMasters, and the team. Some of the other methodologies are more cognizant of existing roles, but in some form or fashion people’s jobs are going to change. A Product Owner and a Product Manager are different. A ScrumMaster is not the same thing as a Project Manager. In some form or fashion, people’s jobs are going to change. You need to have a plan for retraining them and getting them comfortable with their new responsibilities. People need to know what they are suppose to do, and how they can be successful. It’s a matter of safety.
3. Requires cultural shift – Going from top down management and command and control to a touch-feely, empower the team approach is hard. Don’t get me wrong, there is a ton of structure and discipline in agile, but it is not imposed from on high, it is the responsibility of the team. This is a pretty significant shift from how many companies operate today. Acknowledging the culture shift we are asking people to undergo builds trust, creates safety, and helps us plan for how we are going to deal with one of the things most likely to derail your grand plans of agile transformation. People can tell when the rhetoric doesn’t match the implementation.
4. Requires governance changes – We hit this a little when we were in the assumptions post. Agile assumes that we have minimal process governance. In the likely event this isn’t the case, we want to at least consider some reasonable changes to the existing governance processes. Much of what we are dealing with here is government mandated and near impossible to change. What we are looking for are places where our interpretation of the rules is overly constraining. We want to build a governance model that is the least restrictive, most open to change that we can possibly get away with. Governance can be more flexible than we sometimes think.
5. Human resource policies – One of the most significant contributions a senior leader can make toward an agile transformation, aside from investment and authorization, is to work with the supporting functions to get them in alignment with this new way of working. I’m talking here about job descriptions, review processes, compensation and rewards. There are some new behaviors that we want to encourage, and there is nothing more frustrating that when the policies we live under are incongruent with these new behaviors. It’s not fair to ask people to work against their best interests. These need to be in alignment.
6. Complex product organizations – Complex product organizations are ones where it takes the efforts of many teams to create a complex deliverable. Even more complex, are environments where you have a many-to-many relationship between product and sub-products (or components). These organizations challenge our notions of ownership, delivering value, reducing dependencies, loosely coupled teams, and how we measure progress. We can’t provide the answers here… that’s a topic for another post… but having an awareness that these many to many relationships exist… and there are strategies for dealing with them, is enough for now.
7. Uneven portfolio investment – One of the assumptions agile makes is that you have teams organized around products. Said another way, teams are responsible for delivering a standalone increment of value. This gets tough for larger organizations with more mature product lines. Some products only require incremental investment and sometimes that investment ebbs and flows based on market opportunities. The challenge here is to identify teams that can handle that flow of work as part of their already existing backlog. What we have to deal with here is the notion that you have a one team to one product relationship. Sometimes it’s a one team to many product relationship.
8. Project based organizations – Projects are the way we tend to handle the uneven portfolio investment. We create a business case, get the funding approved, and then spin up a team to get the deliverable done. We’ve talked about a lot of reasons why this approach is problematic for agile teams. I’m actually a supporter of the project construct, but tend to think about leveling the investment increments, making smaller bets, defining smaller projects, reducing dependencies between projects, and then creating a flow of projects through the organization. The thing we need to understand here is that the project is no longer the primary way we are going to organize, measure, or track value.
9. Local optimization – Without a high level transformation plan, it is possible, even likely that the agile team is only going to create a local optimization within the product development organization. If we have a flow of value that involves strategy, sales, marketing, development, support, and training; introducing agile into the development organization might actually be disruptive. Unless we are considering the impact agile is going to have on the entire end-to-end value stream, we risk investing a ton, and getting very little value in return. A related issue is when we spin up an agile team within a traditional organization, creating a perfect environment for the agile pilot to succeed, but starving the rest of the organization of needed people in the process.
10. Practices over principles – You have a ton of folks in your organization that just want to be told what to do, how to do it, and when to do it. They don’t want to problem solve, they don’t want to take risks, and they don’t want to be accountable. If you tell them what to do, and they do it, you are the one responsible when something goes wrong. Faced with this kind of resistance, it is very tempting to concede and just tell people what you want done. You have to create a culture (see, there’s culture again) where it is safe to try things and safe to fail. You have to teach principles but help people find one way they can be successful. Don’t fall into the trap of thinking you can give people one true way to do things that will make them successful. It doesn’t exist.
11. Need for certainty – A few years back I got introduced to Chris Matts and learned a little about his notion of Real Options. Real Options are about recognizing that the decisions we make have economic value. Sometimes it actually costs us money to make an early decision. Sometimes it is worth paying money to keep a decision open longer. The challenge is that many of us are hardwired to want to know what’s going to happen. It is difficult not to know. It is so difficult that many of us would rather be wrong that be uncertain. Creating an environment where it is safe to be uncertain is a key to success with agile. Recognizing there are some serious barriers to getting people there is another.
12. Value vs. Valuable – We all want to be affirmed. We all want to know that we are making a valuable contribution. There is a difference thought between the inherent value of work, and the value that work puts into the products we are building for our customers. If I tell someone that a 150 page requirements doc is not valuable, I have somehow diminished their contribution. The work is valuable to the extent it helps us build the product, but it’s not valuable to the people paying for the product. Being really clear on which is which is important and something we have to help people get through.
Okay… so hopefully you see the foundation I am laying out here. We know what it takes to be successful. We’ve acknowledged our underlying assumptions and either have decided to adapt our organization or tweak the base agile practices. As of this post, we have a good idea of the resistance we are going to face introducing agile and leading change. Next post we are going to explore the tools we need to have in our arsenal to make a solid run at leading change in our organizations. At the rate I’m going, it looks like that post could be delivered by the end of the day.
At the rate I’m going, it looks like tomorrow is going to be another snow day! Doh!?