Skip to content

Feed aggregator

Skalierung: Modelle oder Führung?

Scrum 4 You - Thu, 07/31/2014 - 08:52

Der Scrum-Day 2014 war so ernüchternd. Ich kann es euch gar nicht sagen. Ich oute mich jetzt sicher als ewig Gestriger mit meinen mittlerweile 45 Jahren. Vielleicht waren die 68er genauso, die einmal Ideale hatten und dann in der Grünen Bewegung konsumiert und zum Mainstream wurden. Aber was da gerade passiert, ist erbärmlich.

Wir reden auf einer Konferenz, die den Anspruch hat, die bedeutendste Scrum-Konferenz in Deutschland zu sein, über Modelle anstatt über die Realitiät. Es gibt Beiträge über skalierende Frameworks, von Menschen, die das vorstellen, weil sie es gelesen haben. Und selbst die wundervolle Lisa erklärt uns ein Coaching-Modell, aber nicht, wie man in den USA agile Transformationen durchgeführt hat. Die berühmten Leuchttürme fehlen.

Ich liebe Modelle – als Philosoph, Soziologe und gescheiterter Physiker bin ich absolut fasziniert von Erklärungsmustern. Aber sie helfen nicht, die echten Themen bei agilen Transformationen in den Griff zu bekommen. Ob es Entwicklungsteams oder Management-Teams sind: Sie werden sich nicht bewegen, weil man ein Bild an die Wand wirft, in dem Boxen und Pfeile erklären, wie man miteinander arbeiten soll. Sie suggerieren denen, die sie anschauen, dass der Erzählende Ahnung davon hat. Doch wovon? Davon, wie man als Redner und Autor eine Menge fesselt. Doch sind das die gleichen Skills, die man braucht, um ein Unternehmen agil zu machen?

Ich wurde von einem großen Unternehmen angerufen: “Wir wollen 6000 Menschen in 2,5 Jahren hin zu agil transformieren.” Leute: Das hat noch niemand gemacht! Da helfen keine Modelle. Da hilft auch nicht das Wissen aus allen Change-Management-Büchern der Welt, sondern nur das, was die, die das agile Manifesto geschrieben haben, taten: Die Ärmel hochkrempeln und sich der Realität aussetzen.

Unternehmen mit der Mitarbeiterzahl ganzer Dörfer oder kleiner Städte, verteilt über die ganze Welt, können nicht geplant und ad hoc dazu bewegt werden, ihr gesamtes historisch gewachsenes Wissen über Zusammenarbeit zu verändern. Diese Aufgabe als Projekt zu sehen, vielleicht auch noch mit einem Enddatum versehen, ist schlicht vermessen. Es widerspricht außerdem der Idee von agilem Arbeiten und agilen Organisationen.

Der Weg zur agilen Organisation funktioniert anders – ohne Modelle und ohne das fertige Konzept. Durch eine starke Führung, die Orientierung gibt, die neue, funktionierende (agile) Arbeitsweisen vorlebt, die deutlich macht, dass es um das Erfüllen von Anforderungen der User geht und die es schafft, neue Formen der Zusammenarbeit zu ritualisieren. Menschen lernen durch Abschauen dessen, was funktioniert. “People are good in looking around”, schrieb Alistar Cockburn vor einem Jahrzehnt dazu. Er hat recht – also müssen wir Modellwerkstätten bauen, in denen das neue Arbeiten funktioniert, oder dorthin gehen, wo es schon funktioniert und von dort Ideen mitbringen.

Es wird sich wie immer das durchsetzen, was funktioniert – das ganz simple Prinzip Darwins. Das haben Produkte wie SMS gezeigt, What´s App, das Internet, das iPhone und die Demokratie. Implementiert einfach ein paar Praktiken, werdet selbst zum Modell für agiles Arbeiten, seid damit erfolgreicher als zuvor und redet darüber. Langes Erklären führt meist in die falsche Richtung.

Related posts:

  1. Modellgetriebene Entwicklung — Irrungen und Wirrungen
  2. Der agile Festpreis
  3. Raus aus der Wasser-Falle

Categories: Blogs

Using Legos to Capture Raw Data For Cycle Time & Process Cycle Efficiency

The Agile Management Blog - VersionOne - Wed, 07/30/2014 - 18:00

Guest post from David Nicolette, agile coach at Eliassen Group

Background

I’m one of six technical agile coaches engaged by a large bank to support an initiative to improve software delivery performance. The IT department is an established agile software development shop that uses the SAFe™ framework with Scrum at the team level. They are seeking to achieve continuous delivery, improve software quality, establish a developer-friendly working environment, and foster a culture of continual improvement.

We want to be able to show the effects of changes the teams make in their working practices. Improving delivery performance involves changing the way people work; therefore, we need measurements that aren’t dependent on doing the work in any particular way. Three metrics from the Lean school of thought are helpful: Throughput, Cycle Time, and Process Cycle Efficiency (PCE).

The Metrics

It isn’t the purpose of this post to explain these metrics, but here’s a quick summary. Cycle Time is the time it takes to complete one work item. Throughput is the number of “value units” delivered by the process in a given unit of time (say, per release or per month). Process Cycle Efficiency (PCE) is the proportion of total lead time in which value is added to the product. If we take a look at these measures at the start of an improvement initiative and again at the end, we can see whether the organization has improved its delivery performance.

To adapt these metrics to software development, we need to adopt somewhat softer definitions of “work item” and “value unit” than what is usual in the manufacturing domain. For our purposes at this client, a “work item” is a User Story, the type of work package used with the Scrum framework. A “value unit” is a software feature. While these things can be somewhat loosely defined and can vary in size, these working definitions are sufficient for our needs.

It’s easy enough to get Throughput using the tools they are already using. We can get a crude sense of Cycle Time from their agile project management tool by subtracting the start date from the end date of each work item, but we want a little more granularity than that so we can show the effects of external dependencies, back flows, meetings, and context switching on Cycle Time. It can be difficult to get meaningful PCE out of some project management tools, so we need to collect the raw data for that as well.

To show the impact of changes in team structure, delivery process, and technical practices on delivery performance, we want to compare these measures at the beginning and end of the coaching engagement. We’d like to see Throughput and PCE increase, and we’d like to see mean Cycle Time and Cycle Time variation decrease.

Generally speaking, increased Throughput means the teams are delivering more software in each release than they were previously. Increased PCE means the teams are spending proportionally more of their time adding value than they were previously. Reduced Cycle Time means the teams are able to complete work items in less time than previously. Reduced variation in Cycle Time means the teams are learning to decompose work into similarly sized User Stories, and/or they have eliminated some of the blockers that had been present in their process. Reducing variation in Cycle Time improves planning predictability, which usually leads to greater stakeholder confidence in the teams and higher trust across the organization. In turn, those factors feed back into delivery performance in a positive way.

You may have noticed that there is no mention of comparing estimates with actuals. This is an entirely empirical approach. Observed actual performance is of interest. Optimistic stretch goals, coerced commitments, and guesses are less informative than empirical observations. These teams follow the usual Scrum ceremonies and practices, including relative sizing of User Stories in terms of Story Points and estimation of tasks in terms of hours. We do not find that information useful for understanding the effectiveness of software delivery.

Collecting the Raw Data

The typical way to collect baseline numbers for these metrics is to conduct a value stream mapping workshop that involves most or all team members for one day or longer. The client is worried about losing too much time in the workshops when the teams could be doing value-add work. Therefore, we needed a less intrusive way to collect baseline measurements. There is also the question of how accurate the PCE data will be when it is obtained through a workshop, rather than by direct observation of team activity.

I came up with the idea of using Lego bricks to collect the raw data for Cycle Time and PCE. There is some impact on team member time, but hopefully it is not too intrusive. My observation is that people enjoy manipulating Lego bricks, and they don’t mind sticking the bricks on a plate to represent their work.

For each team, we set up a Lego plate large enough to hold about 10-12 1″×2″ bricks. We allocate one row of bricks for each User Story. For each hour in the day, team members place a green brick when they performed value-add work on the User Story, and a red brick when the User Story was in a wait-state during that hour. A 1″×1″ white brick is used to show User Story completion. We don’t worry about counting minutes. At the end of each day, we collect the data from the Lego plates in a spreadsheet and remove all the bricks for a fresh start the next day.

Here’s how the Legos looked at the end of the first day for the first team that set this up:

 legos1

Each team tweaks the setup in their own way. In this case, the row of black, blue, and yellow bricks across the top of the plate represents the hours of the day. Black and blue colors alternate for visual clarity. The yellow brick represents the lunch hour. User Stories are identified by their key in the team’s project management tool.

From the state of the Lego bricks, you can see that the team had six User Stories in “in progress” state. For the first one, value was added during one hour out of eight. There are no 1×1 white bricks, which means none of these User Stories has been completed.

At the end of each day, I collect the data from the Lego plates and accumulate the values in a spreadsheet. Here is how the spreadsheet looked when I had entered the data from the board above:

table2

After capturing the data in the spreadsheet, the Lego plate is cleared and we start the next day with a clean slate. There is no need to extend the Lego bricks indefinitely, as we are interested in accumulating Cycle Time observations and not in building up a physical history of User Stories in the form of Lego bricks.

Here is how the board and spreadsheet for the same team looked after the second day of collecting data:

lego image3

 

What we do with the information

The plan is to collect this information for a couple of sprints at the start of the improvement program, and repeat the collection again for a couple of sprints toward the end of the program. We don’t want to create an ongoing administrative task for team members. We are interested in:

  • Mean Cycle Time – average time to complete a User Story
  • Common cause variation – variation within one standard deviation indicates common cause variation; that is, variation that is caused by systemic factors (organizational or team structure, process steps, technical practices, etc.). This can point to potential structural or procedural improvements.
  • Special cause variation – variation beyond one standard deviation indicates special cause variation; that is, variation that results from unusual events or one-time problems. This can help us define policies to deal with unexpected issues in a way that doesn’t significantly impede continuous flow.
  • Clustering – Cycle Time observations may settle out into multiple clumps. This indicates User Stories that have certain characteristics have a different effects on Cycle Time. For example, User Stories that have dependencies on external teams or outside vendors may tend to have longer Cycle Times than User Stories the team can fully control. Understanding the impact helps us perform short-term planning effectively.
  • PCE – low PCE may point to “time sinks” in the process that we can address. External dependencies are an obvious cause of wait states, during which no value can be added to the User Story in progress. Wait states may also be caused by team structure, when teams of specialists are organized in silos, and multiple teams must be engaged to complete a single User Story. Context switching due to high WIP is another obvious cause. It’s useful to be able to make these effects visible, as people are more willing to address underlying issues when they see evidence than when they just hear words.

We are more interested in aggregate numbers than in individual User Stories. Mean Cycle Time (possibly broken out by categories of stories) helps with short-term forecasting. Beyond that, we can look for opportunities to shorten mean Cycle Time and to reduce variation in Cycle Time to improve continuous flow.

Here is a generic example of a chart we might generate from observations of Cycle Time. It is not based on the specific teams mentioned here — we haven’t been collecting data long enough to develop this sort of visualization.

chart4

Initial observations

Two of the four teams involved in this have embraced the idea openly, and the other two are hesitant because they have not yet seen how it might help them. The two teams that have embraced the idea started to change their habitual behaviors almost immediately, as soon as the wait states in User Stories became visible.

1. Immediate reaction to impediments

It’s commonplace that when something is made visible, people act on it. I was surprised to see the natural response when a team member reaches for a red brick. Others on the team immediately ask what the impediment is and how they can help. These were already practicing “agile” teams, so they are already stable teams working in team spaces, and collaboration was not a new concept at the start of the engagement. However, the immediacy of their reaction to seeing a red brick is a radical improvement in the speed with which teams respond to emerging issues.

You might point out that basic “agile” practice includes posting an indicator on the User Story card on the team’s wall as soon as an impediment comes up. These teams are not in the habit of doing that, so there is typically a delay before the team begins to act on impediments. A couple of these teams did not have a card wall at all when we started working with them. They believed their electronic project management tool served the same purpose as an information radiator, which is not always the case. The organization has been using “agile” methods for several years, but not every team does every little thing to perfection.

2. Limiting WIP

A second natural reaction to the boards is that when a team notices a large swath of red on their board, they start exploring the reasons why. Without any formal training in Lean concepts, they quickly conclude that they have too many User Stories in play. They limit their WIP, even without knowing that term. Before the impact of high WIP was visible, team members often said they did not understand the “big deal” about pulling just one or two User Stories at a time.

Management looks at the burndown charts and cumulative flow diagrams (CFDs) for each team. Nearly all teams in the organization have the classic “hockey stick” burndown chart, and a CFD that looks like a single block of color representing “in progress.” The teams that have started to notice the impact of high WIP thanks to their Lego boards are already starting to show burndowns that look like actual burndowns. They are pulling User Stories through to completion rather than starting everything on the first day of the sprint. Within days, it became a sort of game to see if the team could eliminate all the red bricks from their board.

3. Tracking unplanned work

A third reaction has to do with “user stories” that are not really User Stories. Many of the teams in this organization define “user stories” as placeholders for unplanned work. Scrum is generally good for managing planned work — the Product Backlog lists features to be developed in priority order by business value. Each Backlog Item is decomposed into one or more User Stories, which can then be pulled into Sprints for development.

Teams that service requests from other teams do not know in advance when the other teams will request services. The requests are not in the Product Backlog. As an expedient to fit this into the Scrum framework, they define pseudo-stories where they throw in “tasks” when other teams submit requests for services. They try to account for the impact by setting aside a portion of their available time each sprint to handle whatever unplanned work may come in during the sprint. This tends to throw off their sprint forecast, but they can’t think of another way to account for the work that is consistent with their understanding of the Scrum “rules.”

A consequence of the practice is that these “user stories” appear to have Cycle Times equal to the Sprint length and to spend almost all the time in a wait-state. This is because they are ongoing, open-ended “user stories” that can never be completed, and most of the time there are no unplanned requests in progress. If they continue to do this, their Cycle Time metrics will be skewed. Making Cycle Time visible causes these teams to reconsider the way they define and track unplanned work.

Without prompting, some people have suggested moving to a Kanban system that supports explicit policies for different classes of service, rather than trying to define every type of work as a User Story. Others are considering allowing urgent “stories” to be added mid-sprint and having the Product Owner remove scope from the sprint backlog, as per standard Scrum practice. The important thing is that they are thinking about better ways to manage unplanned work.

4. Manager response

The managers over the Release Train were very interested in how Cycle Time and PCE were being used. I explained what the metrics mean and how we intend to use them to show progress with the process improvement goals. I took them on a tour of the four team areas and they saw how the Lego boards had been set up. They asked team members whether this was helping them, and got mixed, honest answers. The managers noticed that some teams routinely work through the lunch hour and some routinely work 10-hour days. They expressed to the teams that they don’t want them to burn out and they want to figure out ways to get the work done in a sustainable way during normal working hours. This had a positive effect on team morale.

The managers were just as interested in playing with the Lego bricks as the team members. They suggested various changes, using additional colors to represent details about wait states. I suggested that we keep it simple. We don’t want to turn this into yet another administrative overhead task for the teams. I think I convinced them that we only want to capture the wait times, and leave root cause analysis for later.

5. Micromanaging time?

A couple of people voiced the concern that we were asking individuals to keep track of how they spend their time. The organizational culture is such that management expects people to get their work done, and does not track when, how, or where they work. I had to clarify that this is about tracking time from the point of view of a User Story, and not from the point of view of any individual person. We want to expose time sinks so that we can help management change the organizational structure and formal procedures in ways that make life better for development teams. Once that was clear, people were not opposed to it.

Any comments?

Please let us know what you think below!

Categories: Companies

Top 10 Causes of Chaos in Agile Software Development

The Agile Management Blog - VersionOne - Wed, 07/30/2014 - 17:59

“Everything is so chaotic.”
“Seems like we are constantly in a state of chaos.”
“Is agile always crazy and chaotic?”

Chaos is a word I hear a lot lately while working with software development teams that are either initially adopting agile software development or possibly undergoing a Lean/agile reshaping to improve their existing agile development approaches. I am often asked if the chaos will subside, and the good news is it will — to a certain extent. But to best understand when things will slow down (or even if they’ll slow down), it’s good to explore some of the causes that make things chaotic with agile software development.

And in my world, there’s no better way to assess than to make a list of Top 10 causes of chaos in agile software development:

1. New Teams Forming.

New TeamThis one is obvious — as people come together to work with one another there’s a feeling-out period. Usually during this period, teams are learning how to collaborate and work through conflicts. In addition to the people learning to work with one another, there are plenty of established organizational structure and cultural barriers that slow the progress of agile teams forming.

2. Process Learning.

Complex ProcessAnother obvious one. Although most agile process frameworks (e.g. Scrum or Extreme Programming) are fairly easy and well documented, it takes time and practice to learn the mechanics. Couple this with #1 and, well, there can be some real challenges to getting things done.

3. HEAVY Learning Mode.

Young Student overwhelmed with studyingThis may seem redundant, but it really cannot go under emphasized. In addition to learning about each other and learning the process frameworks, as engineers — we are constantly learning about technologies, learning about our products, learning about our customers, well — just getting smarter. Needless to say, this all adds up.

4. Greenhorns.

Crab Fishing GreenhornIf you ever have watched the Deadliest Catch on The Discovery Channel, you get to see the struggles and pains of the first-time deckhands – called Greenhorns. They are often in way over their heads, running into challenges around every corner, and are just flat out exhausted. In addition to physically and mentally killing themselves, they are trying to prove themselves. Well, this is true with just about every new team member. Not only are they dealing with Items #1-3 above, the intensity of learning is magnified; until they have some wins and time under their belts, chaos exists.

5. When Quality is NOT Built-in.

Rolex Quality Built InIt is my opinion that in software development, over the years we’ve invented this approach to quality that is “risky and invites failure.” [1] Yes, I stole that — in most software development shops, quality is something that is done by different people to ensure “separation of duties” and because of the mentality that ‘developers make bad testers.’ Couple that with the attitude that QA engineers can’t, or don’t necessarily need to know how to code, we have what we do today — a ton of end-of-stream testing, out-of-band automation efforts and, honestly, even the staunches of agile shops struggling with testing and ensuring quality. Without quality weaved into the Design>Build>Test cycle, we tend to see a lot more of these noisy things called Defects. Defects take a ton more time and energy than building it right in the first place.

6. Quality Automation Doesn’t Exist.

Sonar DashboardWithout automation you’re going to find it almost impossible, or at least extremely constraining, to effectively and efficiently deliver software quality in a predictable manner. Similar to the “build quality in” challenges, teams often struggle because their estimation processes call out quality separately (which makes it a target for evil doers), and it often does not account for the work-around automation. Many organizations adopting agile software development don’t have an automation strategy for their legacy code. Therefore, they tend to have bouts of analysis paralysis around the problem space or they simply say, “our product or software is too hard to automate the testing” — so they won’t try. The other challenge around automation is that some see it solely as an end-of-line UI automation thing where a couple engineers work on it. Test automation is a holistic challenge and needs to be treated as such.

7. Lack of Cadence.

Perpetual Motion - Agile CadenceWhen teams are starting out, they don’t realize that the first thing to establish is their cadence — get their schedule in place and timebox everything. The cadence surrounds the process touch points that require formal communication and help us to build habits, thus making the process aspects of agile software development more muscle memory. If you feel like you are always in meetings or your iteration meetings are not occurring at the same Bat-Time and same Bat-Place, it might be time to reset; your cadence is lost.

8. Unpredictable Release Cycles.

Roll DiceThis one is an enigma because there are teams I run into that say, “Our product is too large and complex to release in short cycles.” And then there are those that say, “We just release when we have to, it could be twice today or two weeks from now.” Looking at these two statements, they appear to be opposite in cause; however, it all comes down to #7 above and understanding what is the ideal batch size that reduces thrashing allows for tighter alignment among teams; reduces “Integration Hell;” and prevents the amoeba-style releases that never seem to end.

9. Deadline-Rich Environment.

DeadlineProjects are the problem — or at least the traditional sense and meaning of a project drives the idea of fixed scope and fixed schedule. Let’s look at the PMI’s definition of ‘a project’:

A project is a temporary group activity designed to produce a unique product, service or result.

A project is temporary in that it has a defined beginning and end in time and, therefore, defined scope and resources.

At the end of the day, we drive our business off of the idea that of pushing for a date — we get emails from colleagues asking “when?”, we get emails from tools telling us “now!”, and we have other teams telling us “yesterday!” Ultimately, projects drive expectations that are generally dates; we can’t seem to get away from them until everyone realizes that we should design and define the scope to fit the schedule, not the schedule to fix the scope. This is because the schedule usually flexes in these situations, not the scope.

10. Estimation (and For That Matter, Capacity) is Not Understood.

Voodoo-dollWe often see teams measuring productivity units of time versus being measured as units of value. This is the case even in mature agile shops. Everyone is so focused on trying to come up with a voodoo formula to determine capacity of a team or organization and another voodoo formula to normalize story points across teams in order to build a long-term plan based on the cooked-up numbers. The funny thing is that in many cases, the approach used for estimation doesn’t really change once an organization starts using agile. Everyone continues to plan predictively what we really don’t know. Agile software development is an adaptive approach to estimation and capacity. We work with what we know, we measure value, we assess complexity, and we often simply size efforts based on relative uncertainty. If people would just keep it simple, try to get all stories to the same level or near the same level of certainty, and do the same with the to-do’s (a.k.a. tasks and tests) — then in a couple iterations, teams could just count the stories and count the to-do’s accomplished within a timebox and use that for planning. Oh, if only it could be that simple … it is.

Okay, this was just my brainstorming or brain dump (literally) of 10 things that cause chaos in software development, in particular in the situations where an agile adoption or reshaping is underway. Just keep in mind, change is constant in business — now, more so than ever. Software development is complex; so are people. The great thing about tomorrow is that we don’t know what is going to happen. So, just practice and keep in mind: if today is bad — then there’s tomorrow.

Categories: Companies

Establishing a Sustainable Pace

The Agile Management Blog - VersionOne - Wed, 07/30/2014 - 17:57

Guest post by Ben Linders, Netherlands-based senior consultant, InfoQ editor and blogger

Agile promotes that teams work in a sustainable pace to be able to keep delivering value to their customers. When agile teams are working under too much pressure, technical debt increases and the velocity and productivity of teams goes down. Agile retrospectives can help you to discover the causes of pressure and take actions to establish a sustainable and healthy pace with your teams.

A sustainable pace is a workload which a team can handle for a longer period, without compromising the quality of the product. It is based on a velocity that is doable for the team and doesn’t lead to stress or illness of the team members. Organizations can deploy agile processes that give teams flexibility to self-organize their work to manage their workload and flow.

When the workload of the team becomes too high, chances are high that team members will make more mistakes with increased technical debt as an result. Team pressure drives code quality down and increases maintenance. Due to the technical debt, the velocity of the team will decrease so they will actually be delivering less value to their customers while putting in more hours. Clearly a waste of valuable time, money, and energy of your people.

Finding the causes of team pressure

Some pressure is acceptable, but if you have the feeling that you are always working under pressure,the pressure is hampering your teams to deliver value to your customers, and the low quality of your products is costing you money, then that is something that should be addressed.

You can do that for instance with valuable agile retrospectives, by using exercises where team members state how they feel things are going. Facilitators can ask questions to discover what can be done to reduce the pressure. A retrospective can also be used to find the root causes of team members feeling constant pressure. You can do a five times why exercise to investigate the deeper causes of pressure.

How do you find out if teams are under pressure and what causes it? Here are some things coaches can focus upon in retrospectives, daily stand-ups, or in mentoring and coaching sessions:

  • Do teams get enough freedom to do the work in the way they think it should be done?
  • Are team members allowed to fail or make mistakes? Is it ok to learn from them?
  • Is it just 1-2 people who are under pressure, or is it everybody on the team?
  • How is the morale of your teams?  What’s the atmosphere at work, and how do people react to each other?
  • Do team members feel happy when they come to work, and when they go home?

Once you’ve identified that teams are under pressure and have learned what causes it, then they can take actions to address it in a next iteration.

Establishing sustainable pace

If a large workload is causing too much pressure and hampering teams, then they should take action.

Possible actions that they can take are:

  • Commit to a lower number of user stories in the planning game. Build in slack.
  • Investigate which improvements they can make to increase team velocity.
  • Establish stable teams that are capable of delivering quality and maintaining high productivity.
  • Prevent multitasking/task switching as much as possible.
  • Monitor work in progress; use Lean and Kanban to steer on flow instead of working more hours.
  • Plan time for team members to relax and blow off steam after having had a busy period.
  • Focus upon happiness in your teams; make sure team members have fun while doing their work.

It’s important to follow up on the actions to verify that the pressure decreases so that teams can work in a sustainable pace. An effective way to do this is by doing short-cycled improvements: Observe how the team is doing in their daily work. Use opportunities to change the way of working to improve in small steps. And turn that into a new way of working for the team.

Collaborate with your stakeholders

It may be good for teams to involve their stakeholders to find workable solutions to reduce the pressure and find a sustainable pace that delivers value to them. Teams may have the opinion that stakeholders are causing pressure, which indeed can be the case. But often stakeholders are not aware that they are putting teams under too much pressure. Teams should discuss it with them, make them aware, and together look for solutions to decrease the pressure.

Building trust is important: The stakeholders should trust the teams by assuming that they will do the best they can, and the teams should secure this trust by continuously delivering valuable products. In the longer run, both the teams and the stakeholders will benefit from a sustainable pace by getting more value.

Sustainable improvement

“If you want to deliver more, you should not work harder, but smarter” is a basic thing that didn’t change when agile was coined. Self-assessing how agile you are and doing smaller changes that stick using feedback and learning cycles from agile methods like Scrum are effective ways to implement lasting improvements. You need to invest time and energy, but when properly done, it certainly pays back. It helps you to stop death marches and to work in a sustainable pace.

 

 

 

Categories: Companies

What’s Down With Agile Documentation?

The Agile Management Blog - VersionOne - Wed, 07/30/2014 - 17:56

Guest post by Ellen Gottesdiener and Mary Gorman of EBG Consulting

Recently we worked with an agile team that was building an FDA-regulated medical device. Some team members were worried about how to produce the required verification and validation documents. “What do we do?” they asked us. “We’re not supposed to do documentation in agile.”

That’s a myth. In agile development, the question isn’t whether to document. It’s what kind of documentation to create, and when. Like everything else in agile, those decisions are based on your assessment of value—in this case, the value of the documentation. More documentation is not necessarily better. In fact, the volume of product documentation often is inversely related to its value.

documentation-value-volume-relationshipProcess Versus Product Documentation

You essentially have two types of documentation: process and product documentation. In either case, we urge teams to focus on the documentation’s consumers and look closely at their usage needs. Look at the documentation from the consumer’s perspective, and explore her usability needs to determine the minimum useful and usable documentation.

Process documentation describes the work-in-progress or handover information the stakeholders produce as they discover and deliver the product—the software application, system, or device containing software. Process documentation has less value for a co-located, domain-savvy team than for a team working in a distributed mode in different time zones and with varying degrees of domain expertise. On the other hand, even a co-located team may need process documentation if they are building a regulated product and require evidence of product verification, as in our client’s case.

Product documentation, which conveys information about the product, is an asset that tends to be valuable because it’s used to sell, service, and use the product. Consider that the consumer of your product documentation might be a validation analyst from a regulatory body, a product end user, an installer, a help desk technician, a field staffer, a maintenance programmer, and so on.

For our medical device client, the product documentation included scripts for a demo used to conduct validated learning to test the product idea itself. We took the perspective of the people going on-site to conduct the demos and, as a result, we created a booklet in a slim, tabular format with abbreviated feature descriptions and demo steps. Not only was this booklet “just enough” to document the product, but it was also fast to produce. As a bonus, the delivery team found the format useful for on-boarding new team members.

On Your Mark…

Teams, including the product owners, need to decide when to produce documentation. There are the two meta-patterns: build it incrementally in small bits as you build the software (and when you have the greatest knowledge for creating the documentation), or defer until prior to release (batching documentation as a larger set, created all at once).

When the requirements are fairly well known, documenting early and often makes sense. On the other hand, our medical device client was essentially a start-up. The potentially lifesaving devices were being used experimentally with patients in the hospital, and the requirements were changing as the product itself was being tested. This meant that it would have been wasteful to document what the team was delivering at each iteration. They agreed to wait to document prior to each release throughout the experimental usage of the product (this is roughly equivalent to what a Lean start-up calls “validated learning”). For this team, it made sense to defer documentation.

A good practice is to produce documentation as part of the acceptance criteria for completing a slice of the product, whether it’s a story, feature, or minimum marketable feature—whatever anchor you use to describe the requirements you’re delivering. When you make the necessary and sufficient documentation a part of the acceptance criteria, you’re gaining value for little added effort.

Sliding Along the Documentation Levers

Consider documentation formality and precision and the volatility of your requirements. Do you need documentation that conforms to a predefined format, sign-off, and so on? Will informal documentation good enough? How precise must the documentation be? Who will be consuming the documentation, and to what end? And as with our medical team, documenting too soon would have been wasteful because of the volatility of the requirements; yet, when it was produced, it needed to be precise and formal.

There is no one size fits all. As shown in Figure 2, different product and project situations influence how you will adapt your documentation plans.

sliding-along-documentation-levers

The Low-Down on Documentation

Documentation boils down to knowledge transfer. Where possible, document in chunks, and deliver just enough to serve the needs of the specific consumer of the documentation. In that way, you maximize the value you create for the effort you invest.

Don’t forget to leave your comments below!

Reference:
Gottesdiener, Ellen and Mary Gorman. Discover to Deliver: Agile Product Planning and Analysis. EBG Consulting, Inc., 2012.

 

Categories: Companies

5 min on Scaling – Vorsicht vor standardisierenden Modellen

Scrum 4 You - Wed, 07/30/2014 - 08:37

In seiner wundervollen Präsentation „Why is Agile failing in large enterprises“ zeigt Mike Cottmeyer, dass drei Grundannahmen dabei helfen, die agile Enterprise zu etablieren:

  • Working Hypothesis: Agile transformation begins by defining a rational system of delivery for the enterprise
  • Working Hypothesis: True agility is about breaking dependencies across the entire organization
  • Working Hypothesis: Healthy culture and effective practices only emerge within a rational delivery framework

Damit man diese Hypothesen umsetzen kann, definiert er dann im Anschluss eine agile Organisation, die im Kern aus Teams auf vier Ebenen besteht:

  • Services Teams – These teams support common services across product lines. These teams support the needs of the product teams.
  • Product Teams – These teams integrate services and write customer facing features. This is the proto-typical Scrum team.
  • Programs Teams – These teams define requirements, set technical direction, and provide context and coordination.
  • Portfolio Teams – These teams govern the portfolio and make sure that work is moving through the system.

Ja, ich teile die Behauptung, dass man Service Teams und Product Teams in großen Organisationen unterscheiden sollte. Die Product Teams sind dann die Stakeholder der Service Teams. Je mehr ich darüber nachdenke, werden bei mir aus den “!” aber einige große “?”. Mikes Framework mit Program Teams und Portfolio Teams muss ich entgegenhalten, dass hier eine hierarchische und von oben nach unten tröpfelnde Kette von Inhalten (Anforderungen, Constraints) etabliert wird.

Der beschriebene Ansatz, der auch Kern des Scaled Agile Framework ist, ist auf den ersten Blick erfolgreich. Doch macht er aus sich selbst organisierenden, eigenverantwortlich arbeitenden Teams eine Scrum-Maschine. Scrum-Teams waren anders gemeint: Sie stellen eine Organisation dar, die ähnlich wie eine Verbindung aus Business Units funktioniert. Die agile Organisation so wie beschrieben zu strukturieren, zerstört den Kern von Scrum und Agilität.

Es hat mit dem, was hinter Scrum steckt und mit dem Agile Manifesto einmal definiert wurde, leider nicht mehr viel zu tun. Nonaka, Ken, Jeff und ich – wir gingen davon aus, dass die Product Teams (so wie schon bei Skunk Works und im berühmten Artikel von Nonaka – “The New New Product Development Game” beschrieben) selbständig darüber nachdenken, was sie liefern. Das führt zur Schlussfolgerung, dass die Product Scrum Teams tatsächlich selbst die Anforderungen definieren. Selbständig, weil sie cross-funktional Lösungen für die Probleme der Kunden/User liefern. Die Scrum-Teams schaffen also eigenverantwortlich einen Wert für ein Unternehmen.

Ich verstehe den Impuls, dass man von oben her denken will. Aber Scrum war und ist immer von der Kernidee der eigenverantwortlichen und sich selbst auf das Ziel ausrichtenden, cross-funktionalen Teams getrieben, denen man einen Management-Framework zur Unterstützung gibt. 

Skalierung so verstanden lässt den Teams den Raum, sich zu organisieren – sogar wenn es um 300 oder 1000 Teammitglieder gibt. Modelle wie dieses finden sich NICHT in den Büchern der derzeit modernen agilen Coaches, sondern in den Ideen aus der Organisationsentwicklung der letzen 20 Jahre. Es gibt Modelle wie die Open Space Technologie, die viel besser geeignet sind, wirklich große Projekte zu steuern, wie z.B. Harrison Owen schon mehrfach bewiesen hat. Mit diesen Management-Methoden, die man um Scrum herum aufstellen kann, lassen sich große Organisationen steuern – dann sind große SAP-Implementierungen, Data-Warehouse-Entwicklungen, medizintechnische Produkte oder andere Hardware-Entwicklungen genauso einfach mit agilen Methoden umzusetzen, wie es heute schon bei großen Software-Development-Projekten passiert.

Wer darüber mehr wissen will – wir haben ein neues Training dazu:

Scrum international – verteilt, skaliert und multikulti

Related posts:

  1. 5 minutes on management
  2. Scrum Teams – No Part Time!
  3. Scrum: 3 plus 3 roles

Categories: Blogs

A Partnership for Innovation in the Enterprise

Apple and IBM joining forces - oh really?  Will George Orwell be rolling over in his grave - will his 1984 become truth in 2014?

Well, one must follow the news to make sense of that gibberish... and the 1984 reference.... it goes back to the famous Superbowl Apple commercial introducing the Mac.

An IBM/Apple partnership to tunnel into the enterprise walled garden for devices is a great idea.  As a consumer it works for me.  I don't know of any enterprises that can pass the Starbucks Test (test for the ubiquity of access for the digital native).

In 2005 (years before the iPhone) Apple joined forces with Motorola to launch the ROKR, a cell phone and iTunes connected music player.

"Jointly developed with Motorola and made available on what was then the Cingular Wireless network, the iTunes-savvy Motorola ROKR may have been fugly, but Apple engineers learned as much as they could while developing it: lessons which helped them avoid the same mistakes in the iPhone..." -- Jonny Evans

The ROKR was a great "beta" success for one of the partners (Apple) and a market failure for the other.  The device was both a phone and a 100-song music player with iTunes integration.  I bought one for my wife and she didn't love it.  I (the geek in the family) found it intriguingly interesting but frustratingly difficult to manage the songs and syncing.

It was not the disruptive innovation that would come two years later.  For $250 and a two-year contract you got a 1.7 inch color display, stereo speakers, camera/video recorder and a phone with a few built in "apps".  What did Apple learn from the introduction of this device and the partnership with the leading mobile device maker?  One thing they learned was that without full control over the product it would be ugly!  It was not innovative - just an incremental mashup of the walkman with the cell-phone.  Jobs was after revolution.  Hence the 100-song limit on the ROKR.  The iPhone launch was only 17 months away in January 2007.  Of course Apple would want to cripple the device, yet slip their toes into the waters.  What a great beta test with real users and all-out marketing to see how the US would react.  The product launch and validated learning was quite beneficial to Apple, not so much for Motorola.

Will the IBM-Apple partnership prove beneficial to both?  Some pundits feel it is an indication of weakness in Tim Cook's leadership and that it is signaling a lack of innovation at Apple.

The deal according to the Wall Street Journal has IBM developing 100 iOS apps and supporting the business customers using those apps and products.

IBM will sell iPhones and iPads to its enterprises clients.  Putting thousands of IBM consultants peddling the new Apple mobile app development language Swift.  Along with apps that manage your enterprise.  The answer to everyones Jeopardy question... will Siri go out with Watson?

So what will be the outcome of this partnership - will it benefit both companies - will it crack open then enterprise to mobile devices?  All very good questions that we should be able to answer in two years or so.

See Also:

http://blogs.computerworld.com/18914/apples_first_ever_itunes_phone_launched_today
http://www.apple.com/pr/library/2005/09/07Apple-Motorola-Cingular-Launch-Worlds-First-Mobile-Phone-with-iTunes.html
http://www.forbes.com/sites/petercohan/2014/07/16/with-ibm-partnership-apple-proves-its-innovation-mojo-has-been-smashed/
http://online.wsj.com/articles/apple-ibm-in-deal-to-create-apps-sell-phones-1405456933

Categories: Blogs

Why Agile Estimates Don’t Work – Part 2

TargetProcess - Edge of Chaos Blog - Tue, 07/29/2014 - 19:24

In Why Agile Estimates Don’t Work – Part 1 I’ve explained why estimates don’t work if someone sees them primarily as a commitment to timing. And, just as I expected, some aficionados rushed to educate me on the subject of estimates in agile, that they are not a commitment but, in short, a discussion of chances and odds of how the development will go, considering the challenges of this particular production environment. Probably, some of those aficionados have accused me of the gravest sin ever, and namely, not reading Mike Cohn’s “Agile Estimating and Planning”. Relax, guys. I studied Cohn’s book long ago, and time after time I would flip its pages to refresh things in my memories, not to mention other books, articles and from-the-trenches stories. My most reliable source for making conclusions, however, is my work. If someone stays out-of-the trenches and theoretizes about estimates, this is just theory. My view on estimates lies in the practical, pragmatic context: if they don’t work as commitment to timing, but as a discussion of chances and odds, why most companies continue to play this game? What makes them go on with it? Why spending lots of time on discussing chances is valued more than action itself?

What Is an Estimate? (take 2)

I’ve cited two options to answer this question in Part 1. Some people, who are, likely, not educated in agile theory, look at agile as a next best silver bullet to complete projects on time and they might wrongly view estimates as a promise of that. They genuinely believe that agile estimates will give them so much sought after reliable reference point about the time of completion. The second group of believers consciously accepts that estimating is a discussion of chances, a probability forecast. The burndown chart provides such forecast based on velocity. Let’s refresh the classical definition of velocity in our memory, quoting from here: “The main idea behind velocity is to help teams estimate how much work they can complete in a given time period based on how quickly similar work was previously completed“. Does it ring any bells now? If we never build the same feature twice, just as you can’t step twice into the same river, then why velocity-based forecast should be relied on? In general, this stands true for all the forecast techniques based on past performance, including forecast models. Yes, there are cases when a team’s work is monotonous, iteration in, iteration out, but from what I’ve been able to observe, it happens very rarely. Mostly, in any company and team, the tasks to be done and challenges to be resolved are unique, for each iteration, and for each release. You never know when something pops up and kicks this neat forecast in the butt.

The Devil Is In…

.. not only in the details. The second most common habitat of the said devil, which goes after the details, is human nature itself.  Nothing else explains this better than the good old Parkinson’s Law:

quote-C.-Northcote-Parkinson-work-expands-so-as-to-fill-the-40851

Yes, indeed. Having all the time in the world is loose. It’s either you have time, or you don’t have it. It’s either you have the guts and sixth sense to define what should be included to the minimal viable product, for instance, or not. Let’s not forget that no one cares about software development for its own sake, except the software developers who view their work as craft. We do things for the market. For the customers, and they don’t care about the development kitchen constraints, challenges and brilliant solutions. Same stands true for UX.

Now, how this reasoning fits into the subject of estimates, someone might ask? Here’s the astounding truth. Teams and companies start playing around and messing with estimate rituals when they have some extra fat to burn. There’s no room for activities that are waste in a bootstrapped, mission-oriented, do-or-die start-up squad of several people. If you are in such a team, and tempted to start a planning poker session, don’t do this. Rather than waste your time on playing with probabilities, get some real work done. Write code, do a UI sketch,  instill clarity to the work of your team. Some mathematical forecast model surely has it that a brick will fell on your head one day. But you’d hardly be wasting your time to estimate how many more bottles of champagne are likely to slip out of a torn plastic bag, when one of those bottles has already hit the concrete, and there are 3 more in the bag. You’d rush to catch the rest of the bottles, not to let them slip, right? Or will you freeze and estimate the probability of all of the bottles being shattered? This reminds me of the fact, that some business people who are skeptical about shamanism, astrology and other such things, devotedly indulge into what is, in essence, shaman rituals with estimates. Come on, the estimate of completion based on burndown or a planning poker session, is as valid as an astrological forecast. There’s no big difference. It’s either you’re “fat” enough as an organization to afford wasteful rituals or not. In fact, even in large companies that seem to be so safe and secure there’s always the bottomline point of “do or die”. That’s what a recent story with massive job cut by Microsoft proves. Ritual is a waste. If there’s time for rituals left, this is a sign of unhealthy fat. Burn it. If a workgroup discusses development, there’s no need to wrap it in the ritual of estimating, because when a discussion turns into a draining debate of “how probable” this timeframe is, the work suffers. Someone said, there’s a limited number of brains to do the job, and they should be used efficiently. One can suffice with a draft estimated timeframe, there’s no use trying to gauge on the likelihood of this happening, when there’s real work to be done.

Worship the Idol: How Do I Tell My Higher-Ups ..?

As life has it, however, most of us have to cope with the fallacy around estimates being employees in fat organizations, and, hard as you might, a mere human being can not move a mountain. There’s no way to persuade a higher-up non-developer manager, or a client, or a stakeholder in the vanity of estimates. That’s why people go on playing games, as they attend to those who expect a feature or a project to be done on time, as derived from estimate-related shamanic rituals. And, that’s where another interesting booster for evolution is hiding. Luckily — and, yes, I mean it, luckily — there are more non-developers in the position of authority than developers. There’s always a point of litmus test, when someone with a developer background (a project manager, team leader, or someone in middle management) meets the non-developer stakeholder. Why I call it a booster for evolution? If every stakeholder were a developer, they would have probably ended up whining on each other’s shoulder about how difficult life is, and how impossible it is to commit to any timeframe. Having to deal with a non-developer stakeholder about a deadline is stimulating. If you’ve been thinking that something has changed from the hunter-gatherer times, I have bad news for you. The seeming “comfort” guises the basic instinct to act. You either act, or you rot. There’s no other option. No one cares for reactive rants. It’s your actions that define you. It’s your choice to agree to play the estimate game by the rules and accept this as a given, or to quit and find a job where they will not f…k your brain with estimates. If you choose to deal with ruthless stakeholders that are oh-so-not-understanding of how hard a life of a true software craftsman is,  move the conversation from the level of rant to the level of action. Use every opportunity to spread the awareness of the challenges that software development portends, and why this domain is un-deadline-ifiable by nature. Amazingly, there are so many people in this world who sincerely believe that an estimate is a credible measure for completion date. Write articles, speak on conferences, join the “no estimates” movement. Fix the gap between what you know, and what they know. If everyone has their say, this world will become a better place, with less projects and software screwed. And, even if you’d still have to deal with the waste of estimates, you’d feel better inside, because you’d be doing your all to change things, instead of ranting.

Enough of thought boosters (or busters?). In Part 3 of the series I will give an outline of some techniques, commonly regarded as techniques for estimates, that might work as a tool for workgroup discussions in some teams. Keep in mind the waste-value balance, though.

Related articles:

Why Agile Estimates Don’t Work – Part 1

Categories: Companies

Try AgileZen and Mobilize Social Entrepreneurs Worldwide

Rally Agile Blog - Tue, 07/29/2014 - 18:00
Limited Time Offer: AgileZen Impact Edition

Talk about the perfect way to combine your everyday work and your charitable side. Through August 31, become a new AgileZen customer and pay what you want for a three-month subscription to Impact Edition for up to 20 projects. Rally will donate 100 percent of new customer subscriptions during the promotion period to support emerging entrepreneurs who are tackling tough social problems worldwide. Plus, the Rally For Impact Foundation will match all those new subscriber contributions up to $5,000 to help the Unreasonable Institute further its global impact. Together, we can raise thousands of dollars in just a few months!

The Unreasonable Institute: Scaling to Meet Global Demand

The people at the Unreasonable Institute work tirelessly to get world-changing ventures and entrepreneurs the resources they need to scale their social and environmental impact. After running their global five-week accelerator program in Boulder, Colorado, for the past five years, they’re scaling their impact and launching two new institutes this summer -- one in Kampala, Uganda, and one in Aguascalientes, Mexico.

“Ever since we started the Unreasonable Institute, our big vision has been to open up dozens of institutes around the world, each serving entrepreneurs who are tackling the world's most pressing social and environmental problems. Unreasonable East Africa and Mexico are only the start of our global expansion. With the generous support from sponsors like Rally, we plan to open up many more institutes in the next year.” — Banks Benitez, vice president of global expansion, Unreasonable Institute

In 2011, Rally’s founder, Ryan Martens, spent his six-week, company-paid sabbatical at the Unreasonable Institute as a Mentor In Residence. Witnessing the power of the Unreasonable Institute's approach, Martens has continued as a Mentor every year since. He sees the AgileZen Impact Edition promotion as a great way to broaden the organization’s impact.

“I am thrilled to engage our AgileZen customers in supporting the global expansion of the Unreasonable Institute. Using a collaborative team approach, they teach social entrepreneurs to apply Lean startup approaches, including Agile techniques such as iterative and incremental cycles, to their business development efforts. Rally’s social mission is to mobilize citizen engineers — supporting people and organizations who are engineering social change through innovative products and programs. I’ve seen firsthand how the accelerator model gives social entrepreneurs an ‘unreasonable advantage’ to create true and lasting impact.” — Ryan Martens, Rally Software founder and CTO

Now is the perfect time to try AgileZen and make a difference with your contribution. Just sign up for Impact Edition as a new customer by August 31, decide how much you want to pay for a three-month subscription, and join Rally in helping people and organizations that are dedicated to improving lives in communities around the globe. To learn more about how AgileZen can help you and your team organize and track your work, take the product tour.

Geri Mitchell-Brown
Categories: Companies

The 4-Step Action Plan for Agile Health: Step 3: Understand how to use additional enablers of Agile Health

The Agile Management Blog - VersionOne - Tue, 07/29/2014 - 17:02

Agile development requires a cross-functional, self-organized team to deliver potentially shippable software at the end of each sprint, with analysis, design, code developing and testing activities going on concurrently (not sequentially) within each sprint.      Combining Agile/Scrum development with some of the lean methods is also becoming popular (so-called “Scrumban” methods). These methods emphasize reducing Work In Process (WIP), reducing feature cycle time and increasing throughput (feature completion rate).

In my blog on From Agile Pathologies to Agile Health I explained that some “agile” teams suffer from the following common pathologies, i.e., major dysfunctions in practicing agile methods, while claiming that they are “doing agile”:

  1. Agile development “sprints” assigned to software development lifecycle phases
  2. Agile development “sprints” assigned to technology tiers
  3. Mini-Waterfall inside sprints
  4. Water-Scrum-Fall

While an agile team may not be exhibiting gross dysfunctions (pathologies) listed above, it may still behave in harmful or unhealthy ways that would prevent it from realizing the benefits of agile development, such as higher productivity, throughput and quality.    Absence of major pathologies or sickness doesn’t imply health; agile teams may still not be healthy due to one or more harmful behaviors.

In this 4-part blog series, I focus on 6 harmful behaviors exhibited by agile teams and how to move away from them, and transition to 6 healthy agile-lean practices in order to get more benefits (improved productivity, throughput and quality).  I also present 4 specific steps to transition to healthy agile-lean practices.   Table 1 summarizes these 4 steps, and labels 6 harmful behaviors (as 1B through 6B) and 6 healthy agile-lean practices (as 1P through 6P) for ease of cross-referencing. Table 1 also indicates what is covered in each of the 4 parts of the blog series: Part 1 and 2 (highlighted in light green color) were completed.    In this Part 3 (highlighted in pink color), Step 3 – understand how to use additional enablers of agile health – is described.  Parts 4 will be presented in the future.

Table 1: The 4-Step Action Plan for Agile Health

R_Part3_Table1

In Part 1 of this blog series, I used an example of a typical 4-week (20 workdays) sprint for the Struggling Agile Team.  Figure 1 illustrates the Sprint History Map of this 4-week sprint for the Struggling Agile Team after the sprint is over.   This Figure 1 is a revised version of Figure 1 of Part 1 as it shows the effects of two additional harmful behaviors, 5B and 6B, described below.

R_Part3_Figure1

Figure 1:  Sprint History Map of the Struggling Agile Team
suffering from 6 harmful behaviors

5B. Frequent impediments and non-availability of qualified team members:   With struggling agile teams, there is often no disciplined way to minimize and manage impediments.  Team members (especially contractors supplied by an off-shore vendor) are reluctant to bring impediments to the attention of ScrumMaster in a proactive manner.  ScrumMaster may have difficulty in removing organizational impediments.  More importantly, the team may not have the required training and norms to prevent or minimize the impediments in the first place by taking timely proactive actions to resolve issues to prevent them from becoming impediments.  As a result, the number of impediments experienced by the Struggling Agile Team is rather large (as shown by 9 impediments — marked as IMP – on the Sprint History Map of Figure 1).  Furthermore, impediments may take substantial time to be removed, which holds up the work.

As shown in the Sprint History Map in Figure 1, a rather larger number of 32 cells are marked as NT (No Team Member Available) events because of frequent non-availability of qualified team members.   These members may be busy on other projects or teams due to multiplexing, or busy with other features due to multitasking, or are interrupted by customer support work or customer demos.  Members that may be available are not qualified or ill-prepared to do work outside their area of expertise due to the silo mindset.

Although it can be argued that NT events is an example of impediments (as no work can proceed due to non-availability of qualified team members), it is important to differentiate between NT events from general impediments to understand the gravity of problems caused by non-availability of qualified team members and then take appropriate actions to correct or mitigate that problem.

As shown in its Sprint History Map (Figure 1), the Struggling Agile Team planned 8 features, but could complete only 4 features (Features 1 through 4).  Four features (Feature 5 through 8) could not be completed.

6B. Manual testing is the norm: For struggling agile teams, the level of automation for unit testing, acceptance testing and regression testing is non-existent or at best low.    This creates an untenable situation as evermore regression test cases need to be run within each successive sprint to ensure that the functionality implemented in all previous sprints is still working, i.e., hasn’t regressed.  This growing effort for regression testing for each successive sprint with the same number of QA testers in the team performing manual regression testing is simply not feasible.  As a result, many teams do little or no regression testing in each sprint as shown in Figure 1; that effort is postponed until the so-called hardening sprint.   Neither the team nor its customers or users are clear about the quality of each sprint release as there was little or no regression testing done.

In Part 2 of this blog series, I used an example of a typical 4-week (20 workdays) sprint for the Healthy Agile Team. Figure 2 illustrates the Sprint History Map of this 4-week sprint for the Healthy Agile Team after the sprint is over.      This Figure 2  is a revised version of Figure 1 of Part 2 as it shows the positive effects of two additional healthy practices, 5P and 6P, described below.

R_Part3_Figure2

Figure 2: Sprint History Map of the Healthy Agile Team
following 6 healthy agile-lean Practices

5P. Effective impediment management and full availability of qualified team members: ScrumMasters should develop and practice these skills:

  • Encourage team members to bring to attention issues in a proactive way
  • Resolve issues before they have a chance to become impediments
  • Recognize real impediments that team members simply cannot resolve on their own
  • Develop technical and organizational skills to resolve impediments quickly if they still occur
  • When an impediment stops work on a feature (should be rare event), the feature team members may be assigned to help other feature teams, instead of pulling a new feature to work on (which increases WIP)
  • Apply the 5-Why’s technique (see: http://en.wikipedia.org/wiki/5_Whys) to find and address the root causes for recurring impediments

As a result of this practice, the number of impediments is minimized and impediments are removed quickly when they occur.  Compared to the Struggling Agile Team’s 9 impediments (see its Sprint History Map in Figure 1), the Healthy Agile Team encountered only 2 impediments (see its Sprint History Map in Figure 2).  NT (Non-availability of qualified team members) events can be completely eliminated for the Healthy team as shown in its Sprint History Map (Figure 2) because full-time, dedicated, cross-functional team members swarm on features; they do not squander their time on multiplexing or multitasking.  As shown in its Sprint History Map (Figure 2), the Healthy Agile Team planned 8 features, and completed 7 features (Features 1 through 7). Only one feature (Feature 8) could not be completed.

6P. Test Automation: Evermore regression testing is required in each successive sprint to ensure that the functionality built during past sprints is still intact and has not been broken, i.e., hasn’t regressed.  Unit tests are automated by following the practice of Test-driven development, and acceptance tests are also automated.  These two classes of automated tests are added to build the growing automated regression test suite.  It now becomes practical to run ever larger number of automated regression test cases on Day 18 and 19 of a 4-week sprint by using computers (typically virtual machines) as shown in Figure 2.   Although it is not possible to automate every test case, such as usability testing that involves subjective judgment, a vast majority of test cases are automated by the Healthy Agile Team.

I recommend to gradually growing test automation expertise within each cross-functional team.   If you have to depend on the availability of test automation experts controlled by some group or department, you will be back to harmful behavior 2B of Team members working with a silo mindset.   These test automation experts will always be in high demand by multiple teams, and often will become a bottleneck.

By no means, the list of 6 harmful behaviors and the corresponding 6 healthy agile-lean practices presented in this blog series is exhaustive.   More Practices for you to consider: Build automation, Continuous integration, DevOps, Refactoring, Technical debt reduction, Spikes, Waste reduction to improve lean flow, etc.

Now let us take a holistic view of all 6 harmful behaviors to move away from, and 6 healthy agile-lean practices to adopt.

Six harmful behaviors feed on each other to create more harm:  When multiplexing and multitasking is common, team members get distracted and lose productivity, which reduces throughput and increases NT events (work cannot proceed due to non-availability of qualified team members) as team members get pulled off to work on other multitasked work.   When team members work with a silo mindset and don’t have skills or inclination for cross-functional work, there are many NT events.  When team members have no focus on completing the work already started, WIP goes up, cycle time goes up, and throughput goes down.  Lack of test automation (manual testing is the norm) also reduces productivity and makes regression testing almost impossible in each sprint, which reduces quality.     As a result of all these 6 harmful behaviors, the Struggling Agile Team could get only 4 features (Features 1 through 4) accepted in the sprint representing a velocity of 8 story points.  The remaining 4 features (Features 5 through 8) could not be completed within the sprint.  A struggling agile team may continue to struggle into a downward spiral, until and unless it starts moving away from harmful behaviors and start following healthy practices.

Six healthy agile-lean practices feed on each other to create increasing benefits:  When multiplexing is avoided and multitasking is minimized, team members increase their productivity due to single-team loyalty and by not wasting time on context switching, which increases throughput and reduce NT events.     As teams develop and use cross-functional skills, NT events reduce dramatically as at least one team member is almost always available to do any work (each member is a Master of One and Jack of Two).  As team members follow lean mantra of Stop-Starting-Start-Finishing, and work in a highly focused way, WIP goes down, cycle time goes down, and throughput and quality go up.   As manual testing reduces, and Test automation increases, it increases productivity and makes regression testing possible in each sprint, which improves quality.      Instead of struggles caused by harmful behaviors, an agile team starts experiencing an upward spiral of improved health and consequent higher productivity, throughput, and quality.  As a result of all these 6 healthy-lean agile practices along with the practice of sprint pipeline, the Healthy Agile Team was able to get 7 features (Features 1 through 7) accepted in the sprint representing a velocity of 15 story points.  Only one feature of 1 story point (Feature 8) could not be completed within the sprint.   6 healthy agile-lean practices synergize to create more positive benefits. Success feeds on success

Are any of the 6 harmful behaviors causing serious challenges and issues in your organization?   Are any of the 6 healthy agile-lean practices giving your team tangible benefits or of interest to you for your adoption?

I would love to hear from you either here or by e-mail (Satish.Thatte@VersionOne.com) or on twitter (@smthatte).

Part 1: Understand harmful legacy Mindset and Non-Lean behaviors to move away from

Part 2: Understand healthy Agile Mindset and Lean Practices to adopt

Stay tuned for this future and the last part of the blog series:

Part 4: Develop and implement your customized plan for adopting healthy agile-lean practices

Categories: Companies

Continuous Backlog Refinement

Leading Agile - Tue, 07/29/2014 - 15:18

Create your initial backlog, then stay on top of it. Here’s the how and why of Continuous Backlog Refinement.

In my previous article, I talked about compressed backlog refinement in which a backlog is taken from crude to well-groomed in a matter of days through a series of intensive refinement meetings with the whole team. The drawback, besides being several days of intensive meetings, is that we sometimes rush through some of the stories. We don’t have enough lead-time for other parties to do the work we depend on, and we don’t take a step back and look at the big picture. The pressure to get going causes us to not think clearly when looking for the minimum viable product of minimally marketable features.

In spite of its downsides, that approach may be necessary when you need to quickly refine an initial 1 to 3 month backlog and get a team sprinting. However, it’s not the best approach for refining and estimating additional user stories or subsequent backlogs. For that, we should employ continuous backlog refinement.

Predictability

Most of my clients care about predictability:

For most companies we work with, the sweet spot is 3 to 6 months. If the product development organization can reasonably hit a 3 month commitment and have at least a high level idea of what things will look like 6 months out… that is something we can work with. — Mike Cottmeyer

It’s incredibly difficult to get a well refined backlog more than 3 months out using a compressed refinement approach. What I’m recommending, then, is planning ahead and staying ahead. Sure, if you need the compressed approach to get started, go ahead and refine that first 3 months of backlog. Then, immediately begin continuously refining the backlog for the 4-6 month time-frame.

Continuous Backlog Refinement

Here’s what this looks like: As stories are written, have someone else on the Product Owner Team such as a QA lead, tech lead, or analyst review and improve them. Bring those stories to the next backlog refinement meeting, which you’ll have each sprint. Call it backlog refinement, call it backlog grooming, call it story preview, call it story walk-through, call it what you will, but have it as a regular standing meeting on the calendar and invite the whole team.

Come into this meeting assuming you will need to update and split stories. However, don’t update them in the meeting. Team members can take to-dos to split and update stories after the meeting. Stories that undergo significant changes will go through the next backlog refinement meeting. Let’s keep this meeting short and do offline whatever we can.

Resist the urge to go into detail on any story. Just a few minutes or less is enough. Remember, we’re grooming stories that are 3 months out. We don’t need to spend much time on them now.

Assume the stories are not ready to be estimated. Assume development and QA might want to go do some research on the stories before they are estimated. Encourage them to do so. Give the team time to do so. Estimate these stories in a separate meeting. Refining stories and estimating them are different kinds of thinking. Estimate with some skill and care.

This approach keeps both refining and estimating meetings short, but means you may need a more detailed story walk-through at the start of sprint planning (the “what” part of sprint planning). Those who did the intensive compressed refinement meetings might be able to get by with a more abbreviated sprint planning meeting.

Conclusion

To get started with agile, when we have no backlog yet, we create and groom an initial backlog in a short period of time. We’ll call that compressed backlog refinement, and although it’s not the favored approach, sometimes you’ll just have to use that approach anyway.

Once the team is sprinting on your backlog, don’t let it dwindle down. You should have at least 2 or 3 sprints worth of well groomed stories, with acceptance criteria, ready for the team to implement. Most of the clients I work with need an additional 3 sprints worth of stories refined, but perhaps without the acceptance criteria. Stay on top of writing more stories and continuously refine your backlog.

The post Continuous Backlog Refinement appeared first on LeadingAgile.

Categories: Blogs

Agile misconception – fixed scope and fixed deadline

AgileEspresso - Davide Noaro - Mon, 07/28/2014 - 21:58
Filed under: comic strips Tagged: agile misconception
Categories: Blogs

Talking Scrum with the Founder of Axosoft

About SCRUM - Hamid Shojaee Axosoft - Mon, 07/28/2014 - 18:27

msdn magazine

Recently, our founder Hamid Shojaee sat down with MSDN Magazine to talk about Axosoft’s $1 bug tracker, passion for Scrum, and  the company’s future. Hamid has guided Axosoft to becoming the #1 Scrum software for developers by focusing on the core features Scrum teams need to ship great software on time and on budget. Read what he had to say about Scrum and Axosoft below!

scrum in 10 minutes

Learn Scrum in under 10 minutes with this video!

Q With the #1 Scrum product and video, it’s clear Axosoft is really invested in this framework. Why did you decide to go “all in” on Scrum?

A Because Scrum works. It’s that simple. Scrum helps deliver software faster and better than any methodology, which is why we have wholeheartedly embraced it. Plus, we appreciate the simplicity and adaptability of its core concepts. As the makers of a Scrum tool, we are always trying to integrate these traits into our product so we have created a straightforward, one-page interface that also allows teams to customize fields and create flexible workflows.

Q What are some of the new things Axosoft is doing to support the Scrum community?

A In addition to hosting local Scrum User Groups in our office, we’re really proud of the traction our new Scrum education site, ScrumHub.com, has gained. We believe Scrum concepts should be presented in an easy to learn way, so we’ve made a bunch of awesome free guides, webinars, videos and infographics that illustrate the fundamentals.

Q Aside from the Scrum piece, your company also recently decided to give away the Axosoft Bug Tracker. Why did you decide to do this?

A There are two big reasons why we decided to give away Axosoft Bug Tracker: First off, we wanted to improve every dev team’s ability to track defects and build better software—even when budgets are tight. The second reason is a little selfish, but we also wanted to introduce Axosoft to the world! We expect that the people who use Axosoft Bug Tracker will love it and consider checking out our other products too.

Q Axosoft has been consistently voted one of the best places to work in Arizona. How do you develop an exceptional workplace?

A I just try to create the kind of work environment I would want to work in! After all, I’m going to spend most of my life at work, so I want to surround myself with smart people who can have intelligent conversations and a little bit of fun too. That’s pretty much the foundation of every work environment decision we make, and it helps us bring on even more great people.

Q What are Axosoft’s plans for the future?

A As a company our purpose is to help dev teams ship software on time and on budget. Though that’s a really simple statement, there’s a lot we can keep doing to improve the way developers work. We will continue making enhancements to the Axosoft product suite to achieve that singular purpose. A recent example of this would be our new “Daily Scrum” feature that helps dev teams conduct daily Scrum meetings more efficiently by showing the work the team has done in the last day.

Categories: Companies

Hansoft 8 Brings Actionable Agile Metrics

Scrum Expert - Mon, 07/28/2014 - 17:22
Hansoft brings Actionable Agile Metrics to developers, managers and executives with the release of Hansoft 8. Hansoft 8 combines Program Management with Business Intelligence in one tool. Decision making on all levels, from the team to the program and portfolio, can now be supported by relevant data visualized with iterative and collaborative dashboards. “Agile metrics is a hot topic right now and we can see how many large organizations realize that critical decision making happens on all levels every day, not only in top management group. Yet the traditional business intelligence ...
Categories: Communities

Why Agile Is Failing in Large Enterprises, And What You Can Do About It

Leading Agile - Mon, 07/28/2014 - 17:13

Here is the deck from my Agile2014 talk on why many folks are struggling to adopt agile in larger, more complex enterprises. The presentation explores many themes persistent on this blog. Why agile works, why agile fails, what gets in the way, and how to systematically and pragmatically begin to refactor your legacy organization into an effective agile enterprise? If you came to the talk, I appreciate it. If you have any questions, please let us know. Thanks!

Why Agile Is Failing in Large Enterprises, And What You Can Do About It from Mike Cottmeyer

The post Why Agile Is Failing in Large Enterprises, And What You Can Do About It appeared first on LeadingAgile.

Categories: Blogs

Montreal Agile Game Development Courses, September 17th - 19th

Agile Game Development - Mon, 07/28/2014 - 16:03
I'm teaching two public courses on agile game development in Montreal this September:

Certified ScrumMaster for Video Game Development

Kanban for Video Game Development


Categories: Blogs

The 4-Step Action Plan for Agile Health: Step 2. Understand how to adopt healthy Agile Mindset Practices and Lean Practices

The Agile Management Blog - VersionOne - Sun, 07/27/2014 - 17:01

Agile development requires a cross-functional, self-organized team to deliver potentially shippable software at the end of each sprint, with analysis, design, code developing and testing activities going on concurrently (not sequentially) within each sprint.      Combining Agile/Scrum development with some of the lean methods is also becoming popular (so-called “Scrumban” methods). These methods emphasize reducing Work In Process (WIP), reducing feature cycle time and increasing throughput (feature completion rate).

In my blog on From Agile Pathologies to Agile Health I explained that some “agile” teams suffer from the following common pathologies, i.e., major dysfunctions in practicing agile methods, while claiming that they are “doing agile”:

  1. Agile development “sprints” assigned to software development lifecycle phases
  2. Agile development “sprints” assigned to technology tiers
  3. Mini-Waterfall inside sprints
  4. Water-Scrum-Fall

While an agile team may not be exhibiting gross dysfunctions (pathologies) listed above, it may still behave in harmful or unhealthy ways that would prevent it from realizing the benefits of agile development, such as higher productivity, throughput and quality.    Absence of major pathologies or sickness doesn’t imply health; agile teams may still not be healthy due to one or more harmful behaviors.

In this 4-part blog series, I focus on 6 harmful behaviors exhibited by agile teams and how to move away from them, and transition to 6 healthy agile-lean practices in order to get more benefits (improved productivity, throughput and quality).  I also present 4 specific steps to transition to healthy agile-lean practices.   Table 1 summarizes these 4 steps, and labels 6 harmful behaviors (as 1B through 6B) and 6 healthy agile-lean practices (as 1P through 6P) for ease of cross-referencing. Table 1 also indicates what is covered in each of the 4 parts of the blog series: Part 1 (highlighted in light green color) was completed.    In this Part 2 (highlighted in pink color in Table 1), Step 1 – understand healthy “Agile Mindset” practices (1P and 2P) and 2 lean practices (3P and 4P) – is described.  Parts 3 and 4 will be presented in the future.

Table 1: The 4-Step Action Plan for Agile Health

R_Part2_Table1

“Agile Mindset” practices to improve agile health:  I now explain and recommend 2 specific practices to embrace an “agile mindset.”   I typify an agile team B that consists of a business analyst, 3 full-time developers, 2 full-time QA testers, a Product Owner and a ScrumMaster.   All members of Team B are full-time, dedicated members unlike the Struggling Agile Team of Part 1 of this blog series which had part-time, multiplexed members.   As Team B follows all 6 healthy agile-lean practices (1P to 6P) listed in Table 1, it is our prototypical “Healthy Agile Team”.

I use a similar example of a typical 4-week (20 workdays) sprint for the Healthy Agile Team.   Figure 1 illustrates the Sprint History Map of this 4-week sprint after the sprint is over.   It uses the same format and legend as used in in the Sprint History Map of the Struggling Agile Team (see Figure 1 of Part 1). Each feature was broken down into its implementation tasks either during sprint planning or actual sprint execution.  These tasks are indicated in the legend at the bottom of Figure 1.

R_Part2_Figure1

Figure 1: Sprint History Map of the Healthy Agile Team following the
Agile Mindset Practices

The 2 “Agile Mindset” practices (numbered 1P and 2P below) require replacing the legacy mindset with agile mindset, moving away from silo thinking, welcoming the change necessary for successful agile adoption and implementing the required change to get the benefits of higher productivity, throughput and quality.

1P. Full-time, dedicated agile team members without multiplexing and with minimal multitasking: Move away from the old mindset that treats people as resources whose utilization needs to be maximized via multiplexing and multitasking.   It is much more important that you maximize agile team throughput than worry about utilization of each team member as a resource.

Assign agile team members to work full time (100%) on a single agile team through all sprints of at least one release cycle.  You need at least a full release cycles (4 to 6 sprints) for team members to understand each other’s strengths and weaknesses, develop a (hopefully smooth) working relationship, and jell together as a team.  These well-jelled team members show higher productivity as they learn how to capitalize on each member’s strengths and compensate for weaknesses.  They learn to work with each other as human beings, and not replaceable resources.  This often requires a significant buy-in from management, if it is steeply rooted in traditional project management practices.

Cultivate the habit of doing focused work – one task at a time – starting with 30 minutes of uninterrupted work on a single task, and gradually extending it up to two hours.  Then you will need a well-deserved 5-minute break due to intellectual fatigue.  See The Energy Project: http://theenergyproject.com/  to understand how to conserve your energy to work in a highly focused way on single task at a time. Each team member learns to focus on a single task at a time (up to 2 hours in a stretch) until the task is over, before switching to other tasks.

Avoid multiplexing and minimize multitasking.  It increases productivity by avoiding wasteful context switching, and making each team member committed to and accountable for the success of a single team.  There are no divided loyalties of a person among different teams and projects.  That simply doesn’t work well.

2P. Cross-Functional Team Members: An agile team is composed of cross-functional team members: Train, cultivate and invest in each member to become a “Master of One and Jack of Two”.   Each member has primary expertise or mastery in at least one area, and working level skills in two other areas.  From time to time, each person is needed to work in areas outside his/her own mastery.  For example, a developer tests features developed by other developers, or a tester develops scripts for automated tests, etc.   See: http://bit.ly/1lkaXHc.

Investing in team members to become “Master of One and Jack of Two” may require a significant buy-in from functional or departmental managers.   Team members don’t just do their own tasks that match with their primary expertise or interest.  They swarm as a team to deliver working features within each sprint. Each feature is worked on by a logical feature team swarming to complete the feature in the shortest cycle time.  See: http://bit.ly/1rhtV6g.  Although the Sprint History Map for the Healthy Agile Team (Figure 1) shows swarming feature teams only for Feature 1 and 2 for brevity, they exist for all 8 features in the backlog.  These feature teams are “logical” teams in the sense that they may share one or more individual team members.

How to adopt two lean practices:  These 2 lean practices (labeled 3P and 4P in the list of 6 healthy agile-lean practices of Table 1) are described below.

3P. Stop-Starting-Start-Finishing and work under WIP limit: Form swarming features teams within an agile team to focus attention on getting each feature accepted by the Product Owner as soon as possible.  Without completing a feature or a task already in progress, resist the temptation to start working on a new feature or a new task.  Stop starting new things (features or tasks) before completing the things you have already started.  This is a good mantra for life too.   This practice will effectively allow a lower WIP limit in an informal way.

As explained by David Anderson in his book “Kanban: Successful Evolutionary Change to your Technology Business,” 2010, page 114, the WIP limit needs to be set up as 2 to 3 people per feature plus 2 to 3 to smoothen the impact of a blockage.   For an Agile team of 7 full-time, dedicated team members, the WIP limit can be set up as 3 + 2 = 5.   You will need to experiment with this number and adjust it empirically up or down based on the experimental results.  Progressively lowering WIP limits will bring out bottlenecks that need to be resolved.  Agile Lifecycle Management tools, such as VersionOne, help you visualize the Kanban workflow under WIP limits, and provide warnings if WIP limits are exceeded.  Learn how to work with smaller WIP limits.

As shown in the Sprint History Map (Figure 1), the WIPs on Day 2 through 17 (total 16 days) for 7 completed features (Feature 1 through 7) in the sprint are 2, 2, 2, 3, 4, 5, 4, 4, 3, 4, 4, 3, 2, 2, 1, 1, with the average WIP = (46/16) = 2.875.    The WIPs on Day 2 through 17 (total 16 days) for all 8 features are 2, 2, 2, 3, 4, 5, 4, 4, 3, 4, 4, 3, 3, 3, 2, 2, with the average WIP = (50/16) = 3.13, which is only slightly more than the WIP of 46/16 = 3.13 for 7 completed features.  The Healthy Agile Team has its focus on completing the work in progress before starting the new work by following the Stop-Starting-Start-Finishing mantra which reduces WIP.   The Healthy Agile Team has a smaller WIP compared to that of the Struggling Agile Team illustrated in its Sprint History Map (see Figure 1 in Part 1, and the WIP data for the harmful behavior 3B in Part 1).

4P. Focus on minimization of cycle time: Improve team’s throughput (features completion rate) with cross-functional team members, eliminate NT events by avoiding multiplexing and multitasking, and use of proper test automation tools (see Part 3 of this blog series).

Reducing WIP reduces the cycle time.    As shown in the Sprint History Map (Figure 1), the cycle times for the 7 completed features (Features 1 through 7) are 6, 8, 5, 7, 7, 8, 5 days, with an average cycle time of (46/7) = 6.57 days.   I will now use the well-known Little’s Law to calculate the average throughput (rate of feature completion and acceptance by product owner) of the Healthy Agile team.

Average Cycle Time = Average WIP / Average Throughput, or alternatively

Average Throughput = Average WIP / Average Cycle time

In the example of Healthy Agile Team, Average WIP = 46/16 (see Practice 4P above), and Average Cycle Time = 46/7 (as explained just above).

Therefore, Average Throughput = [(46/16) / (46/7)] = 7/16 features per day.

You may use the Sprint History Map (Figure 1) to visually verify that the Healthy Agile team has  delivered 7 accepted features (Features 1 through 7) in 16 actual work days of the sprint, confirming the average throughput of 7/16 features per day.  Sprint History Maps provide visual data for WIPs and Cycle Times, and visual verification of Little’s law.

The higher throughput of 7/16 features per day for the Healthy Agile Team (compared to the Struggling Agile Team’s throughput of 4/18 features per day) can be attributed to the facts that the team has moved away from harmful behaviors:  it has no NT events and substantially reduced number of  impediments (IMP events); it avoided multiplexing and minimized multitasking, gotten away from the silo mindset,  is practicing Stop-Starting-Start-Finishing lean mantra, has reduced long cycle times (average cycle time of only 6.57 days in a 16-workday sprint), and is practicing automated testing (as explained in Part 3 of this blog series).

Little’s Law is a powerful and versatile tool.  A change in any one of its parameters (WIP, Cycle Time and Throughput) is most likely to effect a change in one or both of the other two parameters.  You can reduce cycle time by reducing WIP while holding throughput constant.  Or you may increase throughput by decreasing cycle time as we have just seen.  There is a third option: a team may increase the average WIP (more work in parallel) and thereby increase the throughput, provided that the team can hold the average cycle time by increasing its intrinsic productivity by upgrading its skills via training and apprenticeship, getting more experienced members on the team, using various automation tools, increasing its design and code reuse, etc.   If any one of these 3 parameters needs to be corrected or improved, Little’s Law tells us exactly what to do to achieve the desired results.  Most of the time the goal is to increase throughput (without sacrificing quality) by reducing cycle time or by increasing team’s intrinsic productivity or both.   Bennet Vallet of Siemens Health Care presents a great case study of Kanban success providing the details of how to harness Little’s law to reduce the average cycle time, increase the average throughput and improve the release predictability.

Lean methods provide us additional options to reduce the cycle time, and thereby, increase the throughput.  Splitting large features into smaller features (they still must deliver value to customers) reduces the average cycle time.   How small should these features be?   Larman and Vodde suggest that for an N-week long sprint, each feature should take no more than N/4 staff-week of total effort (Reference: “Scaling Lean and Agile Development” by Larman & Vodde, 2009, page 120).  For the 4-week example sprint used in this blog series, it would be ideal if each feature takes no more than 4/4 = 1 staff-week or 40 staff-hours (or less) of total effort.  For a 2-week sprint, each feature should take no more than ½ staff-week or 20 staff-hours of total effort.

Furthermore, leveling the workload, i.e., having all features of roughly the same size also reduces the average cycle time.  Uneven sized sprint workload (small features intermixed with medium and large features in a sprint backlog) increases the average cycle time.

As shown in the Sprint History Map (Figure 1), the Healthy Agile Team has swarming feature teams; each feature team is working on multiple tasks of a feature concurrently.  For example, in the Sprint History Map (Figure 1), Software Design task (D) and Acceptance Test Development task (TD) were going on concurrently on Day 2, Code development task (C) and Acceptance Test Case execution task (TE) were going on concurrently on Day 4.  This swarming action also reduces the cycle time due to intense collaboration among the feature team members, their focus on completing the feature and getting it accepted as fast as possible.

Sprint pipeline: Learn and apply the Sprint pipeline practice where feature analysis and UI design work is done one timebox ahead of software design, coding, testing, defect fixing, acceptance testing.   This effectively allows two successive timeboxes for each sprint, but without adversely impacting throughput (it still produces working software at the end of each sprint).   With sprint pipeline, feature specification and UI design is in much better shape when a sprint starts, compared to trying to squeeze all work for a feature in a single time box where analysis or UI design may become bottlenecks.   In the Sprint History Map (Figure 1), there are no “A: Analysis” tasks at all, because the Healthy Agile Team is following the sprint pipeline well. 

Is your team facing the challenge of moving away from harmful “legacy mindset” and “non-lean” behaviors, and is interested in transitioning to the healthy “agile mindset” and lean practices?  I would love to hear from you either here or by e-mail (Satish.Thatte@VersionOne.com) or on twitter (@smthatte).

Part 1: Understand harmful legacy Mindset and Non-Lean behaviors to move away from

Part 3: Understand how to use additional enablers of Agile Health

Stay tuned for the 4th and the last part of the blog series.

Part 4: Develop and implement your customized plan for adopting healthy agile-lean practices

Categories: Companies

The Right Way to Do Scrum, but ...

NetObjectives - Sun, 07/27/2014 - 13:02
We Do Scrum-But I often hear people say “oh, we do Scrum but we don’t do …”.  This includes “we do Scrum, but we don’t have fully cross-functional teams.”  Or, “we do Scrum but management interrupts us all of the time with needed new functionality.” With the creation (and misunderstanding) of Kanban, we often hear “we do Scrum but we don’t have hard iterations, we follow more of a flow model.”...

[[ This is a content summary only. Visit my website for full links, other content, and more! ]]
Categories: Companies

The Good, The Bad and the Ugly of Scrum: Or Telling The Emperor He Has No Clothes

NetObjectives - Sat, 07/26/2014 - 22:28
I am about to head off to the Agile Conference in Orlando.  At these times I always think about the state of Agile and am usually disappointed when I think about what is possible and what actually is present.  Oh, I don’t mean “if only the industry would do what works” kind of thoughts, I’m more thinking “if only consultants would recognize what works and what doesn’t.”  I just started working...

[[ This is a content summary only. Visit my website for full links, other content, and more! ]]
Categories: Companies

An Open Letter to Executives Leading Agile Transformations

The Agile Management Blog - VersionOne - Sat, 07/26/2014 - 17:00

Dear Executive,

Let me congratulate you on your decision to introduce agile methods within your organization. It is a wise decision that holds incredible potential for your employees, your company, and especially your customers. If you are just beginning your improvement, or are yet to begin, the journey upon which you are about to embark is one that will be well worth the effort. And it will take effort—long, arduous, and at times frustrating effort.

Although Machiavellians do exist, my experience is that they are exceedingly rare.  In general, people are good, honest, and hard-working and really want to do the right thing. We hold a desire to do our jobs well, be recognized for it, and make a difference in the world by being part of something larger than ourselves; to have a purpose at work, if you will. To this end, we will do what is necessary to get our work done in the manner that our environment best supports. Put more simply, we will take the path of least resistance and complexity. Your move toward agility may be more challenging than necessary if you don’t keep this in mind while traversing your path toward improvement.

Rather than simply introducing and mandating agile methods such as ScrumeXtreme Programming (XP), and/or Kanban, create an organizational environment where agility is the path of least resistance for your employees and colleagues to get their work done. Here is a ten-step plan of action to help you create that environment within your organization.

  1. Stop referring to the change as organizational and/or agile transformation. We’ve all heard and understand the cliché that “change is the only constant.” Using phrases like agile transformation can shoot fear of the unknown into the psyche of everyone as it screams massive change. A less scary word is improvement. We all like to improve. Start talking about improving delivery, increasing customer engagement, and enhancing responsiveness to new challenges.
  2. Restructure your organization to reduce emphasis on functional specialization.One of the factors strongly contributing to the slow responsiveness of waterfall is the typical hand-off of work as it passes from the hands of one functional group to another—Business Analysts for requirements to Architects for design, to Developers for build, etc. Create teams that are cross-functional and require little to no hand-off of work. If so desired, create Centers of Excellence (CoE) organized around professional career ladders but remove reporting ties to any functional manager in the CoE.
  3. Start demonstrating the behavior you desire in your organization. One of the most powerful ways to build momentum is to first change yourself and your behavior. You really can’t force change within others, but you can inspire it. It’s amazing the change you’ll see in others when you first seek to change yourself. Actively seek ways you can serve the teams within your organization. With genuine curiuosity, caring, and empathy ask them what gives them headaches in their jobs. Be the aspirin for these headaches and remove the obstacles that are getting in their way. You might also consider working cross-functionally as a leadership team. Break down functional silos by creating teams that consist of representatives from many departments such as sales, marketing, IT, support, etc. The gears in any machine only work if cogs make contact and work collectively.
  4. For technology projects, refuse to move forward on any project without business representation and team involvement. Be uncompromising about beginning any project that does not have business representation. I was recently asked what I thought was the one thing that, if it did not exist, you could not consider yourself to be agile. This is that one thing—business involvement. If it’s not important enough to warrant business involvement, it’s not important enough to work on. Thank you, Samar Elatta, for this reminder because it’s so obvious it can easily be overlooked.
  5. Completely drop discussions of “resource allocation” and speak only of “team availability”. Agile is a team sport. The focus needs to shift from individuals to teams. Instead of identifying individuals within a functional specialty and percentage of availability to do work seek out only complete teams with availability. Also, don’t begin work with incomplete teams. Have all of the requisite skill sets available so you can avoid slowing them down with the burden that’s created to bring a new team member up to speed on the project.
  6. Increase your delivery cadence. The ideal situation is to be able to deliver at any time (or all the time, as in continuous). Take incremental steps toward this goal by reducing the delivery window by at least half. If you’re on a semi-annual (6-month) delivery cycle reduce it to quarterly. If it’s annual, reduce it to semi-annual; quarterly, release every six weeks. This will automatically require teams to focus on smaller increments of work instead of looking at very long horizon delivery windows that only serve to increase estimating complexity and uncertainty about scope of delivery.
  7. Give high praise for “complete” features only. The only features that provide customer value are those that are complete. Almost done features may have future value potential but they have zero value right now. Consider work either done or not done. There is no credit for work that is not 100% complete. Define expectations very clearly for what is meant by “complete”.
  8. Recognize entire teams. The best way to support teamwork is to value and recognize teamwork, especially in a public setting. Praise entire teams and avoid the temptation to call out individuals on the team that did an excellent job. While it’s true that some of them may well have went above and beyond, it’s dangerous to the cohesiveness of the team if you praise an individual. If you must mention names, mention the names of all individual members of the team. Only the team (those on the frontline of value delivery) has the credibility to recognize individual team members for their efforts.
  9. Don’t mandate a methodology at the team level. Rather than requiring teams to do Scrum, or any other methodology framework, put the ingredients in place for agility such as those described in points 1-8 above, provide and demonstrate your personal support and commitment to the removal of organizational obstacles and dysfunction, and stand out of the way. These people are professionals, they are smart, and are very capable. If not, why are they working in your organization? They will do what’s required to get the results expected of them, sometimes regardless of whether those results are even realistic. This is autonomy and is one of the incubators of the only form of motivation that is effective, intrinsic.
  10. Invest in your workforce and your teams and they will invest in you. I do not tolerate tales of woe about organizations experiencing a lack of worker loyalty when those same organizations refuse to invest in their workforce. When times get tough and the C-suite is getting pressure to show near-term stock price growth, drastic measures are taken to reduce costs. Unfortunately, these short-term measures such as workforce reductions, slashing benefits, and cutting investment in training usually have a negative long-term effect. Make decisions that will positively impact the long-term value of both your stock price and your organization (boths its viability and people). If you’ve created an unsustainable cost structure that requires drastic measures, then you obviously need to take some drastic measures. If you and your management team created it, admit it because your people probably already know it. They have great “BS” meters and will see right through any attempt you or your leadership team make at masking it. Demonstrating humanity through vulnerability and admitting personal fault may feel terrible but it will increase your credibility in the eyes of your constituents by orders of magnitude. If you create an environment that inspires workers to give their all, run a company that gives to the community, and demonstrates that it values its workforce by investing in them, you and your organization will have a much greater chance of competing in the marketplace for a long time to come.

I opened this letter by expressing my belief that people are generally good, honest, and want to do the right thing. I close this letter by restating that this belief I hold has only been reinforced through my personal interaction with a diverse group of colleagues throughout many organizations spanning a long career. I would like to affirm that this belief also extends to you, the organizational leader. I believe that you genuinely want to do the right thing, to contribute to something larger than yourself, and to support those around you to improve the quality of life for each of us.

With high confidence in your ability, personal desire, and integrity I urge you to create an environment within your organization that inspires those around you and that enables agility. The future of your organization is depending on it.

Categories: Companies

Scrum Knowledge Sharing

SpiraPlan is a agile project management system designed specifically for methodologies such as scrum, XP and Kanban.