" "

Heroes Are Just Alright With Me

 

Sometimes heroes get things done

It's three o-clock in the morning and you’re awakened by the unwelcome beep of a text message. You don't even have to look at your phone to know what it’s about. Good news always sleeps ‘till noon, as the saying goes, and so you surmise (quite rightly) that somewhere - somehow - something’s gone wrong with the servers and the site is down. Your business is based entirely on global eCommerce. Every minute the site is down customers are annoyed and sales are lost.

You stumble out of bed and make your way to your office downstairs. Your wife sleepily yet pointedly reminds you on your way out that this is the fourth time this month. This is not news to you. And to be honest, her count may even be on the conservative side. For months now, the site has been springing leaks on a weekly basis. The team is disgruntled. Some have left, while the ones who’ve remained are feeling powerless. The issues are too numerous. They simply can't keep up.

You get into your office, boot up your laptop and find two team members chatting about the problem. Dave has already isolated it, and is in the midst of fixing it. That indicates it's a problem with the fulfillment system. Dave knows his way through that code better than anyone. If it were a problem with search, Ryan would be all over it. If it were with transaction processing, Mei would take care of it. As for the other parts of the site, well, they don't break.

For now.

The six other team members no longer bother responding to pre-dawn texts. They assume (quite rightly) that whatever problem’s presented itself relates to one of the three typically problematic systems, and that one of the three aforementioned “heroes” will take care of it.

As the team lead, you just have to wake up and be present – but the heroes will get the job done. Soon it's just you and Dave in IM, though you're not even talking. Then Dave types, “Try it now.”

You run through a quick perhaps even haphazard battery of tests, and everything looks fine. You know Dave’s fixes work.

You close your laptop, and go back to bed.

The next morning at work, everyone’s busy fixing bugs. No one even mentions the problems that arose in the middle of the night. This is the status quo.

~

While it may seem depressing, many on-line businesses will find this scenario familiar. It is not an edge or extreme case. When teams create complex software and a lot of hastily released code, they end up with something called “technical debt.” In essence, technical debt is releasing something (and it can be anything -  from software, to a car, to food in a restaurant) that can work most of the time, but is likely to be returned.

When teams release software with a lot of technical debt, a few things happen. First, the team becomes unhappy, knowing that they've released a questionable product and that bugs are going to come back. Second, if the bugs are numerous and severe (causing outages like those in the story) heroes show up to save the day.

Heroes tend to be armed with razor sharp, double-edged swords.

The Edge that Solves

On one edge, they quickly cut through to the heart of the problem: they fix the code, and get the site up and running. While that's wonderful and everyone can be is relieved for the moment, it’s just that - for the moment.

The Edge that Cuts

The second edge of that sword cuts into the team. While the hero gets the site up and running, no one knows what he did or why. His code was never vetted, tested, or“refactored” (a fancy word coders use for “edited”). So in the end, the hero has created undocumented code that no one else can go back and work with. Every time the hero touches the system, they fix the symptom (the outage) and exacerbate the problem (technical debt).

That's not optimal, and everyone knows it. But frequently organizations suffer from so much technical debt that focus is placed on putting out fires at the expense of creating value. More fires equate to more undocumented code. More undocumented code makes it more difficult to fix the root causes of the problem. If the root cause remains, we continue spending time and money responding to it.

In Agile, we've declared hero culture to be a detriment because it creates and perpetuates technical debt and introduces inefficiencies. The Agile solution to team heroes is to cross-train – to make sure that many people on the team have the capability to fix the code. That solution is backed up with coding standards, unit tests, and other practices designed to avoid sloppy code and remove the need for heroes in the first place.

So, we have our solution. Simple! But wait - what about all the technical debt that remains? We still have heroes. We still have not found our coding nirvana.

Why?

Because coding is inherently messy, and it always will be. If it weren't messy, it would be automatically generated by software writing software. If it weren't messy, coders would make $35 an hour. If it weren't messy, we wouldn't need Agile to begin with.

So, technical debt is a fact of life. Heroes are a fact of life.

Should they be?

Nope.

So let's think about this a minute.

We have a group who knows their product. We  have individuals on the team who have hyper-specialized in response to the reality of the system. We have a system that is breaking often and requiring emergency repairs.

Many Agile coaches would put systems into place that removed the heroes from their stations and cross-trained others in the group. Is that the right solution? Maybe.

Maybe not.

The other people on the team are overworked just keeping up with all the technical debt hitting them in the face. Catastrophic failures currently require immediate intervention by someone with specific knowledge. Every minute is worth millions of dollars. This is NOTnot the time for cross-training.

It's hero time.

So, in a traditional system, the hero's tasks would be lost in the shuffle. The code enters the system, patches the problem, and people go on about their work. That's not good either. Hero time cannot be blind-faith time.

But what if we're using a kanban on this team. For the non-heroes, we have a simple value stream of:

Hero Work Flow

And that works fine, because those coders are doing things by the book. Their code has unit tests, it meets coding standards, they are pairing, have code reviews, and so on. The legitimately generated new code has ample safeguards for quality.

The heroes, however, are responding to a threat-in-progress. Their task is to code it and forget it; get the site up and running at all costs. To make matters worse, these heroes are brilliant problem solvers. This means that their code is not only undocumented, it's completely confusing to read. It works, but no one can tell how it works. They saved the day, but left this nugget of ingenious-yet-impenetrable code gristle for people to chew on later.

At the time though, and this is important, they successfully got the system up and running immediately. They routinely save the company from ruin. And that's a good thing.

So let's rationally solve this problem. Let them be heroes, but give them a different value stream that gets the fix in and then responsibly refactors and integrates that fix with the rest of the system.

The new hero-embracing value stream might look like this:

Hero Work Flow

So we extend our hero metaphor a bit with some familiar characteristics.

  1. Above The Law: The hero is uniquely gifted with the ability to release production code without any testing. The goal for the hero, when invoked, is to fix the problem and get the system running asap, no questions asked.
  2. Jimmy Olsen is Needed: Immediately upon release, the hero teams with a normal human being to refactor their genius code into something that is maintainable, readable, and avoids future technical debt.
  3. Bat Caves & Arctic Fortresses: Heroes need to be introspective. “With great power comes great responsibility,” says the Batman. After a situation where a hero action is invoked, the team or even part of the team should meet and discuss the issue, why it happened, and how to strike at its root cause and ensure it does not reoccur. This gives the crime fighter the ability to stop the next crime before it starts - really taking advantage of their gifts.

Number 1 in this list ensures that mission-critical problems are dealt with immediately and decisively. Number 2 ensures that the hack is not the final solution. Number 3 ensures that the team learns and quickly sets out to improve the system to avoid future calls to the hero.

Ultimately, we'd like to build systems with no technical debt. Our processes are, of course, aimed at that lofty goal. But like it or not, we do have emergencies that necessitate rapid fixes. We have but two choices – boldly stand up and face reality, or continue to solve technical debt with more technical debt until the software implodes.

Which do you choose?

("Superhero Down-Time" Photo by Jason Stanley)

Spechetti

No Flow = No Profit

When coders have crazy unreadable code its referred to as “spaghetti code.” Single strands of code are impossible to trace through the tangled masses coders can weave. When this happens, it becomes incredibly difficult to understand the original intent of the code, the order in which changes were made, and how to go about making things better. This creates something known as “technical debt”. As time goes on, the difficulty in interpreting the code makes it time consuming and expensive to expand upon or to fix bugs.

It strikes me that this is very similar to the specifications that I have seen through the years. At project conception, one person might sit down and write a spec. Between conception and the start of coding, any number of people might edit that spec, introducing, editing, or removing features from the project. As the project begins and progresses, the spec is altered even more. Change orders occur. Off-line detailed conversations are hastily added to the spec or worse yet, included as an addendum. Soon we have spechetti - a document that has been through the hands of many, with differing intents, reflecting dozens of unrecorded conversations.

Spechetti creates a type of “legal debt.” Teams are required to satisfy difficult-to-decipher legal code that can be easily interpreted differently by others. Conflicts grow as interpretations diverge. Interpretations diverge the more granular (and difficult to find) operational clarity is in the spec. This makes the product time consuming and expensive to finalize.

The goal for projects should therefore not be to create a comprehensive spec that can be argued about at completion, but to create a legal and management system that actually drives agreement, clarity, and good business decisions while the project is in-flight. To do this, emphasis is placed on contracting for operational imperatives and not implementation specifics.

Existing contracting mechanisms create legal debt as a matter of course. We need a new kind of collaborative, non-punitive contracting system that replaces mounting legal debt with a mechanism that actually creates social, creative, and business capital.

Well, that sounds easy doesn’t it?

Tune in next time for what will kick off a series on Agile Contracting.

Jim Benson Speaking at Oredev in Malmo, Sweden, 2010

Jim spoke at Oredev in Malmo, Sweden, in November 2010 on The Psychology of Kanban and Personal Kanban and the Individual Coder. Click on the links below to see the video. Clarity Means Completion: The Psychology of Kanban:

Clarity Means Completion: The Psychology of Kanban - Jim Benson

Personal Kanban and the Individual Coder: Personal Kanban: Optimizing the Individual Coder - Jim Benson

Working with the United Nations

Over the last six months, Modus Cooperandi has had the good fortune to participate in three United Nations projects. The UN's missions lend themselves well not only to collaborative management, but to lean and social media, too. While the UN will be quick to admit they aren't early adopters of the last two methods, they are nevertheless appreciative of the power of lean and social media, and are ready to begin implementing them in earnest. It's been exciting and rewarding to watch, and we feel privileged to be a part of this work. Our three projects so far have been:

Collaboration eLearning Packages

UN Food and Agricultural Organization - Rome, Italy

Modus Cooperandi worked with a team of 20+ authors, editors, and eLearning specialists to build a comprehensive set of lessons around collaboration, community, and team building. Jim and Tonianne helped devise a group writing system using a variety of online tools to facilitate communication and collaboration. Additionally, we were principle authors on three sections of the eLearning package itself. Once complete, the system will be translated into six languages, and made available to UN staff and those interested worldwide.

OzonAction's 2010 Social Media Plan

United Nations Environmental Programme, OzonAction Unit - Paris, France

OzonAction is the UNEP's group which, with the ambitious goal date of 2010, helped phase out the manufacturing of ozone depleting substances (ODS) such as chlorofluorocarbons (CFCs). Now, in its second phase, two additional ozone-depleting chemicals are on the chopping block: hydrofluorocarbons (HFCs) and MethylBromide. While OzonAction could certainly use their existing and successful methods to meet their deadline for the removal of these two compounds, they've chosen to incorporate social media to eradicate them ahead of schedule. Their success in the past has not made them complacent, and Modus Cooperandi is helping to create a social media plan that will provide the organization with actionable steps that won't overtax their budget or their staff. The goal here is to provide the maximum benefit for OzonAction without getting caught up in the fads or hype of the social media movement.  OzonAction's goals are serious, and so their use of social media should be directed in a way to reflect that sense of gravitas.

2010 Human Development Report for Vietnam

United Nations Development Programme - Hanoi, Vietnam

Over the past two decades, with the rise of globalization, Vietnam has experienced unprecedented economic growth. With one of the fastest-growing economies in the world, Vietnam has graduated to a mid-tier economic power. For this nation in transition, the current global economic downturn has left Vietnam with both options and opportunities. Countries in the United Nations need to provide a Human Development Report (HDR) to guide policy and funding both internally and externally. In many cases, the HDR can be several years between issues, and Vietnam is no different. For this project, UNDP and the Vietnam Academy of Social Sciences (VASS) have gathered researchers and scientists from several different agencies within and outside Vietnam to create the HDR. The goal of this project is to have a full-fledge HDR, with detailed and directed recommendations, ready for the Vietnamese General Congress in October. Modus Cooperandi is facilitating this effort by implementing a collaborative management system, coaching researchers on collaboration as the document is authored. Rather than merely having a document constructed of distinct sections authored by independent researchers, the goal here is to bring all the researchers together and inform the sections with one voice, and in real-time. This should result in an end-product that makes consistent points throughout, as opposed to individual points in each section. Recommendations will then be bolstered by coherent arguments threaded throughout the entire document.

iKan - Personal Kanban for the iPhone - Launches

You asked for it, and we listened. Today we are proud to announce the launch of the first Personal Kanban iPhone app, iKan.

When we set out to build it, we decided to focus on a few key things:

1. Small Screen Many Tasks -  We wanted to make the best use of the screen real estate on the iPhone, so we built the app vertically.

2. KISS - We wanted the initial release to be extremely basic. In future updates we will respond to YOUR needs, and additional features will be based on YOUR input. So please keep us posted as to the direction you'd like to see iKan take. We already have a long list of upgrades in our pipeline, but are primarily interested in how you are actually using the app.

3. Use Your Data - Integration with other popular time- and backlog-management tools. In the first version, we have importation from Zen.  (But we can only import your data). If you import a project from Zen, you will bring that project's value stream with it.

4. Start with Basics then Build to Suit - Each iKan starts with an entry-level Personal Kanban value stream with Ready / Doing / Done sections. You can however, create your own column headings and set your own WIP limits.

In the coming weeks, we'll have a series of short tutorial videos for iKan - so stay tuned!

Special thanks to Jeremy Lightsmith, Gary Bernhardt and Corey Ladas who were all vital in making iKan a reality.

Get your copy of iKan at the iTunes Store.

For more information on Personal Kanban, see the Personal Kanban web site.

Jim Benson on 3 Podcasts Talking Lean and Personal Kanban

Conversation Creates Knowledge Over the last few months, I've had the good fortune to be a featured guest on three different podcasts discussing Personal Kanban. In the Yi-Tan calls, we discussed Personal Kanban and Personal Kanban for teams. In the Social Media Breakfast Seattle Podcast, we explored the relationships between Lean thinking and social media. Of course, Personal Kanban comes up there as well.

Yi-Tan Call #261 - Personal Kanban With Jerry Michalski's group, I discuss Personal Kanban, how it started, and how it works.

Yi-Tan Call #268 - Personal Kanban for Teams Again with Jerry's virtual roundtable, I discuss how Personal Kanban and other kanban applications work for teams, groups, and organizations.

For Social Media Breakfast Seattle Lean Management and the CIA Heidi Miller interviews me about lean management, social media, Personal Kanban, and what's happening in the Intelligence Community.

Later this month I'll be featured on the Business 901 podcast, talking even more about Personal Kanban, but this time interviewed by Joe Dager, who focuses on marketing and lean principles.

Jim Benson to Speak Feb 2, 2010 at SeaSPIN on Personal Kanban and Software Development

Tonight Jim Benson will be Speaking at SeaSpin. This talk goes through a project his team did in early 2007 that used a hybrid XP / Personal Kanban approach to managing a widely distributed team and what they learned in "the early days." Here is the write up from the SeaSPIN site.

February 2 Meeting

Construx Software, 10900 NE 8th St Suite 1350, Bellevue, WA

Food & networking from 5:45 to 6:45 (pizza, salad, soda ) Announcements from 6:45 to 6:55 Presentation from 6:55 to 7:55 Doors close at 8:30

Personal Kanban and Kanban for Distributed Teams presented by Jim Benson

Kanban is rapidly gaining popularity in software development. How are teams and programmers migrating from straight agile to Kanban, or to hybrids like Scrumban or Scrow? How has this worked in the past? How do distributed teams make this more challenging? How can managers and teams best apply these new methodologies?

Jim Benson describes introducing both Agile and Kanban to development teams, focusing on a team he led in 2007 which built a complex transportation management prototype using nascent technologies and a team of cowboys – none of whom had used agile or been particularly collaborative before. How did he do this?

The answer: Subversion!

Let Jim take you on a journey of mystery and intrigue as he tells you how he fooled a bunch of programming malcontents into being a Lean, collaborative, highly effective work force.  It’s like the A-Team, but with Skype.

Supercharge People, Teams and Organizations.

If you've optimized your team, but not your people, you're not really optimized. At Modus Cooperandi, we work with individuals, teams and the organization to make sure that everyone is communicating and working effectively. We use:

  • Personal Kanban - for individuals and teams
  • Agile Practices - for teams
  • Lean Methods - for teams and organizations

We focus on coaching at the individual, team and organizational levels to create sustainable and competitive teams.

Collaborating with the United Nation's Food and Agriculture Organization (FAO)

The Food and Agricultural Office of the United Nations (Photo by FAO) Modus Cooperandi has begun a project to help the UN's Food and Agriculture Organization (FAO) create on-line training courses in distributed collaboration.  Modus joins thought leaders and experts from around the world in building a curriculum that will help workers from FAO and other organizations collaborate from a distance.  The project's aim is to provide knowledge of patterns, practices and tools that facilitate distributed collaboration and knowledge sharing - making remote locations no longer isolated , and providing expertise more quickly and at much lower cost. The resulting materials will be made available in seven languages and is scheduled for public use by the Summer of 2010.

InfoPak 2 - Personal Kanban 101: How to Build Your First Personal Kanban

View more presentations from Jim Benson.

Modus Cooperandi is pleased to announce the release of its second Personal Kanban InfoPak. In Personal Kanban 101: Achieving Focus & Clarity with Your First Personal Kanban we discuss the essentials for getting your board started. Topics addressed include how to establish value stream, backlog and WIP, and why there are only two hard rules to implementing this productivity tool.

As always, please feel free to download, distribute, comment and let us know what you think.

Personal Kanban at the World Bank: Modus Cooperandi Info Pak 1 Released

This is the first in a series of Modus Cooperandi's InfoPaks. They are downloadable, and work like a narrative whitepaper. Think of them like graphic novels for business.

In InfoPak One: Personal Kanban at the World Bank, we discuss the experience we had leading a rapid development project at the World Bank, specifically, how visual controls work with small groups, and why they are preferable to traditional team management.

This InfoPak is best read by clicking the “Full” button above. It’s also designed to be downloaded to distribute to others. Over the next few weeks, we will post more InfoPaks on Personal Kanban. Please feel free to comment and let us know what you think.

Gov 2.0 University Launches in Washington, DC

JimBenson_01 Sep. 16 07.52 Gov 2.0 University begins on September 29th & 30th at LMI in Tyson's Corner, Virginia.  Modus Cooperandi has been working with Hinchcliffe & Company and LMI to create a cutting-edge curriculum that focuses on how to employ 2.0 technologies, patterns, and practices. Courses are already scheduled into 2010. The university includes personal briefings for high ranking officials, two day managers' seminars, and five day practitioner courses.

Personal Kanban and the World Bank

World Bank in Washington DC Modus Cooperandi is excited to announce our upcoming personal kanban project, where we will use our Personal Kanban techniques in a directed exercise with knowledge workers from around the world.  From the 21st through the 25th of September, Jim Benson and Tonianne DeMaria Barry will be working with The World Agroforestry Centre and the World Bank to lead their Capacity Building Program on the Opportunity Costs of Reducing Emissions from Deforestation and Land Use Change (OpCost) Writeshop, at the World Bank Institute in Washington D.C. The intent of this directed exercise is to create a comprehensive technical document. As small working groups and as a unified team, participants will use personal kanban to maintain project coherence and track completion. The project is expected to achieve rapid release of a highly technical product by knowledge workers from around the world.  The multi-lingual, multi-disciplinary group will benefit from personal kanban's visual controls and work flow.

We will be blogging and tweeting about the event as it unfolds.

Photo: Brixton

Jim Benson to Teach Enterprise 2.0 in Zurich - Nov 2, 2009

Enterprise 2.0 in Zurich On the 2nd of November, 2009, Jim Benson will be teaching Enterprise 2.0 as part of Somesso's Leveraging Corporate Social Media in the Finance Sector event in Zurich, Switzerland. The Enterprise 2.0 track is part of our on-going strategic partnership with Dion Hinchcliffe and Web 2.0 University.  Using Dion's courseware, Jim will be teaming with a German counterpart to tailor the materials to the European financial community.

Photo: BeatKüng