Organizing and Planning the Release Planning Event (AERP3)

Note: this post is part of a continuing series on Release Planning. The main posts in the series are organized and numbered sequentially (AERP1-n), and there are additional posts under the Release Planning category as well.

Participants

As we have described, (Release Planning: The Agile Enterprise Main Event (AERP2)) the release planning meeting is the seminal event in the enterprises agile process and representatives from all affected teams should attend. (For larger enterprises, there will be a sequence of such meetings, organized around cooperating components or subsystems.) Other stakeholders (executive sponsors, other departments, customers, etc.) who will be affected by the outcome should also attend. The meeting is typically a two-day face-to-face event with attendees including:

  • Agile Masters, team leads, Scrum Masters
  • Product Owners/Business Analysts
  • Product Managers and Customer Representatives (latter where feasible)
  • Tech lead and representative team members: developers, QA/Test, documentation, etc.
  • System and team architects (if applicable)
  • Release or project managers (where applicable)
  • Engineering Development Managers
  • VPs and executives responsible for product strategy, delivery and/or other affected operations

Preparation

A significant number of team members have the responsibility to prepare for the release planning meeting. Organized by role, these responsibilities fall roughly as follows:

Product Managers and Product Owners

  • Understand status of current release in process
  • Prepare draft release plan, dates and themes. Where multiple product managers are involved, meet ahead of time and solidify a single vision and a single set of priorities
  • Prepare a product backlog consisting of prioritized features
  • Prepare vision presentation for the meeting
  • Be open to the negotiations/scope management that will likely occur

Development Teams

  • Organize and update the current product backlog (items not in current release)
  • Decide on story estimating mechanism
  • Understand current team velocity (work capacity) and any upcoming schedule constraints (vacations, holidays etc)
  • Understand and prepare to discuss current architectural/infrastructure status and initiatives

Engineering Managers/Release Managers/Project Managers

  • Plan schedule (1-2 day event) and logistics (main event room with lots of wall/board space, plus break-out rooms)
  • Invite and assure appropriate attendance
  • Coordinate executive preparation and presentation
  • Determine program and facilitator/facilitation process
  • Assure coordination and readiness of product managers, architects etc prior to event

With this preparation under way, I’ll describe a program (sample agenda and sequence of activities) in a post later this week.

Release Planning: the Agile Enterprise Main Event (AERP2)

Note: This post is part of a continuing series where I’ve been discussing the critical role that release planning has in enterprise agility.

These seminal release planning events are one of the key mechanisms the enterprise can apply to use its emerging agile practices to drive a coordinated and directed strategy into the marketplace – a foundation for the Agile Enterprise.

I’ve discussed release planning extensively in the book and have more recently emphasized Release Planning as an answer to a number of critical questions in the following posts:

You Might Need Better Release Planning if….

Yes, Enterprise Agility is Hard

Enterprise Agility is Hard, but Release Planning Helps (AERP1)

In a nutshell, release planning is to the enterprise what iterations are to the team, i.e., the basic cadence, a critical best practice and organizational metaphor that holds all the other practices together. For without iterating (working software every two weeks), the teams are not agile. Without effective release planning, effective agile teams may well drive the enterprise to distraction – lots of pressures for improvement, increased productivity – but the enterprise itself may not yet have the ability to more quickly drive the right solutions to the right customers in the marketplace.

However, as with all things agile, when one considers the need for even doing release planning, which implies a certain amount of cost and overhead, we are reminded of some fundamental agile (manifesto) principles:

  1. the most efficient form of communication is face-to-face
  2. the best requirements, architecture and designs emerge from self-organizing teams
  3. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

And of course, the basic mantra,
“what is the simplest thing that can possibly work?”

These principles drive us to the conclusion that a periodic, one or two day, face-to-face meeting which gathers the right stakeholders together is the enterprises “Main Event”, an event intended to address the following objectives:

  • Build and share a common vision
  • Communicate market expectations, features and relative priorities for the next release(s)
  • Reflect and apply lessons learned from prior releases
  • Estimate and plan, in real time, the next release
  • Gain a commitment from the team to deliver the next release
  • Communicate any governing requirements such as standardization, internationalization, usability, etc.
  • Communicate and coordinate any major architectural initiatives, refactors and the like
  • Evolve, refine and communicate the product roadmap which the company uses to communicate to its customers and other stakeholders

In addition for those enterprises new to agile, this is an important opportunity to communicate to all stakeholders (particularly the executives) what the current priorities are, how the resources are allocated and reallocated based on priorities, and how the new agile processes are applied to deliver software to the market

Frequency of the Release Planning Event

The frequency of the event is dependent upon the company’s agile iteration and release patterns. We’ve recommended iterations of a maximum length of two weeks and internal releases (internal synchronization points that are potentially shippable, but decoupled from the general availability/customer consumable release) of a maximum length of 60-90 days. (By decoupling the internal releases from the external ones, we provide a degree of freedom that allows internal release planning to be scheduled and periodic, and the engineering teams to have a rapid delivery cadence, independent of any more public commitments (SLAs, public announcement venues, etc) the enterprise must make.)

So for many companies, an internal release cadence consisting of three “development” iterations plus one “hardening iteration” could look as follows:

iteration-release-cadence.jpg

With this (fairly rapid) cadence, release planning events would be generally be scheduled immediately before or after the internal release milestones. In practice, we’ve found that it doesn’t really matter exactly when, so long as a) the frequency generally matches that of the internal release and b) it happens before the last responsible moment, i.e before the release begins. We’ve also observed that for larger organizations, the 60 day internal release frequency is a big bite, and often we see it at a more leisurely 90-120 days. This may seem long to an agilist, but pretty fast to an enterprise that might have been releasing as infrequently as annually.

With this as context, I’ll be describing the preparation and agenda for the release planning event in posts throughout this week.

Yes, Enterprise Agility is Hard – But Release Planning Helps (AERP-1)

Note: This is the first post (AERP-1) in a series on Agile Enterprise Release Planning which I hope to continue over the next few weeks. They’ll be labeled AERP1-n, so you can eventually read them in sequence, front to back, if you like.

From the last post, Yes, Enterprise Agility is Hard, I noted:

“I’ve also come to the conclusion that effective Release Planning (agile, synchronized, multi-level release planning that is) is one of the critical keys to understand and implement agility effectively at enterprise scale. While I covered it somewhat in Chapter 12 – Smaller, More Frequent Releases and in Chapter 18, Systems of Systems and the Agile Release Train, I didn’t emphasize it as a significant and somewhat stand-alone enterprise practice that I now see it to be. To address this shortcoming, I’m writing an article on release planning from the inside out, i.e. an experiential, day-in-the-life emulation of a team lead experiencing an enterprise release planning session. This article should be published in the March 12 edition of the Agile Journal, Sharing Agile Successes. In addition, I intend to describe it more succinctly in some upcoming posts this week.”

When transitioning an enterprise to agile, I don’t generally start with the larger enterprise practices (Part III of the book), rather we (meaning me and a number of other coaches I know) typically start teams in what I call “heads-down-iterating” mode. Getting started with agile is difficult enough that first things must come first, and first, development teams must master, or at least have experienced, the basic project management and engineering practices of software agility. Forget the long term objectives for now, focus on what you can deliver and how you go about doing it in an agile, incremental, and quality-embedded way. After all, you can’t build an agile enterprise out of non-agile teams. And you can’t build a big, high quality system out of quality deficient little bits.

To start, many coaches start out by just getting the component teams organized and starting them iterating. This requires some basic reading at a minimum, and ideally some coaching and training. It also requires some time – at least 60-90 days – just to get the basic patterns down, and as I noted in my last post, even longer to master.

In order to help the teams succeed, companies often need to ignore many of the existing process and governance practices, or at least provide a short amnesty for those teams while they experiment with the new model. After all, an agile team can’t run very fast while trying to conform to non-agile milestones like “test plan complete” or “Milestone 2’s 50 point checklist”, or “software requirement specification approved”.

This problem/state of the enterprise is also paralleled in larger companies who are starting to see agile growing from the “bottom up”. Teams are doing stand-ups, software seems to be working and available more frequently and something is definitely different afoot. But in all likelihood, the types of documents, reviews, milestones etc. the company has insisted on prior (we respectfully note that all of which were originally designed to help, not hinder teams on their quest for quality and productivity) are not being followed well, or even at all. This causes a lot of consternation in the executive ranks who are responsible for governing these activities. After all, they are ultimately responsible for the outcomes and their jobs, if not the company’s future, hangs in the balance. It’s also possible that the agile teams may have “thrown out the baby with the bathwater” (for example, a corporate governance requirement that “all components must be subjected to a threat assessment review” in order to assure newly developed software meets security requirements, cannot be safely ignored).

At about this time in the evolution of the company, the entire agile initiative is threatened and if this stage of development is not recognized and addressed, it will “die on the vine” right then and there.

Moreover, the example above is just one example of the many concerns that are appropriately raised at that time. The question naturally arises in executive offices: “If this agile thing is to work, how do we answer the types of questions that some of our original practices were designed to address? Questions such as:

  1. What is the vision the teams are currently working against?
    (“after all, there is likely no marketing requirements document or software specification, so how do we know what they are doing. Even if we trust them, isn’t it our job to take this company in the right direction?”)
  2. What will we ship next and when will we ship it?
    (there is not likely to be a pert char around anymore. Even worse, some agile teams might be telling management, “we’re agile now, we’re adaptable, we’re empowered, and we don’t have to tell anyone what we will ship or when”)
  3. What longer term architectural initiatives must be addressed across multiple teams?
    (“if architecture emerges, how do we impose common infrastructures, usability guidelines, security solutions, etc”)
  4. How do we communicate common requirements across all teams?
    (example: “Can they all decide on their own what programs get internationalized, in what languages and when? That will be chaos.”)
  5. How and when do the teams coordinate their interdependencies?
    (“we know they should work together, but they are too big or too distributed to make that natural. Are they talking about the right things? After all, they aren’t sending us plans, documents or status reports anymore”)
  6. How are our resources allocated to the important, prioritized initiatives?
    (“How do we know whose working on what and whether the priorities are being addressed in a way to assure ROI. We don’t see documented plans any more, so how do we know who is working on what and when”

Fortunately, these are the types of questions that Agile Enterprise Release Planning (AERP) is designed to address. And we must address them, or our initiative will likely fail. So we’ll look further at this important practice in upcoming posts.

Ideal Training for Enterprise-Scale Agility?

Pete Behrens (www.trailridgeconsulting.com) and I were formulating a training strategy for a significant enterprise that is contemplating an “all in” (immediate and across the entire company) enterprise scale transformation approach. Based on my experiences at BMC Software and his experiences at Salesforce.com, as well as some of our larger, ongoing clients, we had a chance to reflect on what we would recommend as the “right” amount of training to ensure success. We concluded that for the enterprise, a combination of team-based and role-based training that would touch every practitioner is ideal. The summary of our training recommendations by role is seen in the figure below:

With this model, all team practitioners receive a minimum of two days of agile training, (agile team training for the each team in the enterprise) which we recommend as the minimum requirement, with an additional day or so of training for specialized roles of Product Owner, Project/Release Manager, and Agile/Scrum Master. All other executives and managers are invited to attend an overview course on scaling software agility.

Each of these courses is described in summary form below.

ideal-training-2.jpg

Agile for Teams Essential, team-based training in a two day workshop setting that introduces the philosophy, principles, and benefits of agility, agile methods, iterative and release framework, roles, agile technical practices, and agile management practices (Scrum). This is an interactive workshop with a specific project context producing a draft release plan and first iteration (sprint) plan. Training should also include those enterprise extensions applicable to the company’s context.

Agile Release and Project Management at Enterprise Scale For Project Managers, Release Managers, Program and Portfolio Managers who have responsibility for helping deliver the product(s) to the marketplace. Topics include differences between traditional and agile product management, iteration framework, multi-level release planning and tracking, the agile release train, planning and executing the release planning event, and measuring enterprise progress.

Agile Product Owner in the EnterpriseFor team-based product owners/candidates who will become responsible for backlog management, story writing, and iteration and release planning, and who will also be involved in the planning and coordination of larger scale software systems of systems built by teams of teams.

The Agile Master In The EnterpriseFor potential agile team leads/future Scrum Masters who will be coaching agile teams and who will interact with other teams as well. Topics include: process facilitation, enterprise agility, mastering the iteration, team roles, release planning and tracking, agile leadership, empowerment and conflict management, and integration Scrums.

Agile Product Manager in the EnterpriseFor enterprise product managers with product, product line, portfolio and business unit responsibilities. Topics include: what’s so different about agile, backlog and prioritization, relationship to product owners, PM’s role in release planning and management, visioning and the product roadmap.

Scaling Software Agility – Best Practices for Large EnterprisesFor executives and key stakeholders in support, distribution, quality, internal IT, HR and all others whose roles will be impacted by the substantive changes that enterprise agile engenders.

  • Part I – overview of agility highlighting lessons learned from the most common and effective agile methods
  • Part II – seven team best practices of agility that natively scale to the enterprise level
  • Part III – seven organizational capabilities that companies can master to achieve the full benefits of enterprise scale agility

I’m curious to hear whether others think this is too much or too little and what other patterns trainers have found to be effective?