Friday, February 25, 2011

Agile Value Capture Metric - Are you spending your time Building Value?

When applying an Agile mindset, a team should consider the value of each task that they are working on.  Agile often brings value concepts into play and determining the value of tasks is one way to achieve this.  Is the task considered value-added or non-value-added.   Sometimes folks have a hard time wanting to separate tasks into value and non-value because it highlights the non-valued tasks folks are doing. However, if you really want to know, then you must do this (typically at the Product team level).  Sometimes the answer surprises people.   
Keep in mind that in Agile, value-added tasks refer to only those tasks that are directly related to building the product and that your customer values.  This would primarily include user stories and the attributes of this work related to the “done” criteria (e.g., incrementally designed, developed, built, tested, etc.) in order to complete the user story.  Remember, value is from the customer's perspective.  

On the other hand, non value-added tasks do not contribute directly to building the product.  There are tasks that are out-right of no value including administrative related tasks, writing status reports, all-hands and other status meetings.  There are tasks with no direct customer value but have benefit to quality including spending time on correcting defects, tasks related to technical debt, performing refactoring. Please understand, there are levels of internal value in doing these things and the goal is to make the value levels of the work transparent. 

A good practice in Agile (e.g., value capture metric) is to capture all related work or activity a team does in a sprint (as backlog items) to understand what are value-added tasks vs the other tasks that we do.  For each story or backlog item, assign it an attribute of either “value-added” or “non-value-added”.  You can track this on a sprint basis (or release basis) or trend it over time (from sprint to sprint).  This is a team-based metric so it is for the team's eyes only.  Below are some examples:
Chart 1: Value of work per Sprint (can be rolled up to the release level)

Chart 2: Value of work per Sprint (at the detailed level)

Chart 3: Value of work from Sprint to Sprint (Trend line)
The big advantage of this type of metric is that it helps you 1) be aware of the value and non value related work that your team is doing and then 2) it allows you to make adjustments if you want to get to a more value-added stream of work.  Also, an important caveat: this metric is a team-based metric and not meant to be shown to management.  It is for the team to see where their work is being spent.   

Whether you call it value and non-value work, the key is that much like the prioritization of the backlog, that you become aware of the priority of the various types of work that is occurring on your team. This metric also brings transparency to the types of 'work' where the team members are spending their time.  While this may force you to make some tough decisions (what is value-added and what is not), it will be worth it in the long run to get your team more productive and focused on the value-added work for your customers.  This can help you on your Agile journey! 

Tuesday, February 1, 2011

Configuration Management Crystal Ball - Is Agile in the Forecast?

As we gaze into the horizon, what do we think will be hot in the CM landscape and where is the CM field headed? Let’s take a look into the crystal ball:

My forecast will focus on:
  • Agile in the forefront of CM
  • More CM books to help you Deploy
  • Extending the CM reach into ALM and beyond
Prediction #1:  Agile in the forefront of CM
We will continue to see a strong focus on Agile in the way we approach and deploy CM.  Organizations are seeing the benefits of Agile and there continues to be a significant increase in adopting Agile.  There continues to be a heavy focus on continous integration and build where teams can take advantage of frequent merging and compiling to ensure their product is integrating, building, and testing correctly.  Also, since so many teams are going Agile, CM professionals need to ensure they are in a position to provide a CM environment that maintains the integrity that CM provides but is adapted to the more frequent actions that Agile introduces (more frequent check-outs and check-ins, builds, etc.). 

Prediction #2:  More CM books to help you DeployConfiguration Management is a field that is pervasive in software engineering.  With the shift to Agile comes the need to adapt and change and become lean.  These are challenges in the CM community.  The good news is that there are newer books on the market that help us address both the deployment of CM as well as the integration of Agile and CM.  With that in mind, here are some new CM books as well as blogs that focus on CM and Agile:
  • Configuration Management Best Practices: Practical Methods that Work in the Real World” by Bob Aiello and Leslie Sach.  The materials in this book are practical, easy to understand, and fully reflects the day-to-day realities faced by practitioners.  It addresses all six “pillars” of CM: source code management, build engineering, environment configuration, change control, release engineering, and deployment. 
  • Adapting Configuration Management for Agile Teams” by Mario E. Moreira.  This book provides both a CM Primer and an Agile Primer for those wishing to learn more about each topic followed by a chapter on how they can work well together. It then focuses on infrastructure for Agile and how using the cloud can reduce technical debt.  It follows this with a robust chapter on adapting the various CM practices for Agile.  It ends with chapters on identifying good tools for Agile (including CM tools) and adapting to standards and frameworks in an Agile environment.
Prediction #3:  Extending the CM reach into ALM and beyond
As we continue into the future, we see CM extending into the Application Lifecycle Management (ALM) space and then see ALM extended into a more unified approach.  Integration across engineering areas helps teams streamline their processes and reduces the effort of implementation and maintenance of manual integrations.  Two such examples of extending the reach include:
  • Rational Team Concert (RTC) provides a lean collaborative lifecycle management solution with agile and formal planning, project reporting, process workflow, work item management, source code management and build management, in a single integrated product supporting all popular platforms.
  • Look for innovative tool companies like AccuRev and AnthillPro establish Agile ALM solutions focusing on source code management and continuous integration and build as its core for organizations looking to improve and scale their Agile processes while still maintaining control.
Summary
As we look into 2011, what is the CM forecast and what is your forecast in CM?  Agility will continue to show up in various forms in both the Configuration Management (CM) and Application Lifecycle Management (ALM) contexts.  Also, books such as “Adapting Configuration Management for Agile Teams” will help CM and Agile teams understand and adapt to Agile methods and books like “Configuration Management Best Practices: Practical Methods that Work in the Real World” to help you deploy CM in a lean manner.  What is your organization’s CM forecast?  Whether your forecast is sunny or cloudy (or both), consider flexibility, adaptability, and agility in driving your business!  Have a productive 2011!!!

Feel free to visit the full article at: http://www.cmcrossroads.com/implementation-excellence/13898-cm-forecast-for-2011.  Enjoy!

Friday, January 14, 2011

Sunny with a Chance of Agility

What is your Agile weather report?  Some have sunny Agile efforts ahead. Some are looking to get introduced to agility and others are considering strategies for Agile deployments.  As we gaze in the horizon, what do we think will be hot in the Agile landscape and improve our working lives? What might be some of the latest shifts in the Agile industry in the upcoming year?

The theme of my Agile weather report for 2011 focuses on:
  • Job security with Agile credentials
  • More structure with Agile deployments
  • Agile Tooling goes ALM
Prediction #1:  Job security with Agile credentials
I predict that we will see a significant growth in software engineering jobs that include an Agile element to them.  In general, we are seeing a growth in the use of Agile methodologies and practices in the software industry.   Many of the new positions are now mentioning Agile as one of the job requirements.  The implication is that they are looking for people who have worked within an Agile context so that when they join the new company, they bring Agile experience. 
Prediction #2:  More structure with Agile deployments
As product teams become more mature so do their Agile practices.  While Agile has been utilized in projects for several years now, it is still new to many.  With that in mind, I expect to see more formality in deploying Agile.  This is especially true since Agile is no longer a budding trend but maturing where patterns are emerging that lead to more successful Agile deployments.  While some would like to say, “Let’s just get started doing Agile”, it may be better to consider a methodical or strategic approach to the deployment of Agile.  With that in mind, here are some Agile adoption approaches that may be considered:
Prediction #3: Agile Tooling goes ALM
As we look into 2011 and the future, we will see more focus on providing comprehensive Agile tooling capabilities within an Application Lifecycle Management (ALM) framework.  The value of having an ALM framework is that it allows a product team to manage customer needs from business case development to delivery.  When tools support this framework, it can help streamline and reduce the effort in supporting the process.  Some examples of tooling that provides an Agile focus in an ALM context include:
Summary
As we look into 2011, conditions could be quite sunny for those companies looking for the Agile edge.  What this may mean to those with Agile credentials is that you will gain job security.  Since Agile is becoming more mature, continues to prove itself, and can scale to larger product teams and their projects, there will be a need to have more consistent approaches to deploying Agile.   There are patterns for success deployments which new teams can take advantage of.  And as Agile tooling makes its way into more of an Application Lifecycle Management (ALM) framework, it can provide a more end-to-end view of how business and user needs make their way to delivery.  Whether your forecast is sunny or cloudy (or a little bit of both), consider agility in driving your business!  Have a productive 2011!

Tuesday, January 4, 2011

Is Agile Mainstream yet?

There continues to be a lot of debate on whether Agile is mainstream. According to a Forrester report published in early 2010, while widespread “Agile” use of the iterative software development processes is found, " teams are not adopting scrum, extreme programming, or another specific Agile approach, but are embracing agile as an ethos or philosophy and cherry-picking the best bits from many different process models to develop a formula unique to their own situation."  

However, the largest category in the survey – and the one that is the most telling is that 30.6% of the respondents said they do not use a formal process methodology.  Add to this my own experience implementing Agile, reading the latest Agile literature (e.g., articles, research, books, etc.), and discussing Agile (and Agile implementations) with people across numerous companies in North America, Europe, and Asia, and what this indicates to me is that:
  • There is definitely broad awareness of Agile
  • There are many companies who are on the Agile bandwagon because it is seems like the right thing to do
  • There are many Agile “book-read” folks who have not really experienced an Agile implementation
  • There are some teams who are “cherry-picking” parts of Agile process for their own Agile implementation
  • There are fewer teams who are applying end-to-end Agile methods and practices across their lifecycle
  • The companies that have made the cultural shift to the Agile mindset are still a minority
The question becomes, does this really represent a pervasive enough understanding of Agile and a thorough enough adoption of Agile across the industry for it to be mainstream? 

IMHO, the answer is not yet.  The reasons are that I am not sure if companies have fully "realized" what Agile is and how to implement it.  An indicator is whether enough people or teams who have implemented Agile can recognize common steps to a successful Agile implementation.  Another indicator is whether those that have implemented Agile have actually made the cultural shift (aka, Agile mindset or self-empowered teams, servant-leader mentality, etc. ) in order to gain the benefits of Agile and to make it mainstream?

So what do you think? 

Monday, May 31, 2010

Holistic view of Continuous Integration & Build (elements of CIB) – Part 2 of 9

In the last episode (e.g., 1 of 9) of this series, I introduced the topic of Continuous Integration and Build (CIB). In this episode, I will introduce the elements of CIB. The key elements involve four areas: a mindset change to thinking more continuously; the entrance criteria that makes the CIB process perform; the components to initiate an effective CIB process; and finally key infrastructure to enable the CIB process. Let us walk through these areas at a high-level.

An Agile mindset merges with the CM mindset. 
  • A very interesting cultural shift occurs when the concept of “continuous” is ingrained in the culture and method. Agile embraces a mindset of continuous change where the build process moves from an event-based integration process to a continuous integration process. In other words, no one needs to hold onto large amounts of changes for a major integration effort or declare that builds will occur nightly, weekly, even hourly.

The entrance criteria for an effective and lean continuous integration and build process include:
  • The ability to specify the right ‘bite-size’ level of story or requirements tasks that represent changes that allow for granular and frequent code changes. This implies that the Agile team can understand the stories well enough to divide them up in small and consumable tasks which allow the programmer to make changes frequently and incrementally.
The key components to initiate an effective continuous integration and build process include:
  • Right-size the branching strategy that reduces risk yet ensures code stability where people can work in a stable workspace without being impact by changes of others on a regular basis.
  • Shift in roles and responsibilities of who performs merging and building.
  • Minimize the merge process to reduce work for development
  • Emphasize building in general and understanding the build levels so it is clear who the target of the build is for. Builds can occur within a private workspace and within shared branches like the mainline or project branches.
  • Test with teeth by establishing and conducting unit testing at the individual programmer level and then smoke test after the integration build.
Underneath all of this, there is a need for infrastructure to support a continuous integration and build process. The two primary elements of this include:
  • CM version control system that has the capability of establishing the desired branching strategy, has an automated and intelligent merging capability, and can integrate with continuous integration and build tools.
  • Continuous integration and build tool that supports an automated build process. There are many continuous integration and build tools on the marketing ranging from vendor products to open source and freeware tools.
Let’s delve deeper into each area. Consider reading the next episode which focuses on the Agile and CM Mindsets (Part 3 of 9) and what this means in an Continuous Integration and Build process.

Note: If you started with this entry (Part 2), consider reading part 1, Holistic view of Continuous Integration & Build – Part 1 of 9

Tuesday, March 16, 2010

Holistic view of Continuous Integration & Build – Part 1 of 9

As you may know, the term CIB (or continuous integration and build) refers to the process of integrating code frequently (or on-demand) to reduce large integrations, complexity, and pain in the future and to make functional software readily available for testing and the customer. It provides development with immediate feedback on the success or failure of changes via an integration, full build, and smoke test of the product and reduces large integration efforts.
Continuous integration and build moves the build process from an event-based integration process to a continuous integration process. This then moves us away from the infrequent and often painful integrations (a.k.a., merges) and move to a continuous integration and build process that becomes part of the team’s daily activities. This also marks a significant increase in check-outs, merges, check-ins, and builds.

The benefits of CIB include:
  • Integration ensures the integrity of your code baseline.
  • Building frequently lets you and the customer know where things stand as a mark of value delivered.
  • Continuous integration raises merging issues to the forefront more quickly for more expedient resolution.
  • Frequent builds have fewer changed files which reduces the amount of time on debugging build issues and painful integrations.
  • Working functionality provides continuous feedback.
  • Can be applied to any project methodology (Agile, Waterfall, Hybrid, etc.)
The challenges of CIB include:
  • It is often easier said than done
  • It requires a focus on areas broader than most folks realize (beyond just merge and build)
  • May cause more churn than progress if not managed well
  • Requires a mindset change, thinking in smaller units, bite-size tasks and continuous change
  • Moves from event-driven model with ceremony to a continuous change model
  • Adds stress and load to CM and build tools
So what are some key elements of focus for CIB?  Learn about these elements in part 2 of the CIB series on Elements of Continuous Integration and Build.

Thursday, February 4, 2010

The Knight bringing Agile to the Day

Once upon a time, a Knight challenged the King saying that we should provide people with what they need and not what we want to provide them. Instead of asking people for all of their needs now and not deliver until a year later, we should deliver their more important needs in shorter time periods to ensure we provide them with their needs sooner and then allow them to adapt to their needs as life changes around them.

The Knight learned that the marketplace and the customers therein drove the real needs. This gets to the heart of providing business value, value that the customer perceives, value that can change in this ever-changing world.

As the Agile Manifesto (the Knight's creed) says, Agile values working software over comprehensive documentation. Working software is where the customer sees the value. The “right” amount of documentation, neither too comprehensive nor too little, can lead us to working software more quickly.

Individuals and interactions have more value than processes and tools. This does not mean that processes and tools are not important, it is just that defined processes and tools should not determine how the individuals should interact to get their work done.

Customer collaboration is valued over contract negotiations since Agile values the continuous interaction with customers to ensure we are constantly reducing the risk and increasing the certainty of delivering what the customer really needs.

And finally, responding to change over following a plan allows us to adapt to change with collaborative control that ensures the change is both welcome, understood, and continuously validated.

Agile embraces change and accepts the fact that life is uncertain. By providing methods and techniques to minimize risk and increase certainty, this ensures we close the gap between what the customer actually wants and what we end up delivering.

With that, the Knight brought Agile into the day and people into the light.