Management

Transparency, Accountability, and Predictability - A Trust-based approach to Adopting Agility

These are the three pillars that I believe are the foundation to creating a successful Agile organization.  So much so that I’ve created an approach called TAP2 Change.

Each pillar supports the other and without developing all three pillars your ability to become an Agile organization will have only marginal success.

But what do we mean by ‘becoming Agile?

The Agile Manifesto was expressly about improving how we developed software, and though it highlights the need for high levels of business and technology engagement, it has a gaping hole in it that has left it hobbled and unable to realize the full benefit of being Agile, which is that the entire organization must change to support the Manifesto.

Being Agile is a state when your organization no longer thinks or acts in the previous way that you work, rather Agile is your new state of operations.  Unfortunately, Agile has been sold as a silver bullet, a product that will solve ALL of your organizations' problems and all you have to do is bring in a cadre of coaches and viola! your organization is Agile.

In any organization, we are always looking for better ways of working, Agile is just a new ‘better’ way of potentially working.  Just like your waterfall days, you will always be attempting to make Agile better.

But what is interesting is that virtually all organizations that grew up with Waterfall have their entire organization optimized to run in Waterfall.  Yet Agile has stayed almost entirely within the domain of Technology. 

You are asking for your organization to deliver more quickly, yet you don’t optimize your organization to support that.  As you start your Agile journey, you must consider the organization holistically, which is what TAP2 Change does.

This is why Agility requires you to build three pillars - Transparency, Accountability, and Predictability. 

These pillars have nothing to do with the frameworks that have grown up to ‘operationalize’ Agile, they can support the pillars if that is your choice, but they are not the entirety of what Agile must be if you are to have long-lasting transformative success.

TAP2 Change is designed to provide you with guidance, not directives, on how you can approach becoming Agile.  At every organization I’ve been at, we talk about how we are different from other organizations, and you are entirely correct and to think there is a single framework that will work as-is is not being realistic.

As a coach, I have had much success in helping organizations become more Agile, yet each one had its unique aspects that required that I tailor what we did to accomplish Agility.  And what worked at one organization may not work in another, being flexible in how you define Agility is the key to success. 

Again it’s not about the frameworks, at best they provide you a veneer or window dressing of ‘doing agile (note the small a) if Agile is a mindset then right now our mindsets are centered around Scrum, SAFe, LeSS, DAD, the list goes on. 

Though I will be writing in more depth on what each Pillar is all about at a high level here are the three pillars you need to develop as part of becoming Agile:

  • Transparency

    • This starts at the top, with leadership providing a clear understanding to people why becoming an Agile organization is important, what are the threats to us if we don’t become Agile, what are some of the expected changes that need to happen to support Agile (both organizationally and personally).

    • Conveying how can everyone in the organization both participate and also succeed in this new operational paradigm is another transparent layer of successful Agility.

    • Creating a clear Agility Mission and Vision and making it transparent will create the north start for everyone as they begin to ask the important question, how can I contribute to our collective success.

  • Accountability

    • Here is where we start to see the real aspects of the operational side of Agile.  And again it starts at the top.  Leadership can’t what I call a ‘fund it and forget it’ approach to this adoption, they too must change how they lead, manage and think about their organization. 

    • As a leader you are accountable for the success of Agility, you can’t outsource change to outside consultants (we can help but we aren’t the real change agents despite what everyone may think).

    • Planning and delivery comprise a large part of Accountability, which touches every part of the organization and top to bottom.  You can’t be Agile if the only thing that changes is that you deliver your waterfall projects in 2-3 week sprints.  Your organization must change everything from Ideation, Intake, Planning, Funding, Operations, and Staffing to support organizational Agility. Absolutely nothing is untouched by Agility if you are doing this right.

    • Empowering people at the lowest levels of the organization leads to high levels of accountability, building trust is the single most important part of the accountability pillar.

  • Predictability

    • This is the most controversial pillar of the three because Agilists see predictability as a means to continue to have projects that are fixed scope and time.  Yes, this happens in many Agile organizations, this is not what I mean by being predictable.

    • It is important that we not ignore every organization's need to deliver predictable results, whether they are a public or private entity.  Leaders are the public face of our organization and when they provide feedback or guidance on how or where the organization is going, investors and customers alike, are listening.

    • Predictability is the final pillar of TAP2 Change and the real focus of this is to optimize our Product Development teams to deliver consistently,  What this means operationally is that in an Agile organization there are no fixed scope/date projects.  Rather there is a Product Roadmap that provides visibility into small incremental improvements to that which we are working on, be it a brand new product or an existing one. 

    • Leadership with a high level of engagement can see progress (transparency) and know that their teams are being accountable (accountability) for delivering incremental value consistently (predictability).

One of the most important aspects of Agile is that it changes your entire organization, whether you want it to or not, eventually, the pain of living in the multiverse of Waterfall and Agile, will become too painful.  You will more than likely in this scenario go back to Waterfall, as the path of least resistance.

Because Agile is an organizational change, you must build trust with everyone involved.  And you must provide transparency to everyone in your organization regarding what, why, and how Agile will change their work.  Without this, you will not be able to convince people to change and Belief Perseverance (which we often mislabel as resistance) will be what keeps you from achieving your goal of moving you to Agile.

Organizational Zones of Antagonism

Recently my family and I were watching a worldwide bio-diversity seminar online and during one of the segments on Lichen’s (yes it was fascinating) the presenter talked about how Lichens grow and they formed what she called Zones of Antagonism as they looked for more food which allowed them to grow bigger.

The Zone of Antagonism formed a barrier around their space and would ward off any encroachment from another competing Lichen organism for their food source.

This concept immediately got me thinking about how organizations often operate with zones of antagonism as well.  We see and deal with them all of the time though we often refer to it as the politics of an organization.

People, due to the siloed design of their organizations' processes, often form what might look like zones of antagonism around their functional area.  These manifest themselves in many ways but are often revealed when an organization goes through any type of change management, such as an Agile Transformation.

Change forms a threat to the status quo, to the power bases built up with the current structure of the organization.  Power influences outcomes and outcomes drive behaviors.  Tell me how someone is incented and we can tell you how you are likely to behave.

We reward success, but which also means that there is a loser.  Much like the Lichen looking to compete for food, people often look to influence or consolidate power as much as they can when working within an organization.  We have been taught that to move up in an organization implies high levels of authority, influence, and compensation, so these are the drivers for what we see when we pull on the levers of change.

What we as change agents might refer to as resistance might also be called zones of antagonism instead.  It’s not that people are resisting as much as they are protecting against either something they know to be a real threat to their current state or something they fear due to a high level of unknowns.

As an Agile coach, we need to put ourselves in the place of the individuals we are coaching and ask if the organization has made clear the vision of why Agile is the way to go and what the organization and the people within it will get out of supporting the move to it?

If leadership for an organization has not made clear the game plan for engaging in change, Agile or otherwise, then people, much like Lichen will respond by establishing their zones of antagonism as a way to delay, thwart or even kill the transformation overall. 

We know resistance to change is real, however before condemning the resistance seek to understand it first.  It’s this step that starts the real work to remove the zones of antagonism in an organization that will cause the value you seek.

Too often as coaches, we are transactionally hired to come in and teach Scrum, SAFe, or any of the other myriad of frameworks used to ‘implement’ Agile. 

The problem is that the frameworks won’t make you Agile, only the mindset of change combined with the vehicle (frameworks) can move you from simply going through the motions and ‘Doing Agile’ to the place we want to be of ‘Being Agile’, where operate in a new normal.

TAP2 Change - Building an Agile Organization via the Pillars of Transparency, Accountability and Predictability

I’ve been involved with Agile for almost 15 years in all manner of roles and organizations. Some of the Agile efforts I’ve been involved with could be counted as a success, some not so much. 

The organizations that I’ve been involved with, which had successful transformations, had a few key behaviors they exhibited, which included:

1.     A willingness to be vulnerable regarding what wasn’t right about how the organization. These organizations weren't afraid to discuss what wasn't working and make decisions about what needed to be done at the Leadership level.

2.     Active engagement from the organization’s leadership and a willingness to experiment and fail along the way towards mature and effective agile processes.

3.     An ability to provide people and teams the space to become self-organizing and empowered to define how best to work within in the context of being Agile.

As I've moved through the Agile experience I've identified a way to approach an 'Agile Transformation' from a different perspective. Too often our focus is only on the frameworks that have grown up to support the implementation of Agile, such as Scrum, Kanban, SAFe, xP and a myriad of others. These frameworks focus on how teams operate and are concerned mostly about the flow of work to teams. This is only part of the equation.

Based upon my experiences I've created a framework that is holistically focused on changing the entire organization not just the software development capability.

I call the approach TAP2 Change

TAP2 Change focuses on developing three key pillars necessary for a successful Agile transformation:

1.     Transparency

2.     Accountability

3.     Predictability

Transparency

This pillar is about defining many of the missing pieces of most Agile Transformations, most importantly identifying why the organization wants to move too Agile.

Agile shines a light on all of your organization’s inefficiencies and asks one simple question – What you are going to do about it? 

Something we don’t tell organizations trying to be Agile is that Agile doesn’t fix anything, it’s not a framework, or a process, so it can't 'deliver' anything for you. What it is, is a mindset which asks you to challenge your current belief structures held within your organization and then start the process of re-envisioning your organization.

Transparency starts at the top where we challenge Leadership to:

1.     Define a clear vision and strategy conveying to the organization why you want to do this and what you expect to have as an outcome as you transition to Agile. Tell people the important part of change - ‘What’s In It For Me’

2.     Reassess how they view their value streams or develop them if they don’t exist. This will challenge long-held beliefs about what is valuable to the organization and will result in a brand new way of thinking about your business.

3.     Redefine your products and capabilities within the context of your value streams. This again will challenge beliefs about where your organizational value resides. 

4.     Engage people from all levels of the organization as you build out your Agile Transformation strategy, ivory tower approaches need not apply. Agile is a ground game that needs input from everyone in the organization so it doesn’t appear that this is being something done to them but with them.

5.     Completely change the way you look at how you finance your software development projects, moving from Project to Team-based funding.

Your Transparency Pillar will be the most difficult and will take the most time because if you can’t be transparent about what outcomes you are seeking and the ways that your organization must change to get them, then you will not realize the full value of going Agile.

Instead, you’ll be like the myriad of organizations who reach the state of Doing Agile and never move past this state or worse regress when leadership declares they are Agile and stops supporting it.

Accountability –

Accountability is an important element in any Agile Transformation however much of our efforts in rolling out Agile to the organization avoid organizational and team accountability.

When we talk about Accountability we are talking about several elements:

1.     Organizational Accountability – Leadership is accountable for defining an Agile Transformation strategy and roadmap and ensuring that they both communicate and regularly update the organization on how they are doing. Leadership is also accountable for ensuring that they support the change and don’t simply fund the initiative and forget about their part in this significant culture change that they must lead.

2.     Team Accountability – As Product Development teams begin operating in whatever framework that they will be using, they are accountable to the organization to engage positively and seek to continually grow in the maturity and capability of that framework. Too often Leadership views Agile as a way for software development teams to not be accountable for their work and show progress in delivering on important features and functionality. This is not the case, but how we view accountability is not about hitting fixed dates and scope but rather being accountable with respect to our Transparency so that Leadership is informed with facts about how we are progressing and can then more clearly understand the issues with attempting to create features in a highly complex environment.

Leadership is accountable to teams to be engaged in assessing what value we they are delivering and making fact based decisions on what is needed not what was wanted.

Predictability –

Predictability is ultimately what Leaders are looking for, they have to make commitments to customers and shareholders with respect to value that they expect to deliver. Not all organizations have the luxury to continually develop and deliver new features and enhancements such as Amazon or Google can, the reasons are many but they are real.

This pillar however, just as with the Accountability Pillar, is not about a team marching towards a fixed date/fixed scope effort. Rather Predictability is about understanding the capacity of individual teams and the entire organization and identifying the minimal amount of work that will deliver the most value in the shortest time.

We view Predictability not within the context of scope but with cadence, be it story points, # of stories, or whatever metric you use to identify how much work can be completed within a specified amount of time.

To ignore our need to show progress, even if the progress shows that we are hitting challenges, provides important fast feedback to Leadership so that they can make informed decisions and manage expectations of customers earlier than waterfall would ever allow.

You can build out one or more of the Pillars, but it is the strength of all three that will provide you with a strong foundation for building a successful Agile Transformation.

To learn more about our process you can reach me at michael@soundagile.com or go to www.soundagile.com

Also - Coming Soon - Look for my book - TAP2 Change Building an Agile Organization via the Pillars of Transparency, Accountability, and Predictability.


Launching SoundAgile Consulting

I've been involved with Agile with many different organizations now for over 12 years. In these years I've primarily been involved with being a contributing individual over a being an Agile coach.

The business of Agile has grown to a significant size and has now become a product that is sold to businesses who want to move their organization to Agile.  The very people who started Agile off as a movement have splintered off into several factions, each having their own opinion or approach in how to help organizations adopt Agile as a capability within their organization.  We now have Scrum, SAFe, DAD and LeSS to name a few in our acronym vocabulary.

Agile can indeed bring about valuable changes to an organizations ability to deliver software product more quickly.  These areas of Agile are fairly thought out, User Stories, Continuous Integration, Automation and Scrum.  You can move your development teams to a faster pace with some focus on specific team and development techniques that require some time to learn with some level of ease.

What Agile is struggling with is at the organizational level.  The Agile manifesto is specifically focused on building software better with a goal of delivering high value and quality software to our organizations.  A noble cause for sure and one that was sorely needed, given the changes in our software capabilities over the past 20 years.

Sr. Leadership however hasn't changed much, still managing in a large up front analysis budgeting process which creates a painful friction between fast moving product delivery teams and slow moving hierarchical management structures .

For those organizations who are being sold Agile as a product that will deliver 'x' benefits know this about what is occurring.  These organizations are finding people who have done 'some' to 'no' real Agile, meaning they haven't actually worked on an Agile team. Getting people who have the 'right' certifications doesn't provide those people with the ability to coach teams in the reality of Agile, only the theory of Agile and their current frameworks.

They are also focused only on the product development area of your business, letting you believe that you will receive huge benefits from moving to Agile without the corresponding changes necessary throughout your entire organization to support a fast paced product delivery teams.

Agile is not a small change management effort, rather it is a multi-year impact to your organization, that if done well will lead you to great success.  If done poorly will provide you with significant pain without any corresponding benefits.

I've spent many years thinking about what I might offer from an Agile consulting perspective and I've come to the conclusion that any Agile 'consulting' work that I would want to engage in must include both Sr. Leadership down and the team level.

Another thing I have concluded is that successful organizations that want to become Agile, must do so with a much smaller footprint of coaching.  You don't need full-time coaches for a long period of time.  In relying on full time coaches you are asking them to be your organizational Agile cop over owning the change within your organization.  The most successful Agile organizations I've worked in never had an Agile coach. Let me repeat that, never had an Agile a coach.  Instead they owned the move to Agile from the top down.  They provided the opportunity for teams to be empowered and fail and were not afraid to change organizational processes when they became impediments to improving Agilty.

SoundAgile will provide two levels of support and coaching for your organization.

  1. Team Level - Coaching and training will be accomplished through a combination of online training videos, 1:1 coaching and targeted onsite sessions for specific techniques such as Discovery/User Story Mapping, User Story Writing and Behavior Driven Development.
  2. Management Level - This will cover every management level in your organization, especially focusing in on your most impacted people, your technology managers.  Coaching and training will again be accomplished utilizing videos, 1:1 coaching and probably most importantly, targeted 1-2 day sessions that will continue for a multi-year time period. These sessions will provide for a longer term inspect and adapt change management process.

I'm really excited to be launching SoundAgile and am looking forward to working with people and organizations as they engage and encounter this thing called Agile.

SoundAgile will be live within the next two weeks.  I look forward to working with people who are motivated to move to Agile and make it work for them and their organizations.

Top Down or Bottom Up - Large Scale Agile Adoption

So I've worked in both large and small organizations where we have gone through an Agile adoption or the phrase of the day, Transformation. Having seen both sides of the coin I started realizing that you have two paths to take when considering moving your organization to an Agile delivery methodology.

I use the phrase delivery, because I think at the end of the day that is what we are talking about.  Strip away the manifesto's goals of conversation over documentation, accepting change, etc...What are are really talking about is moving an organization from a Project delivery methodology to one that is Product delivery oriented.

What is the difference?  From a Management perspective actually quite large.

  1. Project Delivery - These have very strong controls which move people to a new project.  Budgets are set up for the specific time period of the project and then up front requirements and design are completed in order to ensure that the project is fully ready to be engaged.  Project Managers manage all facets of the project via extensive project planning and plans.  Management receives up dates as to the project progress on a regular schedule, usually weekly. Resources are assigned either in full or in part, yet no one actually monitors nor can they really manage whether or not someone is working 25% on a particular project.  Projects tend to focus on reporting and there is high pressure to ensure that individual projects are green, which drives teams to deliver on the easiest and often less valuable parts of the project first and only at the end of the project is the hard work tackled, which reveals itself as budget overruns or timeline delays (or worse delivery of reduced scope).  Project reporting is elaborate and management receives project reports that are often sanitized.  Value is typically not delivered to the organization until the end of the project.
  2. Product Delivery - The work that is done for a Product is centered around a value stream it delivers and the work is ongoing.  Teams are funded as a whole and are kept together long-term in order to maximize their productivity.  Work is planned out in short increments called Release Plans that span anywhere from 6-12 weeks, with 2 week sprints.  Management receives regular updates (2 weeks) but can access information radiators at anytime, transparency is the key and goal with Agile Product Delivery.  Teams commit to work in 2 week sprints and their commitment is key to building trust with Management.  As time goes by management can trust that both a teams abilities and productivity can be counted on.  Teams are focused on delivering high quality code to production every two weeks which brings value to the organizations investment in them along with the increased value in terms of new sales, reduced costs, etc...Feedback loops via Product Demonstrations provides management the ability to assess where they are going with the product and deliver not what was asked for up front (Project Delivery) but rather what is actually needed (Product Delivery).

So what does the difference between Project and Product delivery approaches have to do with Agile adoption, well everything.

Most Agile adoptions begin at the bottom of the organization with the teams tasked with developing new software.  These efforts are borne, as the Agile manifesto was, out of frustration with how software was being developed in their respective organizations.  Often management is aware of the issues these teams face but are unable or unwilling to make any changes to how things are currently working and why would they?  You learn very early in your career that rocking the boat is not something that goes over well with organizations, my first boss told me I couldn't by computers that weren't from IBM because you don't get fired if you buy IBM. The message is that if anything goes wrong you need to point to well-known names, processes, etc.. with which to blame or use as support.  To think that this doesn't go on today is to place your head in the proverbial sand.

Though we can have great success with bottom up Agile adoptions with respect to improved productivity within small groups/teams, the overall Project oriented organization is typically still in place.  Management still wants to see project plans, have things 'planned' out for up to an entire year, they aren't comfortable with the fuzzy feel of product roadmaps.  They want commitments, even false ones, so that when things fail they can point to the fact that they had all of their planning in place.

For Agile to really take hold, Sr. Leaders need to change the way that they manage both their people and the work.  It starts first I think in understanding that we have not learned how to speak to management very well yet from an Agile/Scrum perspective.

We need to understand what management is really concerned about and then center our product delivery efforts around that.  One of the problems that we face with some of our leaders is that they themselves don't always know what to be focused on, they are looking at multiple balls in the air but at the end of the day as a Sr. Leader I think I have just a few things I should be focused on:

  1. Growth - This is often related to sales, market and revenue.
  2. Profits - Tightly aligned with the first item, our ability to make a consistent profit is what helps us continue to reinvest in our company.  Ever increasing revenue or sales without corresponding profits will eventually lead a company into bankruptcy, money isn't free and it is not endlessly available, in spite of what we think we see with new technology organizations.
  3. Organizational Excellence - Because none of the above can happen unless you have a great organization.

Agile actually addresses all of the above, yet we spend more time talking about how we will improve our individual work efforts which causes us to  fail to tie this to the needs of management.  Management on the other hand often views the improvements that come from the bottom up approach as more of an anomaly rather than an organizational improvement worth adopting.

Trust is the missing component when it comes to conveying how Agile will make the entire organization better.

Agile isn't easy and it requires skills that frankly many of our Sr. Leaders lack or don't fully utilize and the politics of most organizations reward behavior that doesn't align with Agile principles such as transparency, open honest conversation and openly questioning the status quo.  We have people in power who got there by way of the non-Agile status quo and changing that means they have to learn how the new game is played in order to stay on top, it's much easier to keep things they way they are over learning how to navigate the new.

So how do we speak to our Sr. Leaders with respect to Agile?

  1. Better ROI - Talk to any Finance executive about what they look at when purchasing a piece of equipment that will deliver revenue and you will hear them talk about Net Present Value of the investment, Positive Cash Flow and Depreciation costs.
    1. We improve ROI in Agile due to our focus on only the most valuable items.  In non-Agile project work often are working on features/functionality that may be important to someone inside the organization yet will bring little or no value to the organization.
    2. When we are able to start talking about the value streams of our organization, be they revenue, cost reduction or improving our brand image we begin to be able to have a better ROI conversation with management.
    3. We also positively impact ROI via higher levels of productivity gained with dedicated teams.
  2. Flexibility - One of the most important elements that 21st century organizations require is the ability to be flexible enough to react to market forces or reactions.  Financing large projects far out into the future with the expectation of some level of return and no we don't really have great track records of predicting future ROI out very far into the future.  With Agile we provide the framework to identify the most valuable work for the business in small planning windows.
    1. Sr. Management needs to understand that this flexibility comes with an obligation to have consistent short term review windows as the team progresses so that we deliver what is actually needed and not what we thought we wanted.  You may have thought you needed a Ferrari when in fact what you needed was a mini-van, we provide the framework to course correct via Sprint reviews every two weeks.  If you plan all of your project up front for the Ferrari, we'll certainly try to make that happen, but in reality as the end of the project nears you will probably get the car but with a lawnmower engine and no brakes, it may look like a Ferrari but it won't operate like one nor will it provide the value the organization really needed.
  3. Predictability - Another key element that we deliver with Agile is predictability and accountability.  Your teams will be much more accurate in planning and delivering in short-term 2 week sprints with a planning horizon of 6-8 weeks.  What management needs to look for is consistent delivery of the committed work that the team makes, commitment is everything.  What Wall Street analysts look for is a business that can provide a solid ROI, react responsibly to their competitors or even better be a market leaders and provide predictable results year in and year out.

So the question at hand is what is better a Top Down or Bottom Up adoption?  My money for long-term success is on the organization that can consume what Agile really means, not just to their development teams but the organization as a whole.  You can't BE Agile if you don't make the paradigm shift from command and control to one of collaborative and collective delivery.

Management and Agile - To Succeed or Not to Succeed

As more and more larger organizations look to Agile as a means of delivering software to their customers the one thing that keeps coming back to me is that for any of this to work there has to be transparency and acceptance that a move to Agile will change your organization, not understanding this will court almost inevitable failure. Agile in itself is an aspirational desire to change the way that we deliver software, one that does away with the project processes that evolved over the years from Waterfall.  I know that waterfall feels sound and safe with all of its up front business analysis, project planning, Steering Committees and that all important Change Management process, but in reality it really is more of a facade than foundation.

Having managed work and projects in both worlds I have seen how it all works.  Recently I was told (in an Agile organization) that Project Managers are responsible for delivery and it was at that point that my thoughts crystallized around my own journey, Project Managers don't deliver, Teams do.

At it's heart Agile is about everyone doing their part to make our product delivery better, whatever that looks like for your organization in that moment in time.  Agile by itself is not prescriptive, the Scrum/Lean techniques and processes that have evolved from our Agile journey may be a bit more prescriptive and become more so when we add things like Scrum certifications to people's palmares.  We need remember that one of the key reasons that the manifesto came into being was an intense desire to find better ways to deliver software, which means the journey has no end and certifications and such are merely ways for us to have a shared language.  Let me repeat, once you commence on your Agile 'journey' it doesn't have an end, you will always be evaluating what you can do better.

So back to the question at hand, to succeed or not to succeed in Agile, what needs to happen?

  1. Trust - First and foremost we need to begin to build trust between Sr. Management and our Product Delivery teams.  If we have a history of delivering late, with fewer features and cost overruns it is really hard for that same management team to flip the switch once you say you are Agile and trust the very teams who haven't delivered in the past.  Trust is a two-way street and the great thing about Agile is that once you begin to master the techniques and methods that successful teams utilize trust is almost a by-product of that.
    1. Commitments - In Waterfall we are making a 'commitment' to deliver a set of value/features in a specified period of time based upon a business requirements document as guidance for what the business/customer is asking for.  When we make a commitment farther out into the future we become less and less accurate with our plans, it is the nature of the unknown unknowns in life.  Things change, they always do, so to expect that our business and software development teams, in today's ever-changing world, can predict 9-12 months in the future exactly what they are going to deliver is simply living in delusion.  Manage reality or it will manage you.  Commitments in Agile are much shorter in time, basically every 2 weeks.  These commitments however are based upon the Vision that YOU management need to provide.  You say you can't plan for the future every two weeks I would argue you can't plan much further out.  By planning and committing in shorter delivery increments, management get an opportunity to change direction without causing massive pain from already planned out work.  We need to be able to change direction or refocus efforts on the things that are most valuable to our business, not what we made big plans for last year that we thought we needed.  Locking in feature development that doesn't meet customer needs, simply wastes money and loses market share.  When teams make and keep their commitments to you, they gain confidence and you gain trust.
      1.  Context - In most waterfall projects we end up asking for absolutely everything we think we might need, when in reality sometimes 70% of what we asked for (or even less) is more than enough to meet the needs we were trying to address.  Focus on the most Valuable things your customer wants and move on to the next highest value work, not diminishing returns on things customers may not value as much as we might.  Teams want to work on what brings the most value to the organization, development teams when provided the transparency of why we need to do something can do amazing things.
    2. Self Organizing Teams - This one really causes I think the most concern for management.  You in essence are saying that the teams that you currently manage are better able to make decisions about how to delivery our products.  Guess what, they are.  These are people who work in the trenches every single day, know every single issue, impediment, risk, etc... associated with your current product delivery processes.  And every one of them has probably said something to the effect of, 'If I was in charge I'd to do X to fix this'.  I've been a Sr. Manager for many years and have built several high performing teams and one of the best things I can do for them is to provide guidance and vision for what I'm looking for and letting them solve the issues that deliver the solution.  I'm a smart guy but I don't have all of the answers and if you are the type of manager who believes that in order to be 'respected' you have to be the one to manage how Agile will change your product delivery processes you will fail personally and the organization will suffer as a whole.  Teams of people can solve major problems much more easily than one person can, so let them have the ability to self organize and empower them with making the necessary changes to improve your product delivery.
      1. Context - With great power comes great responsibility.  By ceding some level of daily control to your teams you are also doing so with the expectation that they deliver on what they commit to..  If they don't then they must provide a game plan based upon the Retrospective on how they will solve their inability to hit their commitments.
  2. Investment - Agile won't come without an investment cost associated with it.  If like many large organizations you have a mess of legacy code mixed with attempts at migrating to newer technology stacks, business requirements and rules imbedded in code with tribal knowledge scattered through the organization.  Agile requires speed in your product development processes which translates into several investment areas:
    1. Automation - When we say automate we mean across the entire spectrum of the organization, if it can be automated you should probably evaluate whether it can/should be.  More specifically we want to automate:
      1. Unit Tests - Developers should be writing unit tests for everything they build, preferably using XP techniques such as TDD (Test Driven Development).  These are not really hard processes but if you are starting from scratch there is both discipline and framework that needs to be built-in order to get to a mature state for test automation.  Unit tests need to be executed with every build, because with that comes fast feedback if something broke, fix it early and you increase speed and profitability.
      2. Integration Tests - Probably one of the harder areas to get high levels of automation in, primarily because the organization hasn't invested in the appropriate product like test environments.  Be prepared in your Agile journey to spend heavily on getting the right environments in place and highly available.  Testing the performance of your system right before you deliver is a recipe for disaster and delays (remember time is money).
      3. Functional Tests - These are the tests management is probably most familiar with and may even have reviewed at one point or another.  These are typically the manual tests that QA will execute at the end of your waterfall project, where we are not baking in Quality but testing out defects.  Building high levels of automated testing at the functional level gets to what I call, Progressive Regression.  Instead of running a final full regression at the end of a 6-9 month project, why not do it every single night?  You will need to again invest in physical environments but also in people training as many in the QA world are not equipped to handle the new role of a Software Engineer in Test.
        1. Word of Caution - Don't rely only on Test Automation in your functional testing efforts, you still need real people with hands on testing capabilities because at the end of the day automated testing cannot always tell you when something is bad from an experience or product flow perspective.
      4. Deployments - One of the hardest things that teams fail at is planning for deployments to their environments.  Making your deployment process as frictionless as possible is a high value target for your organization.  Many organizations don't have a fully functional DevOps org and many in this field are still struggling to figure out how to operate in an Agile world.  Let them figure it out and provide them with the tools that will support automation of critical deployment processes and hold them accountable to doing it.  To many times we purchase tools and then never make the time to actually use them, invest and utilize, that is the key to your ROI.
      5. None of the above work comes without an investment in both hardware and people.  Current requirements processes will change substantially as you move to an Agile cadence.  People will struggle to find their way, some level of productivity reduction is expected in the beginning of an Agile transformation. You as a Leader need to set a clear vision of why the organization needs to change, make it clear that the teams have accountability to deliver the work that they commit to and that you as a leader have accountability to provide them with space to learn, fail and finally improve.  Successful Agile includes failure because without it we aren't really learning from our mistakes, rather hiding the truth.  Agile done right makes everything visible, especially who is accountable for what.
  3. Patience - Nothing great was ever built-in a day or a week.  Odds are good that this will take more time than you thought it would, but also make it clear to the organization that an Agile death march is not something that you are taking on either.  Agile is about accountability and commitment, use these values to your benefit and identify those that simply can't or won't work in an Agile environment.

From a management perspective you need to understand your role in the success of any Agile transformation, it must also change the way you look at and manage your business.

Agile isn't Easy

Over the years I have seen many teams and organizations who start on their journey towards Agile product delivery make the mistake of thinking that Agile is easy, promotes freely changing direction and worse will fix all of your issues and make everything better quickly and easily.  The truth couldn't be further from the reality. There is no such thing as a perfect software development delivery process.  Unlike production lines for things such as automobiles where you have the same pieces going to together each and every time and each piece has a specific functionality, tolerance and timing, software development is the exact opposite.

Software development is about meeting changing needs across the dynamic nature of business  For example - You wouldn't see an automobile company add anew feature to a car on their assembly line over a 2-4 week time period.  They need time to design the entire process and ensure that the production line is capable of accepting the new change.

Traditional software development tends to align a bit more to the automobile example and in fact there are times where this type of rigid, pragmatic approach to product delivery is actually the correct process (Agile isn't for everyone nor for every situation).

However for those that are going to move to Agile you need understand that the type of discipline that you might use in the automobile example actually needs to exist in your Agile processes, seriously you ask? Yes - You need to be able to deliver high quality, well-tested and fully functional pieces of software every two weeks. Now are you seeing how difficult Agile can be?

If you think Agile is easy, then you are already on the path to failure and unmet expectations.

It is very common for teams who are moving to Agile to take their interpretation of the Agile Manifesto to the unhealthy extremes, for example:

  • Working Software Over Comprehensive Documentation

Many teams I've worked with take this to mean NO documentation and that couldn't be further from the truth.  We value working software over the need for documentation but I've never believed that you can have long-term success with your product without delivering some levels of documentation.  Without documentation your software knowledge becomes tribal and when your tribe leaves the team or your organization, well so does their knowledge.

There are way for teams to build documentation as part of their daily Sprint development work.  Using the combination of user stories and Behavior Driven Development (BDD) acceptance criteria as the foundational elements of your work you are creating your documentation as part of the work needed to deliver quickly.  The great value in BDD is that the acceptance criteria is written in English syntax and then translated into test automation.

This process of writing stories with BDD is supported by Gojko Adzics book, Specification by Example and allows us to deliver light weight documentation during our sprints.  I often see teams adding a story to a future sprint to handle their 'documentation' requirements of their previous work but I haven't seen this work long-term.  Functional development, dealing with bugs, etc... will ultimately push these stories down into the backlog, never to be seen again.

The process described above is not easy, but it can be done and the teams that can get to this level of capability will succeed in driving value to your organization every two weeks.

One of the things that I consistently tell organizations moving to Agile is that it will highlight every current weakness of your product/software delivery methods.  Agile is a game changer, it requires a mind shift in how you look at your product, the work that supports it and how you see the visualize the value your product delivers.  If you are a leader who is going to be uncomfortable finding out truths about your organizations inefficient manner of product delivery then you need to think twice about moving to Agile.

Do you have TITL (To Important to Lose) people in your organization?  If you do, then you need to really look at how they influence any changes in your organization.  Do you need to get their approval, gain their support, etc....?  If so you will find more often than not that Agile will scare the hell out of them.  Successful Agile teams/organizations understand that self organizing teams take away the need for many of the day-to-day management decisions our middle management layer makes.  Agile speed comes when you remove the friction of management layers and provide teams with a clear vision of what you want them to deliver.

You must be prepared for the resistance that you will face from your product delivery teams, not everyone wants to go to Agile  We become comfortable with what we know and do in our daily work life and in that comfort comes stasis.  If you are not prepared to lose people, especially your TITL people, then you need to question if Agile is really for you.

I know it sounds heartless, but I've been working for over 30 years and one of the first things I learned right out of college was that technology was disruptive and if you weren't on board with how it changes how you work you would be left behind. At one company I worked for many years ago, I saw Regional sales managers who had been with the company for over 30 years and when we rolled out a sales force tracking/marketing tool (which I led) there were several who refused to even turn on the computer, they were all let go within months.  As employees we have the obligation to continue to grow and learn and continue to make ourselves valuable to our organization and if we don't, then you as a leader have an obligation to make tough decisions that ensure that the organization is continuing to grow and not stagnate with old processes.  It's not personal it's business.

As you move to Agile you also need to understand the investment that needs to be made in your technology stack.  Many organizations have decades old technology stacks which have been shoe horned into the future and though you get by you won't be able to become Agile until you have a strong Continuous Integration framework, high levels of Unit, Integration and Functional test automation.  Getting to this will take time (and using the stories and BDD disciplines mentioned above will help you get there).  You simply can't go fast if you don't have the technology backbone that supports it.

Agile isn't easy by any stretch of the imagination, it requires thoughtful introspection, focus on continuous improvement, disciplined delivery and a tenacity for value and quality that is never satisfied.

GSD or Feeling Good about the Wrong Things

Over the past couple of years I have heard the term GSD used quite a bit as a means to describe high-performing individuals (note I did not say team). I have to admit that this is not an acronym that I was very familiar with, primarily GSD referred to my designation in college as someone who didn't want to join a fraternity, the politically correct term would be Gosh Darn Independent (And this is probably a great way to define who I have been throughout my career).

Before embarking on this post I did some quick google searches and came up with some thoughts on GSD:

  1. The Urban Dictionary definition:
    1. GSD is brought about through severe bout of procrastination, not getting work done on a regular basis, therefore needing to set aside long amounts of time to disappear and get shit done.
  2. What Spinks Thinks - http://whatspinksthinks.com/2013/11/04/get-shit-done-the-worst-startup-culture-ever/

The term, as it is used now is, Get Shit Done, which does sound great at first pass.  However when you start working with GSD as part of building a defined delivery process you start to see some very ugly things drop out of it:

  • Heros - Those great people who came in and saved the day and got some serious shit done under intense pressure.  Never mind that the day they were saving maybe shouldn't have happened in the first place or even worse, the situation requiring them to save the day via GSD was of their own making, convienently lost in the thrill of GSD.
  • Lack of Defined work - Who cares what I am doing so long as at the end of the day I can show you how much shit I got done.
  • Lack of Plans - See above.

The problem as I see it with GSD is that we aren't asking ourselves a basic question - Are we doing the right shit at the right time?

Yes getting 'shit' done is good and getting it in done makes us feel good, however if there is no real process behind your way of getting shit done then you will be destined for unpredictable delivery of the work that brings your organization the most value.

I find in my experience that GSD is more about individual glory over a team (see my blog on Teams Deliver) which I find troubling on so many levels.

Organizations spend lot's of money having their technology teams deliver features that they believe bring value to the business and even though there may be many ways of delivering this value, ie Agile, Waterfall, Lean, I have yet to see GSD making its way into main stream product and project management lexicon.

Continuing my educational tour of the world of GSD I found a posting from two guys named Daniel Epstein and Pascal Finnette who appear to be individuals who provide support, coaching and services to technology entrepreneurs specifically regarding GSD:

  1. GYSHIDO - A movement started a few years ago dedicated to The Art of Getting Your Shit Done.  They identified that their most intrinsic value as employees was that they got shit done, but in looking at their code of honor I see elements of good process, so is it possible thatGSD has some value?  Too soon to tell.  But here is their code of honor:
    1. Relentless focus - Focus on the 10% of your activities which drive most of the value. Relentlessly.
    2. Boring consistency - Do the right things over and over again. Consistency forms habits. Habits make hard things effortless.
    3. No Bullshit - Don't bullshit yourself or others. Apply brutal honesty and transparency to everything you do.
    4. No Meetings - Meetings come in only two forms: Standing or social. If it's social, it's over breakfast, lunch, coffee, dinner or drinks. If not - don't sit down.
    5. Follow up - Don't let others wait for your part of the job. Ever.
    6. Don't be an Asshole

As I read through their ethics I believe (I haven't talked with these guys) that their process could align with the agile type world.  Why?

  • Many of the elements of what they believe is good GDS is what I consider good behavior of Agile teams:
    • Focus on the work that delivers the most value - Agile, 2 week sprints, deliver production ready features continually.
    • Consistency - Keep your Scrum Teams together, let them improve in estimation, execution, test automation, boring?  maybe, get shit done fast?  yes
    • No Bullshit - Retrospectives ask us to be brutally honest when things are working and fix what doesn't work.  Attack the problem not the person (see number 6 - Don't be an Asshole)
    • Follow-up - In Agile I always talk about how we need to think of minutes over hours when resolving issues that are blocking us from completing our work.

Agile teams focus on identifying the valuable 'thing' that we need to deliver and then develop lightweight plans to deliver it incrementally. I suspect that GSD has its roots in waterfall SDLC where a project would roll happily along, green week after week, oblivious or ignorant to how the project was actually unfolding.  Decisions made by the team that never surfaced had large impacts on scope and viability of the project.

GSD I believe emanates from the need for a project team to 'pull a rabbit' out of the hat in order to deliver the project 'on-time'.  My years as a waterfall PM saw this time and time again.  We fool ourselves into thinking that we can predict a large project from beginning to end all up front, you can't, period.

So when you are rewarded in a GSD organization they are ultimately is saying that the organization values chaos over effective planning and delivery.

 

Agile Transformation - Coaching needs and requirements

Having been involved in Agile for over 10 years, and for most of these years I have  helped organizations switch to Agile, I have (I believe) a great grasp of what needs to happen when your organization decides to 'Go Agile'. Yes the larger the organization the more that the organizational change element is brought in to the mix, and for this post I want to focus on the elements of Agile coaching as it relates to these larger transformation efforts, which with SAFe is a hot area of growth for Agile consulting.

With the large Agile transformations I've been involved with I have identified what I believe are the three main types of coaches you are likely to come across in an Agile transformation:

  1. Those that have had experience in the trenches, who have led Scrum teams, built the products that are delivered to the business.
  2. Those that have primarily been involved with Agile 'transformations' at the management level.
  3. Those that have taken the necessary courses to 'become' Agile and may have been  a Project Manager in another life. (I'm not denigrating PM's as I was a PM who first experienced Agile from this perspective, I'm rather saying that there are coaches who haven't actually been involved with Agile, but have gone out and obtained Agile certifications, making them 'look' like people who have the right 'credentials' when people who don't know Agile are looking to hire coaches)

Let's talk about what each one brings to the table and what you need to look for when bringing on a coach to support your specific Agile transformation.

  1. Coaches from the Trenches
    1. Key Benefits- These individuals bring a wealth of experience with how to operationalize Agile. They get it, they believe in it and they now what works, how to make course corrections when something isn't working AND they have huge levels of creditability with technical teams.  They talk the talk and can walk the walk.
    2. Key Weaknesses - If there is one the weakness with this type of coach is that in larger scaled Agile transformations, there are very specific processes and formats that get rolled out to the entire organization so that everyone is doing the same thing.  Sounds right doesn't it?  This individual will want to work out what works for their team and not always align to the Transformation processes, causing frustration between the coach and the group leading the transformation.
    3. Things to think about - Agile is not like making cars where every production line making car X has to be doing the same thing so that you maximize the speed of the process and build in your quality and productivity INTO the process.  Agile isn't like that, rather Agile is a framework that should allow for each Scrum team the flexibility to determine WHAT works for them without being prescriptive.
      1. My Input When I am helping an organization move to Agile I like 'sprinkle' the framework and tenants of Agile to the teams and then let the teams iterate on the process that works for them.  I give them the things I look for to determine how they are doing, such as stable velocity, good backlog and effective and accurate estimation (which of course feeds the stable velocity).  The 'from the Trenches' individual is one who will succeed very will in this type of environment and not very well in an extremely structured Agile process.
  2. Coaches who were Managers - These individuals have typically seen their organization have success with Agile and have made the decision to move into an Agile career.
    1. Key Benefits - As with the from the Trenches coach, this individual does 'get it' and has an ability to gain creditability with upper management and can convey the higher level benefits to them.  This individual talks the talk of management and understands how to get in the head of management to help them understand their responsibilities in helping a transformation succeed.
    2. Key Weaknesses - So far I see way more of these individuals as coaches than I do the in the trenches coaches.  This can cause issues because they can sometimes tend to take a more hands off approach in working with their teams and don't have the experience nor creditability to work with the technical teams in a direct manner.  They simply don't have the technical and Agile chops to help the team grow and aren't as adept and making course corrections to the process.  Here you are seeing the effects of Top down driven Agile over bottom up (which I'm more a proponent of).
    3. Things to Think about - Consider having these types of coaches run more of the program level coaching, working more closely with upper management to help them mature in their thinking and protect the teams as they figure out how to be successful in their Agile processes.
  3. Certification Coaches - As I indicated these are the people who have been involved with software development for many years, perhaps in the project management career path and have taken Certified Scrum Master classes and maybe Certified Product Owner.  Though they understand 'software development' they don't, IMHO, understand Product Development and all that this implies in an Agile world.
    1. Key Benefits - Of the three types of coaches, these individuals probably offer the least from a benefits perspective if expected to lead an Agile transformation effort.  These types of individuals understand the basics of Agile and run teams from that perspective.  Not having worked in the trenches they haven't yet had the opportunity to deal with real world Agile and the challenges it presents.  This is not to say that these individuals don't have the skills, knowledge or capabilities to be great coaches but what I am saying is that if you have a large number of coaches fall into this group then your PD teams will be at a disadvantage and this individual will struggle to gain creditability with their Scrum teams and your Agile adoption will fail.
    2. Key Weaknessess - As stated above, these coaches tend to not yet have the creditability or depth of knowledge to be as effective as coaching types 1 and 2, they will need to be partnered with more experienced coaches to enable them to be successful and grown their Agile skills.
    3. Things to Think about - Look for people who can demonstrate servant leadership in their past experience, this is a key behavior of successful PM's, Tech Leads and Managers.  I believe my success in Agile is primarily due to the fact that I am a servant leader by nature.

When you go looking for coaches consider your organizations size, current development maturity and honest assessment of the problems you face with your current Product Delivery processes.  And I do mean HONEST, if you can't take honesty then Agile is not for you.  The Continuous Improvement element of Agile demands honesty and if you are an organization that doesn't want to hear that you PD teams have issues then you will continue to have a less efficient model of delivering value to your customers (and isn't that what ALL of this is really about?)

These will provide you insight into what you will need to move towards Agile.

Also try to avoid labeling your coaches when they come in such as that one is our BDD expert, that one is our blah blah expert. This will tend to keep other coaches from participating and sharing their skills for a specific area and ensure that you processes for that specific area of expertise will suffer ( I speak from experience on this one ).

Agile - The Ugly Truth

If you are an organization that is considering moving to Agile, especially a larger one, there is an Ugly Truth that Agile consulting firms don't want you to know: You don't need coaches to come in full-time to help you on your journey......

Sure you can spend a ton of money on people who will come in and tell you how you should be doing standup, scrum, retrospectives, etc....Try to get everyone to do the same thing across your organization.  The Truth? In successful Agile organizations everyone can be different, that's ok.  Yes you want some consistency but doing things by rote doesn't get you where you want to go.

In the coaching world we talk about organizations Doing Agile who never get to Being Agile.  What's the difference??  Everything.

Yes the basics of Agile include things such as standup, retros, sprint planning and release planning, but those are the basics that can make you feel like you are Agile, but that's about it.

Agile IS transformative process and one that if you as an organization buy into, will receive great value from in the form of valued delivered in a more consistent manner.

I remember years ago when I was managing a technical project that required that I purchase some hardware and though I had found a better deal with a different vendor, my boss told me to buy the IBM hardware (at a much higher price) with the advice - 'You don't get fired for buying IBM'.

I think that many large organizations fall into this mindset and when trying to move to Agile  They fall into the mistaken belief that if you hire one of the large Agile coaching groups or hire Agile consultants, that you will ensure success or at the very least not get fired because you hired 'Agile professionals'.

Yes you do need people who can provide support in the important areas that Agile truly needs to have in order to bring the value you desire from it:

  1. Automation - Develop, implement and improve your test automation frameworks.  This includes unit, integration and functional areas.  You MUST make this investment and you need to get to high levels of automation, because without it you cannot go fast, time for testing will hold you back.
  2. Planning and Estimation - An area that is very much overlooked when moving your product development teams to Agile is the need for these teams to form a strong working relationship and learn how to plan in estimate in Agile.  The notion, especially for larger organizations, that you don't need to do some level of up front planning is a sure way to fail and fast.
  3. Organizational change - Probably more than anything you need to understand that your organization will change, significantly in many ways, when you move to Agile.  You need to prepare your managers to let go and let their teams own their deliverables (trust me if you give this to people they will own it).  You as an organization need to understand that your management group will change, you will need fewer managers (sorry folks that is a reality).  Though in reality many of your current managers were placed in these roles as more as a retention means over a true management track that the organization has defined.  These people need to move into your Tech Lead roles, they run their scrum teams, own the technical and architectural elements of their product code.  Managers will oversee several Scrum Teams and will be focused on larger concepts such as technical roadmaps, cross organizational planning and staff development.

So the Ugly Truth is that you don't need to spend hundreds of thousands of dollars on coaches who will tell your teams what to do.  Instead hire people who have been on the ground, who can help your teams learn the skills they need such as TDD, BDD, User Story Mapping and Estimating.

Start small and grow the process into the organization.  You need to get your processes working on a small-scale and then move outwards into the organization.  The people who are successful in your pilot groups become your sales people for the next groups.  Trust me, I listen to the people who actually do the work more than I ever do people who try to provide me basic information that I can find anywhere online.

 

Agile Metrics

One of the hardest things that we struggle with in Agile is with is how to report how we are doing with respect to our projects.  Agile or otherwise we still primarily think of our software development in a project orientation. All of our historical metrics from our waterfall days talk about headcount, resourcing, man hours (days), project milestones, etc…..

In Agile we don’t produce the type of metrics that management has historically used as progress tools.

You hear quite often that in Agile velocity is king (kind of like cash) and in a real sense that is true for me.

Velocity represents the amount of value that a single Scrum team can deliver.  We know that each Scrum team has a specific set fixed cost and the value that they ‘consistently’ deliver reflects a key metric for management to key on.

  • Velocity – What can you glean from a single number?
    • Effective Estimation – A Scrum team that doesn’t deliver accurate or confident estimates they will see their velocity roller coaster from sprint to sprint.
      • What to look for? –
        • If a team consistently has to move a story to the next sprint because it couldn’t be completed that is an indicator for estimation improvement.  This has the effect of reducing the points for that sprint as they can’t accept an incomplete story.
        • If a team consistently has large stories entering their sprint, ie larger than 8 points, this is an indication that they haven’t decomposed their stories enough.  Lack of story breakdown results in more unknowns leading to inaccurate sprint commitments.
  • Planned vs Actual – Another flavor of identifying estimation issues.
    • What to track? – Once a team develops a consistent velocity (usually takes 3-5 sprints) then that is what we should expect each iteration, providing people aren’t on vacation, etc…A team that commits to varying levels of story points each sprint typically hasn’t performed enough story development or they lack a well-groomed backlog.
    • Burndown – I specifically like this as it reflects the above issues very nicely.
      • What to look for? – Pretty simple really.  A team that has performed effective story decomposition, planning and estimation should expect to see their work being delivered and completed throughout the entire sprint.
      • What to look for? – Teams who have a cliff dive burndown where all of the story points in development hit QA at the end of the sprint.  (Solution? – QA needs to set up a working agreement so that they will only test ‘x’ number of points in any given day.  If the team delivers 12 points on Friday and the agreement is 8 points for testing, then 4 story points will not get accepted, regardless if ‘development is done’ (cold uh?).
    • Sprint changes – Though harder to track with most of the tools out there (Rally has an app but I’m not sure it provides information that is easily derived regarding which stories actually left the sprint and which ones came in).  Regardless of how you track it, this one metric will tell you a lot about an organization and it’s overall planning effectiveness.  Remember – Agile accepts that change is inevitable, but in the real world you can’t have unmanaged change, teams can’t work effectively or productively in that manner.
    • Sprint Plan vs Actual – As teams improve in their planning and estimation skills, they should also get better at providing accurate estimates as to the number of Sprints it will take to complete a feature (aka project).  One of the things I had a VP say to me recently is that he wasn’t sure Agile was the way because at the end of the day he still had to make commitments to Sr. Mgt.  The notion that Agile can’t provide plans that have accuracy is wrong, however you  but need to focus on Discovery, Planning and Estimation efforts.  And we need to understand that there are places and times where we need to take time to do this work.  Thinking that we should always just be coding is a sure way to build something, but probably not the right something.

The Agile Manager Conundrum

If your organization is moving towards Agile there are some specific elements you will need to be aware of from a Management perspective.

 Agile focuses on teams being self organizing and what that means for managers is that you need to give up some control, however that doesn't mean you are backing away completely.
Effective managers in Agile focus on these areas:
  1. Technical Vision - This is so lacking in most of the organizations.  Most organizations I've worked for have some higher level vision set in place, maybe some standards but at the execution level these tend to ignored in favor of getting 'it out the door'.  Teams incur substantial technical debt that costs real pain and money to organizations long term.  A good manager is able to set forth operational vision for the team.  Using Scrum processes such as Retrospectives, the manager can encourage the team to come up with processes that work for them that support the vision.
  2. Technical Excellence - The operational side of the vision again involves the team understanding what it takes to deliver high quality code.  Understanding how to ensure that code is refactored on a continual basis, that code reviews are not rubber stamps but should have a specific focus and structure designed to teach.  At one startup I worked for code reviews were taken very seriously and provided junior developers with an opportunity to get good feedback on how they were developing as engineers.  As a manager you need to ensure that the Alpha dog syndrome doesn't happen, good code reviews are educational not demeaning.
  3. Career Development - This is probably one of the harder areas for technical managers to be successful in because I think most organizations don't provide the right type of management training to their technical management staff.  Understanding what to look for and encourage is for me the most important element of being a good manager.  Career development provides the organization with employees who are happier, more focused, more dedicated and produce higher quality results.
No where in these areas do you see the manager handling problems with the teams project planning, etc...  Though you need to build confidence in your teams abilities to deliver, you also need to let the Scrum team and processes evolve so that they(the team) handle most of the day to day issues and keep you in reserve for the important ones that truly need management intervention.
You have plenty to do as an Agile manager, it's just not what you are probably doing today.

Being Agile - Say it, Do it, Prove it

I was working with a team recently and as we talked about all of the planning that Agile entails, I broke it down into very simple terms - Say it , Do it , Prove it. That is really what Agile is about.  Anything else outside of these three concepts is noise to your ability to deliver product and services to internal and external customers.  As Product Owners in an Agile organization, you need to understand all of the effort and dynamics involved in getting your teams to Say it, Do it, Prove it.

Delivering what you say you are going to deliver is the best way to build credibility with your stakeholders.

For Agile teams, this translates into being effective at decomposing your stories into small enough increments so that you are confident in your understanding of the user story and estimates that the team believes in.

  1. Say it = Release Planning and Backlog Grooming -
    1. Starting at a high level, the Product Owner is responsible for saying what is important to the organization from a value standpoint and beginning the process of developing a user story backlog that supports this vision.
    2. User story decomposition is so important to effective Agile teams and the Product Owner must start with a set of well-formed stories that provide context to the team.
    3. What is 'context'?   Context is anything that provides definition.  It is basically what the product should do from a functional standpoint.  One of the biggest mistakes many teams make is writing declarative stories that start with the 'How'.  This,\ in turn,  puts the technical team on the defensive as they may have many different ways to implement the feature.  As a Product Owner, be sure to steer clear of writing stories that define how you think the feature story should be implemented.  I know that as we all become well versed in technology there is a strong desire to show off our technical chops, however, as a PO you need to provide context from a business standpoint that your tech teams can consume. I've heard time and again from engineers that they would really like to understand how what they are developing delivers business value or solves a particular pain point for the customer.  The team works much more effectively when they are completely grounded in the business context of what they are building.
  2. Do it = Sprint execution 
    1. An important element for teams to address once they are ready to take stories into a sprint, is that the goal during the Release Planning and Backlog Grooming activities was to begin to build out the context of 'How' the story will be implemented.  It is so important for teams to understand that there is essentially a handoff from the PO to the Scrum Team and that each of them is responsible for building what I call contextually rich user stories.  Gojko Adzic calls this Specifications by Example.  Effective teams who deliver fast and with high quality work closely as a team.
    2.  I believe that the combination of User driven stories and context driven specifications (examples) forms an extremely strong definition of both Ready and Done. which is why I coach my teams to utilize BDD as the basis for developing their User Story acceptance criteria.  The team works together to complete BDD acceptance criteria forming a clear understanding of the boundaries of the feature.  This provides the PO with a concise view of what to expect during the Demo.
    3. Another key benefit of writing BDD as part of your user story writing is that the test automation engineers can easily consume this as part of their code development for the automation.  PO's should push to get to this level of context as it also means that your test engineers can start developing their test automation code once the story is ready for development.  They can essentially perform TDD in that they can write their automation before the feature is actually developed.  Once developed the automation should run cleanly and both speed and quality are attained.
    4. The goal of teams should be to deliver user stories that do not require much further elaboration once the sprint begins.  You want your teams focused on delivery ,not on discovery.
  3. Prove it = Retrospective
    1. You have done all of the work to clearly define your user stories with high levels of context.  With all of this effort, the Retrospective should be an easy affair to show the work that was defined in the stories.  The PO should not have any surprises.  In fact, if the team misses any test scenarios after the story has been started, the PO should consider that more of a missed requirement over anything else.  Since the entire team developed the stories,  there can be no finger-pointing at anyone.  It was a shared miss and everyone must accept it.

It sounds really simple when broken down into these 3 basics phrases.  The truth is that 'Being Agile' is much more involved than simply 'Doing Agile'.

"Being Agile" means exposing all of the inefficiencies in your product development processes.  It requires that the organization be completely honest in assessing what is not working and committing to letting the teams that do the work fix these processes.  You cannot top down drive the type of organizational change that is required for Agile continuous improvement.  Real organizational change is fostered at the top but truly owned by the Scrum teams that form in support of any Agile adoption.

Agile and the Management Impact

You're a technology manager in an organization that has decided that they are going to adopt Agile.  Thunk......now what? You've spent years becoming the high performing manager you are today, managing the day-to-day details of your team, holding things together, making decisions big and small....You are the leader, success of your team hinges on your ability to make decisions that impact the way the team works. Your team is successful because of your management efforts....Sound like you?

This Agile thing is telling me that my teams are now going to be 'self-organizing' and be able to make decisions on their own...what the heck am I going to do?

Managers who are asked to move their organization to Agile may often believe like they are providing the path to the doorway out of the company.  This resistance can be one of the primary impediments to successful Agile adoption and as an organization Sr. Management needs to be aware of this paradigm and provide support to middle managers that Agile is not about replacing them but truly about getting them into a position where they are focused in the truly valuable parts of their job - Strategic Planning, Employee Development..the bigger picture.

Stephen Covey teaches that successful managers are the ones who are able to remove themselves from the quadrant of activities that are Urgent and Important and focus on the activities that were Important but Not Urgent, meaning remove yourself from day-to-day decision-making over planning and strategy development.

So many of us can get sucked into the day-to-day minutiae of our teams that we end up ignoring the bigger picture areas which should be our focus.  Why?  Because dealing with Important and Urgent activities is an addictive feeling, you feel like you are making important decisions when in fact your team is probably more than capable of making them without you.

Agile provides your team with leadership opportunities that aren't found in more traditional process control organizations.  Step back and let your team grow.  I've been amazed how teams, when given the opportunity, can solve process issues and impediments to productivity that I would have never thought of.  The collective minds of your organization are capable of great things.

As a manager you need and want to embrace this power and provide support for you team.  Let them help you and help the organization deliver on the promise that Agile provides.

How can you help?

  • Understand that for your teams to succeed they need to fail, yes I said that.
  • Don't attend their ceremonies (standups, retrospectives)  Why?  The team needs to be able to speak openly and honestly about what is working and not working without you being present.
  • Use the working metrics available to you, velocity, burndown.  If your team says they are going to do 'x' story points and they do that consistently, what else do you need to know?
  • Don't force your opinions on what they 'SHOULD' be doing.  Have confidence that you have hired great people and they like you want to succeed.
  • Work closely with the Product Owner and Scrum Master to discuss any concerns you have.  Understand why things are working a certain way before leveling your judgement.
  • Don't act as a Scrum Master or Product Owner of the team. Why?  You manage their careers and it's highly unlikely that the team will receive the benefits of iterative continuous improvement if they don't feel confident that they can say when things aren't working well.
  • Don't believe that everything is great the way it is, anything can be improved.

Agile will provide transparency with respect to the areas of your organization that isn't working efficiently.  As a management team you will need to focus your attention on addressing these impediments as your Agile teams mature.  If these hurdles and impediments aren't dealt with you will reach a ceiling on the ROI that Agile can provide.  As with your teams, management needs to be honest with themselves about broader organizational issues so that a stronger and more effective organization emerges.

Agile isn't just about delivering software faster, it's much more than that.  Understanding that will make the transition your Agile smoother.

Agile Discovery - Addressing fixed date/scope projects through upfront planning

Most of the Agile projects (perhaps all) that I have worked on over the years have started with an express understanding of scope AND a fixed date for the delivery.  One of the common myths I think people have about Agile is that when you 'go' Agile this issue goes away, it doesn't. By ignoring the need for some level of planning prior to taking on an Agile project, teams start with a deficit of knowledge (ie well groomed story backlog).

I'm a huge proponent of having teams take on their project backlog with an initial Discovery workshop that includes the entire team and can take anywhere from 1-5 days depending upon the size and scope of the project being considered.

I've used this approach to plan out a 6 month release with tremendous success, typically delivering more value than the stakeholder asked for and with virtually no defects.

I think this planning effort is key for teams to realize high levels of iteration productivity.  The time to build context in your stories and features is not after the iteration (or train) has left the station.

Many of you, especially Product Owners, will make the assumption that it's a waste of time for the team to perform a Discovery session that builds out stories and acceptance criteria at a lower level for more than an iteration out.  The concern that everyone has is that if we don't start coding immediately we'll be behind and won't make our commitment.  The truth?  Having a user story backlog that is well formed and understood by the team allows the team to stay focused and productive over trying to design and address context while trying to actually code the feature.

What do I mean by Discovery?

Once a team receives a project from their stakeholders with a set date for delivery, the 'scope' of the project then becomes the key to meeting the delivery expectations.

If the team just starts coding with the first few stories that are available they are already in story deficit, they don't have enough work to keep the iteration engine going, meaning Backlog Grooming, Pre-Iteration Planning and Current Iteration planning.  High functioning Agile teams understand that the iteration engine only works when you have a product backlog that is clearly prioritized, has sufficient context and can be worked on with no real impediments.

For example if a team has a six month project which consists of 12 two week iterations the team needs to identify the following:

  • Story Themes - What are the functional slices of the features/product you are delivering.  Themes form the basis for building your release plan.  Themes will hold the high level user stories that are identified in Discovery, typically greater than 40 points.
  • Epics - These are the larger User Stories that are identified during discovery as they relate to the Story Themes.  These will typically be larger than 40 points.
  • Features - As Epics are decomposed they are further brought into focus as distinct features that can be worked on a independent units of work.  Features will typically be sized between 21-40 points and have a much greater shared understanding by the team of what it will take to deliver this.
  • User Stories - As teams continue to decompose Features that are able to get to the granular set of work, complete with Acceptance Criteria (such as BDD).  These are the items that are addressed in iteration planning.

My experience over the years has seen teams be able to spend anywhere from 2-5 days working through the Themes, Epics and Features such that we have a strong understanding of how the project will unfold from a release standpoint and a lower level set of Features and User Stories that help UX work ahead of the Delivery team.  This process has proven successful for the teams I've worked with who have tried it.

I'm not suggesting that an entire 12 iteration project needs to be flushed out to the user story task level, however getting further than the Epic level with a few features and a few stories will allow teams to be very focused on iteration level delivery on a consistent basis.

This effort can provide a higher level confidence level for the team with a small spike of investment in upfront planning.

Planning is an important element of successful Agile teams, don't short change it when working through new features/functionality.