Lessons Learned from Agile Transformations: Part 14

Fourteenth in a Fifteen Part Series

By Chad Greenslade

I have often been asked about my lessons learned in delivering Agile transformations. Below is the fourteenth in a fifteen part series examining my lessons learned while instituting Agile concepts & practices. I hope that these lessons help you on your journey to Agile nirvana.

Lesson 14: Execute Sprint Zero (0)

As with any other project, you’ll want to ensure you have all materials procured, all contracts signed, environments built, tools selected, etc. While this is occurring, your Product Owner should continue writing and grooming User Stories.

Sprint Zero (0) is when all preparation work takes place to ensure your team can begin writing software free from obvious impediments such as environmental or procurement constraints. To ensure your team can begin work on schedule, ensure your Sprint Zero (0) accomplishes the following:

Architecture: Once you have the Product Roadmap defined, an Architect is then able to define major system components such as application, database, and web servers, environments, programming languages, software development kits to be used, etc.

Contracts: If the product’s architecture requires you to contract with new vendors, you’ll need to get any legal documents drafted and signed during Sprint Zero (0), if they have not been done already.

Materials Procurement: If the product’s architecture requires you to procure materials, procurement activities must be completed during Sprint Zero (0).

Determine the Sprint Duration: Most teams have two (2)-week Sprints. A Sprint should never be longer than four (4) weeks and no shorter than one (1) week. If a project has significant risk, it is best to have shorter sprints. The shorter the sprint, the less amount of time elapses between the sprint inspection activities, which allows management to course correct much faster. You always want to find out sooner rather than later if your project is going “off the rails.”

Release Plan: Once the Sprint duration is determined, the initial release plan can be developed. Using the Product Roadmap, lay out the Features, Themes, and Epics over a three-to-six month period. Your Release Plan will now be connecting the Product Roadmap and the Sprints themselves. A Release Plan can either be built from a feature or a schedule perspective. A feature-based roadmap determines those features that make the most sense to release together, whereas a schedule-based roadmap picks a date in the future and then determines which features can be delivered by that date. If you know that features contain specific risks, it is a good idea to attempt to release those first.

Determine the Team’s Beginning Velocity: Since this is a transformation initiative, your team will have no historical information from which to base its Velocity. The Normalized Estimation Technique provides a one-time method for getting a team’s Velocity defined such that it can informatively pull User Stories from the Product Backlog into the Sprint Backlog. For every full-time developer and tester on the team, give the team 8 points (adjust for part-timers). Subtract 1 point for every team member vacation day and holiday. Find a small User Story that would take about a half-day to develop and a half-day to test and validate, and call it a “1”. Estimate every other Story relative to that one using the Fibonacci sequence. Never look back and do not worry about recalibrating. Remember, a team’s velocity is inherent to the team, and is not transferable to another team.

I do not recommend agile training be undertaken during Sprint Zero (0), but if there are members or your team that are unfamiliar with Agile, the training must be completed during Sprint Zero (0).

Lessons Learned from Agile Transformations: Part 13

Thirteenth in a Fifteen Part Series

By Chad Greenslade

I have often been asked about my lessons learned in delivering Agile transformations. Below is the thirteenth in a fifteen part series examining my lessons learned while instituting Agile concepts & practices. I hope that these lessons help you on your journey to Agile nirvana.

Lesson 13: Build a Product Roadmap (containing Features, Themes, & Epics)

Immediately following the kick-off meeting, you’ll want to begin agile planning. Time spent on agile planning is intentionally limited because agilists know they will be expected to embrace change as the project unfolds. Change occurs when business priorities shift causing features (either in development or in the backlog) to have more or less value to the organization. The ability to realize value by capitalizing on expected change is one of the key benefits of agile, and the underlying reason that most organizations undertake an agile organizational transformation.

The first and most important step to building a product roadmap is to clearly define the “product”. A product is something that has business value. It may generate revenue or support a business outcome. It could be one (1) traditional stand-alone application or it could be a suite of several applications, databases, or processes. My recommendation is to define software development “products” as individual applications. I have supported “products” consisting of more than one (1) application, but doing so becomes unnecessarily complex. If your product’s applications cannot be uncoupled, then it is very important that every team member be able to develop code on all of the applications within the “product”. For example, if your product consists of three (3) applications, but only two (2) out of five (5) team members are able to develop on one (1) of the applications, the output of your team cannot be realistically calculated or planned.

Agile planning follows a logical framework with consistent vernacular. To build a Product Roadmap, you’re only interested in the top three (3) levels of planning:

Features: A “Feature” is a broad-grouping of high level functionality. The “Feature” designation is intended to be the highest level strata for classifying a product’s functionality requirements. Feature examples for a technology product are “Payment” and “Login”. A user of the system will login and make payments for purchased goods. Features are too big for detailed planning, but they provide the structure and framework to gather additional requirements.

Themes: A “Theme” is a designation used to decompose Features. For example, for a “Payment” feature, the type (or form) of payment accepted could be considered a “Theme”. If a product accepts multiple forms of Payment, a theme could be “Credit Card”, “Paypal”, “ACH Debit”, etc. Likewise, if a product accepts multiple forms of login authentication, a theme could be “Login with Facebook”, “Login with Email”, etc. Like with Features, Themes are still used only as a planning framework are not detailed enough for actionable tasks.

Epics: An “Epic” is an even lower level designation intended to further decompose Themes. For example, an Epic associated with a “Credit Card” Theme could be “Visa”. Similarly, for a “Login with Email” theme, an Epic could be “Multi-Factor Authentication”. While these are lower level, further decomposed work items, they are still not detailed enough for actionable tasks.

The Product Roadmap is the pre-requisite for the Release Plan discussed in the following lesson. Once the Product Roadmap is defined, the Product Owner can begin writing User Stories and appending them to relevant Epics. Agilists understand that the development of User Stories will continue as the project unfolds, but the goal is to have the Product Owner begin drafting User Stories that he / she deems as having the most business value, immediately after the initial version of the Product Roadmap is released. These User Stories should naturally rise to the top of the discussion during backlog grooming and sprint planning sessions since they have the most business value and highest priority.

Lessons Learned from Agile Transformations: Part 12

Twelfth in a Fifteen Part Series

By Chad Greenslade

I have often been asked about my lessons learned in delivering Agile transformations. Below is the twelfth in a fifteen part series examining my lessons learned while instituting Agile concepts & practices. I hope that these lessons help you on your journey to Agile nirvana.

Lesson 12: Hold a Kick-Off Meeting

Every project begins with a kick-off meeting. Agile projects are no different. It is a chance to pull every team member into a meeting and outline the project’s execution parameters. Do not discount the importance of having everyone present. Find a time that works for everyone and schedule enough time for attendees to ask questions. You and your sponsor will be speaking a majority of the time, but your attendees will have questions that will invariably drive questions from other attendees. One hour is typically the maximum amount of time you’ll want to use for a kick-off meeting. Thirty minutes may not be long enough. Try to get everyone in the same room if possible, and allow enough time for attendees to process the information and learn from the experience. Be positive about the outcome. State your expectation of success.

At a minimum, the kick-off meeting must address who, what, when, where, and why. All attendees must leave the meeting with a firm understanding of this information. The delivery of this information will have the most impact if it is delivered by your sponsor. His or her clout in the organization will strengthen the message and demonstrate to participants that senior management is firmly behind their effort. Whether it is at the kick-off meeting or at some other point in the project, the sponsor must demonstrate his or her commitment to the initiative and its methods to mitigate potential team member subversion later in the project.

When drafting the agenda for your kick-off meeting, be sure to include the following:

Who: Often times you’ll see this information covered in the form of introductions. Allow each team member to introduce themselves, discuss their background, and explain why they were chosen for the project. These are the people that will make it happen, so don’t shortcut this part of the meeting. Allow everyone to learn from everyone.

What: You’ll definitely want your sponsor to cover this part of the kick-off meeting. Your sponsor should articulate exactly what the project is meant to accomplish, as well as any risks and / or issues they see the team encountering.

When: Communicate the estimated project timeline to the team. You’ll want to use the best possible projection for an end date. If there is a deadline to be met, that must be communicated as well.

How: Next, you’ll want to cover how the Agile framework will be used to deliver the project. Your team will have been trained in Agile concepts so nothing should be new to them. You’ll want to emphasize how this project will use a fairly “by-the-book” implementation of Agile and explain any deviations or tailoring expected. No one should leave concerned about the manner in which Agile will be used. If someone has a concern, be sure to let them voice it for the entire team to hear and discuss it as a group.

Where: An increasing amount of software development is being completed by remote resources, making it impossible for team members to be co-located. If co-location is possible, you’ll want to tell team members where they’ll be sitting on a day-to-day basis. You’ll want to cover where the Agile ceremonies will be held and any collaboration tools team members are expected to use for virtual presence.

Why: It’s a good idea to have your sponsor close the kick-off meeting with why company leadership has chosen to try agile and selected this project to pilot test. The sponsor must ask every team member for their support and make himself available for questions or concerns.

Completion of the kick-off meeting using the outline above will ensure you and your team are well positioned for success.

Lessons Learned from Agile Transformations: Part 11

Eleventh in a Fifteen Part Series

By Chad Greenslade

I have often been asked about my lessons learned in delivering Agile transformations.  Below is the eleventh in a fifteen part series examining my lessons learned while instituting Agile concepts & practices.  I hope that these lessons help you on your journey to Agile nirvana.

Lesson 11: Select a Pilot Project

Simply put, the pilot project must be a project that is representative of, and similar to, other projects executed at your office.  It cannot be a “one-off” or unique project.  For example, projects related to mergers and acquisitions are typically not good candidates, whereas projects related to ongoing enhancements of technology services are good candidates. 

Sponsor alignment during the selection process is required.  The sponsor must be aligned on the purpose of selecting the pilot project, which is to allow the team to test the execution of agile fundamentals from beginning to end, and gauge agile’s feasibility for your environment.  If the project is a success, it will give momentum to the transformation initiative.  If the project is a failure, it is not the end of the world.  Aspirations and expectations must be tempered while the team learns their new work patterns. 

To guide the pilot project selection process, you will want to evaluate projects against six (6) key criteria:

(1) Duration: Select a project with an expected duration between four (4) and twelve (12) weeks. Shorter projects do not allow the team adequate time to execute the repeatable agile processes. The team must have enough time to fumble through things and recover while they learn, and be able to deliver meaningful feedback on agile’s effectiveness. Longer projects have an ineffective feedback loop for those learning new work patterns. Additionally, longer projects slow down the organization’s ability to effectively integrate the new work patterns across many teams.

(2) Priority: The project must be at least moderately important with an adequate level of investment and expected return. The highest and lowest priority projects in the organization are not good candidates. Look for a project somewhere in the middle of the organization’s priorities.

(3) Risk: Similar to priority, you will want to find a project with some risk, but not so much that people working on the project feel pressured to revert to old work habits. Resources working on the project must be in a relatively low-stress setting when initially executing the newly learned agile processes. Similarly, never pick a project that if it fails to deliver, the company could go out of business.

(4) Human Resources Required: Look for a project that requires several cross-functional resources to deliver. An IT software development project will typically have a business analyst, architect, one or more software developers, testers, and a project manager. Feedback from each of these roles as they execute the new work practices is critical to the success of your agile transformation initiative.

(5) Project Lifecycle: Look for a project that traverses the typical phases of an IT project. You’ll want a project that goes through the normal initiation, planning, design, development, testing, implementation, and support phases. Having a project that only produces a design or delivers business requirements is not a good choice. Your team must be able to see their product perform in operation to gain insight of the effectiveness of the new work practice.

(6) Sponsor Engagement: Your Sponsor must play the role of Product Owner during the pilot project. Ideally, your pilot project will be selected from your Sponsor’s list of projects. If your Sponsor does not have a project that matches the pilot selection criteria, your Sponsor must partner with another executive to use one of their projects as the pilot. If this occurs, your Sponsor must still play the role of the Product Owner on behalf of the partnered executive. This requires a level of trust between your Sponsor and the executive that he / she chose to partner with. This arrangement is only appropriate for the pilot project and serves to shield the team from unnecessary outside criticism while they experience the agile learning curve.

Compare the organization’s list of pending projects against the selection criteria above to yield a list of potential pilot projects. Have your Sponsor select the pilot project armed with the information above. This is not a decision to be taken lightly. Success or failure will impede or accelerate your transformation initiative.

Lessons Learned from Agile Transformations: Part 10

Tenth in a Fifteen Part Series

By Chad Greenslade

I have often been asked about my lessons learned in delivering Agile transformations.  Below is the tenth in a fifteen part series examining my lessons learned while instituting Agile concepts & practices.  I hope that these lessons help you on your journey to Agile nirvana.

Lesson 10: Train the Team in Agile Concepts & Practices

While you may have some team members with prior agile experience, you must regard your pilot team as being unfamiliar with agile.  You must increase the team’s agile knowledge as quickly as possible.  There is only one (1) proven method to accomplish this; you must send the entire pilot team, along with the Sponsor, to an agile “101” class, or an agile boot camp.  An introductory agile class is typically three (3) days.  Five (5) day agile “boot-camps” are also available.  Certified agile trainers will facilitate the course. I believe the most common and effective course is one that certifies attendees as scrum masters.  The scrum master course typically provides the baseline foundational agile knowledge that your team will need to be successful.

The reason this training is so important is because attendees learn about and perform the agile processes and ceremonies during the class.  Attendees learn “by-the-book” agile concepts and tenets and perform the processes and ceremonies as they were intended, and not adapted to fit any specific organization.  Your pilot team should not be taught how to adapt agile to their organization at this time.  Adaptation will come later as the team masters the techniques and makes informed decisions about which adaptations truly make sense.  Adaptation too early typically results in a team falling back into old waterfall-style habits.

Agile training attendees will learn that they must deliver software frequently, at the end of each sprint, and the processes must be carried out to realize this objective.  When training is complete, the team must assess how existing enterprise tools and processes support and / or hinder their ability to deliver software frequently.  The team must understand how they will use existing tools and processes within the new agile context.  Most tools and processes can be adapted to agile.  You will need to engage the owners of these tools and processes to educate them on the support required for your agile project to be successful.  If changes to existing tools and processes are required, be prepared to have multiple conversations with tool and process owners to get them onboard with the support required of them.           

By the time your team has completed agile training and understood how existing tools and processes will support their agile project, they will need to know where they will physically sit each day.  Conventional agile wisdom dictates that teams sit co-located and in the same room whenever possible.  Given today’s remote work IT culture, rarely have I seen this play out exactly as specified.  The COVID-19 pandemic has exerted additional pressures on agile teams by restricting their abilities to sit in an office.  I have found that collaboration tools coupled with a structured and well controlled sprint execution framework can keep all team members adequately engaged, and negates the need for team members to sit next to one another.

Lessons Learned from Agile Transformations: Part 9

Ninth in a Fifteen Part Series

By Chad Greenslade

I have often been asked about my lessons learned in delivering Agile transformations.  Below is the ninth in a fifteen part series examining my lessons learned while instituting Agile concepts & practices.  I hope that these lessons help you on your journey to Agile nirvana.

Lesson 9: Socialize Generic Agile Concepts & Practices Prior to Full Rollout

The term “socialization” refers to the process of internalizing the norms and ideologies of a social group.  This internalization, or learning process, is done by every member of the group, typically over a short period of time.  Socializing a concept requires memorization, practice, and discussion of the required actions that must be taken.  In a business setting, it is not uncommon for a team to require two (2) or more weeks to adequately socialize and accept a new work practice.  Every group and team situation will be slightly different.  Therefore, the time period required for a team to socialize concepts will differ.  As team size and process complexity grows, so does the time required to socialize the concepts.

There are two (2) practices that you must introduce and socialize amongst personnel involved in the organization’s agile transformation.  These are daily planning and retrospectives.  These practices are widely regarded to be low impact, highly effective, and the starting point of a company’s iterative transformation.  At this point, you will have identified the agile sponsor or champion, executives, stakeholders, supporters, and the agile team.   All of these personnel must socialize the practices.  The agile team will carry out the practices, but everyone must be on-board with the concepts.  After the agile team is identified but before the agile pilot project is underway, agile team members should attempt to implement these practices in their day-to-day activities.  These practices immediately illustrate agile’s core tenets of transparency of work, open and honest communication, and a willingness to improve over time.  By embracing these practices, the organization can gently adapt to the organizational change required.    The successes and efficiencies gained by implementing these practices will build the momentum you will need for organizational commitment.

Agile’s daily planning practice is known as the “standup meeting”.  The standup meeting gets its name because no one should be sitting during the meeting.  A standup meeting is no longer than fifteen (15) minutes.  The standup meeting should be held at the beginning of the work day, and the team should decide on the date, time, and location.  Every team member must attend and every team member must speak.  In a roundtable format, each team member must answer three questions: (1) what did they do yesterday, (2) what do they plan to do today, and (3) what is preventing them from making progress.  The Scrum Master must ensure that everyone gets to speak and answer the three questions without interruption. If there is time left over after everyone speaks, the team is free to openly discuss any topic.  The Scrum Master must schedule the meeting and publish minutes afterwards.  A common anti-pattern of a standup meeting is not everyone getting to speak.  If you find that this is occurring, topics raised by speakers running over their allotted time must schedule separate meetings to further discuss the topics raised.  The Scrum Master can act as a facilitator to schedule meetings or activities to impediments to progress.

Agile’s retrospective practice is a thirty-to sixty minute meeting held at the end of every development cycle.  A typical agile development cycle is between two (2) and four (4) weeks.  The purpose of the retrospective is for the team to review the work they just completed and identify opportunities for improvement in processes, designs, or any other work practice deemed by the team to be inefficient.  The meeting agenda for the retrospective is as follows:

(1) What did the team do well?  It is critical to recognize and celebrate successes.  It builds the team’s confidence and validates the team’s value contribution to the organization.  It is important to spend an adequate amount of time celebrating successes.  Sometimes the team must look hard to find them, but going through the exercise validates the team’s learning and informs their improvement decisions.

(2) What did the team do not so well?  Before team members will share failures, they must be assured that they are in a safe environment.  It is imperative that every team member believes that they are all in it together.  Over time, the team will get better at identifying opportunities for improvement.  Don’t expect miracles overnight.  Iterative evolution is the goal.  Any team, especially at the beginning, will go through stages of development, and it is important to consider the developmental stage when asking team members to admit possible mistakes.

(3) What does the team want to improve?  The team makes a commitment to improve items in the next development cycle.  The chosen improvement items must be realistically achievable.  This is not the time for lofty or overly ambitious goals.  Incremental improvement over time is the goal.  Have the team brainstorm and create a list of potential improvements, and then have them select an item, or items, from the list that they can realistically accomplish within the time constraint of the next development cycle.  Open communication and team commitment is the goal.  The Scrum Master should maintain the master list and track progress made on the improvement opportunities.  The list should be revisited at each retrospective meeting. 

Lessons Learned from Agile Transformations: Part 8

Eighth in a Fifteen Part Series

By Chad Greenslade

I have often been asked about my lessons learned in delivering Agile transformations.  Below is the eighth in a fifteen part series examining my lessons learned while instituting Agile concepts & practices.  I hope that these lessons help you on your journey to Agile nirvana.

Lesson 8: Logistical Ground Rules & Assembling a Diverse Team

Ideally and if possible, you’ll want to find a physical meeting space where team members can be co-located all the time.  The team requires a space where they can all sit in close proximity to one another, and have room for collaboration.  This is typically a large conference room, capable of supporting eight to twelve people, depending on the size of the team.

In today’s ever increasing virtual workforce environment, and the IT industry’s inherent predisposition for work to be completed remotely, many IT organizations have embraced the work-from-home model.  There are now many effective collaboration tools on the market that eliminate the need for team members to physically sit in the same geographic location.  While it can be highly effective for an initial agile team to be physically co-located while they are executing agile fundamentals for the first time, physical co-location of team members has proven to be not a “hard and fast” requirement.  Many agile teams in industry today function as virtual teams only.  Agile’s inherent frequent inspect and adapt cadence coupled with the evolution of online collaboration tools ensures the proper amount of management oversight is applied.

Probably the most difficult concept for any non-agile organization to embrace is the idea that agile team members are dedicated to the agile project 100% of their work day.  In non-agile organizations, internal IT employees are typically spread very thin across many projects.  Additionally, team members may have both development and production support responsibilities.  This can lead to a culture in which projects are completed in a resource’s “spare time”, and project delivery work can suffer seemingly endless delays as resource labor is consumed by production support activities.  There are countless studies illustrating knowledge worker productivity losses due to context switching.  Furthermore, the reliability and predictability of agile performance metrics is compromised if resources are not dedicated full-time.  You’ll need concrete metrics if you’re going to prove the success of your upcoming pilot project and effectively navigate the cultural and political headwinds you could face in the future.  The bottom line is that if you want success both in your upcoming agile pilot project and the larger agile transformation initiative, the organization must make the human resource capital investment required for success.  For an agile project and transformation program, this means that resources on the team perform only the team’s work.  Outside influences and external demands on team member output drastically impact your team’s ability to make and deliver on commitments.

The agile team makes the magic happen.  They deliver value to the organization.  Strength is found in the diversity of your team.  Just as you engaged stakeholders and supporters, you must engage team members in the same way.  You’ll need input from many different perspectives and you’ll need to win-over certain key influencers in the organization.  It is important to realize that your selected team members may be currently delivering value using a different methodology.  Inclusion of these team members, for example, will provide valuable insight into current operations and help you successfully navigate internal cultural resistance.

Your selected team members should be a representative sample of your organization.  If you only select team members who are already 100% on-board with the agile transformation, you’ll deny yourself the opportunity to win-over the nay-sayers.  When you win-over someone who was skeptical and / or opposed to the agile transformation, they can become powerful allies who evangelize the concepts to their colleagues.

Your selected team members should also be a representative sample of the general attitudes found in any workplace setting.  Including a representative sample of these attitudes will gain you advocates and accelerate the transformation.  In an agile transformation initiative, you’ll typically encounter the following attitudes, listed in order of most difficult, to least difficult, to win-over:

  • People who hate change and avoid it at all costs
  • People that challenge any type of organizational change or initiative
  • People who are extremely knowledgeable in their field but are difficult to work with
  • People who are extremely knowledgeable in their field and open to collaboration

Last but not least, and most importantly, you must select team members who have the technical skills to deliver business value.  In a typical software development delivery process, you’ll typically find the high-level disciplines of software developers, database administrators, testers, and infrastructure personnel.  Within specific disciplines, you’ll find specializations.  For example, software developers may be skilled in some languages, but not others.  Similarly, database administrators may be familiar with some relational database management systems, but not others.  At this point, you’ll need to put in some forethought on your “pilot” project, which will be further discussed in Lesson 11.

You’ll benefit by creating a matrix of the above mentioned skills, attitudes, and backgrounds needed for your team.  As you select team members, ensure you’re including adequate representation from every area in the matrix.  Effectively mixing these variables ensures you win the influence you’ll need to realize your transformation goal.

Lessons Learned from Agile Transformations: Part 7

Seventh in a Fifteen Part Series

By Chad Greenslade

 

I have often been asked about my lessons learned in delivering Agile transformations.  Below is the seventh in a fifteen part series examining my lessons learned while instituting Agile concepts & practices.  I hope that these lessons help you on your journey to Agile nirvana.

Lesson 7: Engage Stakeholders & Supporters

Once you have executive buy-in, you’re now ready to engage your supporters.  It’s imperative to get the right people on-board early on.  The Agile Champion requires a group of people around them that are dissatisfied with how work is currently performed and are willing to make a change.  Stakeholders and supporters fall into three (3) broad categories:

Executives: Executives will approve and / or sponsor the agile project.  You’ll want support from an executive that has a vested interest in the success of new projects.  If possible, try to find an influential executive, one that is seen as a leader amongst their peers, someone they trust to bring great vision and planning to the organization, and try to get him or her to sponsor your agile project.

Individual Contributors: Your Individual Contributors are the folks that will actually be carrying out the agile project.  These are the guys who will need the agile training to execute the agile work processes.  You’ll want good representation with this group of people.  If your organization has certain disciplines (application development, database, project management, etc.) or product lines, you’ll want though leaders representing these groups.

Middle Management: Every Individual Contributor on your team reports to someone.  You’ll want to figure out who those people are and talk to them.  After all, these people write the performance reviews of your Individual Contributors.  Even the strongest Individual Contributor still must do what their manager asks; that’s how they retain their position.  It’s extremely important to gain middle management buy-in because very often, middle management is directly responsible for executing the operation of the IT department and are unlikely to pose future, unforeseen process barriers if they are engaged early.

Once you’ve identified your stakeholders and supporters, schedule meetings to discuss the agile transformation initiative.  Educate them on what you’ve learned about agile and how it can meet their objectives.  Discuss your plan and key milestones in the agile transformation initiative.  These meetings are not the “one-and-done” type.  Expect to have multiple conversations as people learn more.  You must give people time to learn, to think through agile concepts and how they will impact their day-to-day.  Everyone learns at different speeds, so be prepared to be patient.  You will be doing ongoing research in order to answer everyone’s questions.  If you’re able to answer everyone’s questions and sell them on the benefits, they will follow your lead during the changes ahead.

Lessons Learned from Agile Transformations: Part 6

Sixth in a Fifteen Part Series

By Chad Greenslade

I have often been asked about my lessons learned in delivering Agile transformations. Below is the sixth in a fifteen part series examining my lessons learned while instituting Agile concepts & practices. I hope that these lessons help you on your journey to Agile nirvana.

Lesson 6: Gain Executive Buy-In

Executives have motivations and you must work to understand their nuanced agendas and how they are measured while getting them to agree on a specific course of action. You’re going to need a coalition of aligned executives if you wish to get your agile transformation effort off the ground. Discuss the problems that you are attempting to solve, help them understand why a change is required, and educate them on how you came to explore agile as a solution.

The first step of executive alignment is gaining consensus on the problem statement. If executives have differing opinions on what the problem is, they will naturally have differing opinions on the solution. Conversely, executive consensus on a problem statement makes it much easier to gain concurrence on the problem’s solution. You should be able to articulate the problem using actual results from previously completed projects. Empirical evidence such as budget, schedule, and quality data can be examined and used to justify the problem statement. If existing project intake and / or request management processes cannot keep up with demand, this can be further used as justification for change. Many of today’s software products are subscription based with regular updates included as part of the service. A traditional waterfall approach may not support the quick release cadence demanded by your customers. Whatever your justification may be, it’s important to not only cite the problem statement, but to also provide concrete, salient examples of the problem; incidents that everyone can point to and agree that they are actual examples of the problem statement.

Once you have executive alignment on the problem statement, next you must help executives understand how agile solves the problem. Reiterate the benefits of agile from lesson #3 as you map them to the problem statement. Solving the problem statement also involves addressing the, “what’s in it for me?” question. When having this discussion with executives, frame it in terms of cost, risk, and rewards.

The agile transformation can expect hard costs for training of the pilot team, and an agile coach, if you choose to use one. You can expect to encounter soft costs for staff transitioning to a new methodology and tools as their productivity temporarily slows until the new processes are institutionalized. You must do your homework to ensure these costs are accurate, complete, understood, and accepted.

In my opinion, there is more perceived risk than actual risk in an agile transformation. Fundamentally, we’re not changing the way software is written, we’re simply changing the way we organize the work of software development. Sure, if you don’t have a plan for how to get from point A to point B, you’re going to get lost, but if a plan (like the one outlined in these lessons) is followed, risks only materialize in a few areas. Risks should be logged and managed with a mitigation plan for each that is regularly reviewed with the executive team. Doing this builds trust that risks are being managed and confidence that the effort will succeed. The most common risk is insufficient buy-in from executives or team members. This can clearly be managed before an agile transformation initiative is undertaken by additional training and education. Healthy skepticism of a new process is welcome, but active sabotage will be detrimental to the effort so it’s important that the right people are on-board and all pulling in the same direction. Risk of business impact can be mitigated by executing a pilot agile project first, and then using the results of the pilot to further refine the rollout.

Everyone likes to look good to their boss and executives are no different. You’ll want to figure out each executive’s performance drivers, but like everyone else, executives want to be valuable and promotable. Like all leaders, they want to demonstrate their leadership skills, achieve faster product delivery, lower operating costs, and in increase profits. You’ll want to again re-emphasize the speed of product delivery reward expected from an agile transformation and highlight how their sponsorship and / or support of a major organizational shift, such as this one, will demonstrate their leadership abilities and increase the bottom line.

Lessons Learned from Agile Transformations: Part 5

Fifth in a Fifteen Part Series

By Chad Greenslade

I have often been asked about my lessons learned in delivering Agile transformations. Below is the fifth in a fifteen part series examining my lessons learned while instituting Agile concepts & practices. I hope that these lessons help you on your journey to Agile nirvana.

Lesson 5: Be Prepared to Address Difficult Questions & Refute Key Concerns

Moving to a completely new way of doing things can be scary, especially when the folks that will be carrying out the work have no advanced knowledge of how they will be carrying out the work.  To the uninformed, Agile can be synonymous with little or no process, tools, documentation, commitments, or planning.  The truth, however, is quite the contrary.  These concerns and misconceptions must be met head-on if they are to be overcome.  Below I discuss a few common questions & concerns that you’ll most likely encounter on your journey.

Question #1: Will we be trained in Agile?  Anyone who is unfamiliar with agile concepts but is asked to carry them out will immediately ask when they will receive the training required to execute the concepts. There’s nothing more intimidating than being asked to complete a project with a methodology that you don’t understand, and on which you’ve received no training.  Further, an organization’s commitment to change can be measured in its willingness to invest in the education necessary for their employees to successfully carry out the change.  As a leader in an organization’s agile transformation, you’ll need to immediately understand funding constraints relative to the agile training required for the team.  You’ll need to be able to explain to each and every team member, as quickly as possible, when and how they’ll be trained.  Open communication in this area will go a long way in allaying fears that arise from an uncertain path forward.

Question #2: Is the company hiring an agile coach to help us?  It’s important to understand advantages and disadvantages of using an agile coach before you decide to use one.  A coach will undoubtedly provide value to the initial teams tasked with carrying out an agile project.  Keep in mind that an agile coach is a temporary role, typically hired from outside the company, and is generally no longer required once a few agile teams are up and running and the organization has built some internal agile expertise.  Despite the temporary nature, you’ll still want someone who can establish rapport, build relationships, and motivate both agile team members and executive-level stakeholders to follow their lead.  Experience matters.  Be aware that due to the temporary nature of the role, some internal stakeholders may resist the coach’s direction based on their conclusion that the coach lacks standing to implement lasting change.  Conversely, a coach can be unencumbered by internal organization politics allowing them to deliver an honest assessment of the actions required to launch the agile initiative.  Whatever your reasons for or against a coach, be ready to explain them to the team.

Question #3: How is this different from our past attempts at change?  Most organizations have tried to implement a quality improvement program.  In many cases, there are employees in an organization who have been involved in a failed process improvement attempt.  It’s important to understand your organization’s past successes and failures and be able to compare and contrast them to the agile transformation at hand.  Be prepared to discuss the roadmap you’re following and the champions that you have on-board.  Ask for feedback to the plan.  Keep a list of the questions received and answers delivered.  This list will continue to grow as the transformation unfolds and keeping a readily distributable log of questions and answers will be a valuable time-saving resource as more persons become involved.

Concern #1: Agile teams don’t use any process or tools. While the first tenet of the Agile Manifesto is to value individuals and interactions over processes and tools, anyone with a cursory understanding of the methodology knows that Agile, in and of itself, is a process, and there are many tools on the market today to assist with facilitating and automating the agile processes. The bottom line is that Agile does contain processes and does promote the use of tools, however, the interactions amongst team members and the customer is more important than the use of any specific tool or process.

Concern #2: Agile teams do not produce documentation as the project progresses. The reality here is that a documentation-heavy, waterfall approach to writing software has been proven time and time again to be fraught with waste and rework. In today’s software development environment, it is much more valuable to begin with a high-level design approach and then refine this design as development unfolds. Agile teams will not spend hours attempting to document and control every single variable that they will encounter with on their development journey. Lightweight design tools will be employed including whiteboards and diagrams to produce just the right amount of design at just the right time such that development can begin and the design can be iterated. Agile teams will spend more time documenting the design of what’s been built versus attempting to fit development into a pre-engineered design. The effect is that design, development, and documentation happen at the same time.

Concern #3: Agile teams do not make customer commitments. In the old paradigm, the customer would deliver their requirements to the development team, the development team would provide an estimate, the customer would approve the estimate, and then the development team would commit to a release or implementation date. The customer would largely be absent throughout the design and development process, only to be re-engaged for user acceptance testing and release. In this process, the commitment is clearly visible and is part of the development methodology. The issue, however, is that a vast number of the commitments made by the development team were missed. Agile attempts to solve for this issue in a couple of different ways. First, Agile teams ask the customer to remain engaged throughout the design, development, and testing processes to ensure that constant feedback and collaboration occurs. This collaboration has the effect of ensuring that what is built actually solves the business problem and delivers the value requested. Second, Agile discards the big commitment made up-front in the old paradigm for a series of smaller commitments made incrementally towards the larger goal. The same rules still apply in that the overall project end-date cannot be determined until all customer requirements are defined and delivered upon. However, Agile realizes that in today’s software development environment, requirements evolve over time and are more conducive to a product development lifecycle versus a project lifecycle. Requirements don’t stop coming in once a software development project completes. Agile recognizes this and accounts for it via continuously updating roadmaps and release plans, which drive the lower, sprint-level commitments that are hallmark of the methodology.

Concern #4: Agile teams do not plan. As mentioned in Concern #3 above, you can clearly start to discern the tenets of Agile planning. The key difference between traditional Waterfall planning and Agile planning is that Agile embraces what is known as “horizon planning”. Horizon planning means that you can only plan, with any degree of accuracy, as far you can see. In other words, if you look at the horizon, you can make a plan for how to get to where you can see on that horizon, but you can’t plan with any degree of certainty for how to travel beyond that horizon. With each passing day, the horizon changes, and as such, your plans for how to get to the horizon should also change. Agile embraces the planning horizon and anticipates changing requirements by placing a top-down structure around the uncertainty. At the top level, a more high-level approach to planning is employed whereas at the bottom level a more realistic and time-bound commitment is made. The five levels are as follows:

  • Level 1: Product Vision. The product vision is a high-level narrative produced by the product owner. It can be high-level or very detailed depending on what is known, by the product owner, about the proposed product. In many cases it will contain a high level description of the product, the markets it will serve, the value to the organization, and a description of how the product will serve the market. The key outcome of the product vision is a general direction for the development team to embark upon when creating the product.

 

  • Level 2: Product Roadmap. The product vision is decomposed into a roadmap consisting of large work elements, known as “Features”, and high-level estimates for each, laid over time. The key concept here is that the estimates are high-level and the schedules are aspirational. The product roadmap is not meant to establish a product development end-date, but rather it is used to chart a path for product development, and attempt to start setting high-level expectations around when a minimally viable product can be delivered. The product roadmap, like most other Agile planning artifacts, is intended to be iterative and refined over time as the product vision evolves.

 

  • Level 3: Release Plan. Once the product’s features are defined in the product roadmap, a vertical slice of the features are taken for each quarter. This vertical slice becomes the release plan. For example, if your company’s product is a new website for ordering college textbooks, features could be “shopping cart”, “search”, “payment”, etc. In each release, you’ll want to include certain aspects of each feature in the release.

 

  • Level 4: Sprints. A sprint is probably one of the most widely known Agile concepts. A sprint is simply a time-box for completion of work. The most common sprint duration is two weeks; however, sprints can be as short as one week or as long as four weeks. It is not recommended to have a sprint duration longer than four weeks. Once the release plan is defined by quarter, the Agile team determines the number of sprints than can be accomplished in each quarter. User stories supporting each feature slice are written and selected by the team for completion in each sprint. The selection of a story to be completed in a sprint is a hard and fast commitment by the team to deliver a working piece of software within a certain timeframe. There is much that goes into the drafting, estimation, and selection of user stories for a given sprint. This guidance is outside the scope of this lesson.

 

  • Level 5: Daily Stand-Up. The daily stand-up is also a widely known Agile concept and fulfills the requirement of the team’s daily planning. It is probably the simplest Agile process. Its goal is to align the team, each day, around the current sprint’s objectives. It is a fifteen-minute meeting in which each person answers three questions relative to the deliverables in the current sprint; what did you do yesterday, what will you do today, and do you have any impediments (a.k.a. “roadblocks”). Typically the team’s Kanban board will be displayed to facilitate discussion. Problem solving is reserved for subsequent meetings to be scheduled by the Scrum Master.

 

In this lesson I’ve discussed some common concerns and how each of these is refuted. While it can take some time to persuade everyone to get on board, it’s clear that planning & process is not absent in Agile, simply better tailored to today’s software development environment.