LitheSpeed : Lean & Agile
LitheBlog: Exploring Lean and Agile

Wednesday, June 30, 2010

CSM Training in sunny South Florida


So, it's summer and all roads this summer seem to be leading to Florida. We'll be partnering with SoftKey to deliver a Certified ScrumMaster (CSM) class on July 20-21, 2010 in Pembroke Pines in sunny South Florida.

Hope you can join us for the class! You can register here.

Tuesday, June 22, 2010

Special Discounts for LitheSpeed CSM Training and BizConf Conference


This August, LitheSpeed will be partnering with BizConf to deliver a Certified ScrumMaster course (CSM) on August 3-4, 2010 right before the conference. The conference is to be held on August 4-6, 2010. Both events will be held at the Ritz-Carlton, Amelia Island, North Florida.

If you'd like more information, including how to get a conference AND training discount, please contact Karen Falk at info@lithespeed.com. You can check out more details on the class here.

Here are the Top 5 reasons to join us for both the CSM class and the conference:

  1. Develop your skill in hands-on workshops led by experts
  2. Fewer attendees means you get more face time with speakers
  3. Build relationships with industry leaders
  4. Amazing Ritz-Carlton beachfront venue
  5. Make it a long weekend and enjoy all that Florida has to offer

Wednesday, June 9, 2010

Looking forward to AgilePalooza DC

Given the road warrior life of a consultant, presenting at home is always a distinct pleasure for me. Next week, Bob Payne and I will be presenting at Agile Palooza in the Washington, DC metro area. This is my first time at an Agile Palooza event, and I'm interested in seeing how the dual tracks work out: learning agility for newbies, and advancing agility for seasoned agilists. For the advanced folks, I'll be covering scaling agile up to the enterprise with agile portfolio management.

Version One is also offering a discount. From their announcement:

AgilePalooza is coming to the Washington, DC area June 18th!
Learn more and register at www.AgilePalooza.com/Washington2010.

Space is limited. Register now and save $20 with promo code VOne - that's only $69 for a full day agile conference including lunch!

What is it?
AgilePalooza is an agile community event taking place at the Tysons Corner Marriott. There are 2 tracks: Learning Agility and Advancing Agility. You get a full day of agile education from internationally recognized Agile coaches, trainers and industry leaders.

This event is about serious learning in a fun atmosphere.

Sunday, June 6, 2010

Kanban for Service Desks

We worked recently with a client who wanted to apply agile principles and practices to their help desk and networking operations teams. Below is a brief case study of the situation, the methods that we employed, and some of the results.

The Situation
There are two small teams, the help desk team and the network operations team, that work primarily in support functions. Each team has two kinds of work: some planned projects and a lot of unplanned support calls.

The help desk takes support calls for a huge variety of internal issues, everything from printers that need new toner cartridges, to email outages, to software upgrades and pc problems. The networking team supports the LAN, back-office hardware infrastructure, and software infrastructure. Planning and managing in these environments is extremely challenging due to the constantly changing issues, help requests, ever changing priorities, and lots of simultaneous efforts. No traditional plan would survive even a few hours in this environment.

In addition to the constant requests for support, these two teams have some traditional project work to deliver. Project examples might be email system upgrades, network upgrades, new hardware installs, etc. The project work needs to be estimated, budgeted, planned, and delivered like any project. Trying to deliver on project plans for the planned project work is highly difficult in this environment due to the interruptions coming from the constant support calls.

We had already helped the software development teams in this company move to agile/scrum processes and the management desired a similar approach for these two support teams.

Approaches

In a typical software development environment there is often a lot of planned development work combined with some unplanned support work. But here, the situation was reversed: a lot of unplannable support work with some planned project work. The idea of scrum with its time-boxed iterations didn’t seem like a natural fit. Help desk calls, network outages, etc don’t lend themselves naturally to well delineated, fixed-scope scrum iterations and a two-week delivery cycle on a network outage is nonsensical. While we probably could have made scrum work, we decided instead to take a kanban approach for these 2 teams.

What is Kanban?






Kanban transfers in even smaller buckets than scrum


In a traditional waterfall process, we use large batches and huge amounts of work-in-progress as the planning paradigm. We do all of the requirements elaboration, then all of the design, then all of the coding, then all of the testing. These huge batches typically take months to deliver.

Scrum uses much smaller sized buckets. In scrum, we break the transfer-batch size down to two-week chunks. We do a little bit of requirements analysis, a little bit of design, a little bit of development, and a little bit of testing in order to deliver a handful of features every few weeks. By reducing work-in-process (WIP) to these small 2-week sized buckets, we can greatly accelerate delivery of high priority features.

Kanban is yet a further step towards even smaller batch sizes and a move towards a more continuous flow. Kanban eliminates the whole idea of iterations or sprints. In kanban, like scrum, we work on highest priority items but when an item is done, we can deliver it immediately, sometimes within a day or even within hours! … very small buckets indeed! This seems like a perfect fit for help-desk and support work. Requests come in, we actively prioritize them, we focus on the highest priority items, and deliver fixes often within hours. Though continuous reprioritization and continuous delivery, we can create a highly responsive organization.

In scrum, we achieve fast delivery through short 2-week deadlines of fixed scope. So how do we ensure fast delivery in kanban? We use WIP limits instead. We leverage Little’s Law which says that cycle time is a function WIP. The more work-in-progress we have, the longer it takes to deliver any particular piece of work. If we want very fast delivery, we could have a WIP limit of 1 and ask that the whole team focus on only one help-desk ticket at a time. The result would probably be very fast delivery for this one item but a lot of help-desk tickets would go untouched. If we wanted to touch more help-desk tickets simultaneously, we could have a WIP limit of 20. This would mean that the team could focus on the highest priority 20 items at a time. In this scenario, 20 items would get some attention but overall delivery time would suffer since we are juggling so many simultaneous tasks. The trick in kanban, is to find a WIP limit that finds a balance between these two extremes.

Kanban doesn’t get into things like daily standups, retrospectives, etc so it is even less prescriptive than scrum. If you want some additional structure, you could borrow from both as we did.

Our Kanban Implementation
In the end, we decided upon a mixture of both scrum and kanban. We wanted the iteration-less, continuous flow nature of kanban but we needed some additional support mechanisms to facilitate communications and continuous improvement. Our resulting process utilized:
• Kanban with WIP limits of 8 (more of this later)
• Daily Standups (from scrum)
• Retrospectives (from scrum)
• Point estimates and Burndown charts for the planned project work (from scrum)
Or to put it another way, scrum without iterations.

Each team had 4 people on it and so we decided to try an initial WIP limit of 8 and this turned out to work pretty well. This means that each person could be working at most 2 items at a time. If one item was blocked for some reason, there was another item that each person could work on. The job of team leadership was to take all of the support requests each day and prioritize them into the top 8 items.

We enforced the WIP limit through our planning board. Our planning board has a column called EXECUTING that has a limit of 8. So no more than 8 cards can be present in this column at any one time.



















Only a few items in EXECUTING but a lot in DONE!


Team members would meet each morning for a daily standup, review the priorities, and determine who is going to work on what. Periodically, we have retrospectives to see how the team is doing and where we can make improvements.

Realizations
First we set up a simple tracking board that had columns for backlog, WIP, and Done. We then asked the team to put all of the current work up on the wall. What we noticed was that there was a huge amount of work in WIP and only a few items in Done. Our goal was to turn that around. We instituted the WIP limit of 8 and within a few days, we had our WIP down to our target of 8 and we had many more items in Done! By limiting our WIP and focusing on the highest priority items, we were able to get much more work to an actual done state. And since these were the highest priority support items, we knew that we were delivering the most impactful work.

Working this way, we noticed that our team leadership needed to be more proactive about reviewing the work and assigning clear priorities. This became one of their primary functions. Daily standups have resulted in better visibility and cross-team communication, which the team has found valuable.

Finally, with this visual system in place, we noticed that our project work was falling behind. For actual planned projects such as email upgrades or hardware installs, we did typical scrum point estimates and release burndown charts. Tasks related to these projects were intermingled with the support tasks so that if there were no high-priority support-tasks, the team could focus on project work. After a few weeks, it was apparent that our project work was getting short-changed. So much time was going into support calls that there was little time left for the more strategic project work. While we had a lot of unplanned work in the Done column, and we were delivering outstanding support to our user community, our project burndowns showed that we were behind schedule for our planned projects. In other words, support work velocity was outstanding but project work velocity was falling short. Clearly, user support work was taking priority over more strategic projects. While we knew that this was probably the case, the board combined with the burndowns highlighted this problem clearly and showed quantitatively, how far we were behind on project work.

Next Steps

The obvious next step was to institute swim-lanes for the 2 kinds of work; planned project work and unplanned support work. We can keep the WIP limit of 8 since that is working well but divide it up into 2 parts. We can have a WIP limit of 6 for unplanned support work and a WIP limit of 2 for the planned project work. This means that we should always have 2 planned project tasks being executed at any particular time and this should allow us to start to make headway on the planned project work. Through experimentation with these 2 WIP limits, we can find a balance between delivering outstanding service and and delivering on the longer term strategic projects.

Team Feedback
Feedack from the team and management has been positive. The team reports having an improved system for managing support work, better visibility, and better clarity on priorities and WIP. Kanban is a deceptively simple but powerful system for visualizing and managing work. WIP limits force prioritization, focus, and delivery with minimal process overhead and high degrees of responsiveness. The kanban system has been a very natural way for these support teams to work that doesn't impose too much process overhead while still giving sufficient structure and visibility to managing the ever-changing priorities that are the nature of support work.

Saturday, May 15, 2010

APLN Board Update

It's been a pleasure for me to get involved with the Agile Project Leadership Network (APLN) after a hiatus of a few years. Several APLN chapters are doing well, and growing quite bit. The Houston and Bay APLN Chapters in particular seem to have the "secret sauce" in this area.

Some years ago, the APLN was setup as a network of chapters where agile leaders could connect, engage and learn from each other, and from experts in various agile disciplines. This year the APLN Board is emphasizing enterprise agility with a focus on agile leadership; the new vision statement is: Accelerate Agility: Connect and Engage to Transform your Enterprise.

Here's a Board update from co-presidents Jim Highsmith and Julie Chickering: http://www.apln.org/profiles/blogs/apln-board-update. Make sure you check it out at the APLN's spanking new Ning site: http://www.apln.org. Of course, no discussion about the APLN is complete without mentioning the Declaration of Interdependence.

Monday, May 10, 2010

Innovation Games® comes to Houston, TX

The Innovation Games® technique is growing in popularity in the agile community as a way to improve business performance through collaborative and cooperative play. Pioneered by Luke Hohmann over the years, other experts are now offering Innovation Games training in various venues.

If you're in the Houston, TX area, or can make it there easily, don't miss Derek Wade's upcoming Innovation Games for Agile Teams workshop on May 18, 2010. Derek is a fellow APLN board member, and an accomplished team coach and trainer.




Saturday, April 24, 2010

Gantt Charts for Agile?
By David Bulkin

Gantt Charts are commonly used to visually represent dependencies and progress against milestones and activities.  They are often viewed as symptomatic of a top down, plan driven, control environment, and as such, they are looked at despairingly in the agile community.  Although being called a GanttHead is an insult to an agile practitioner, I propose that agile initiatives can often benefit from traditional Gantt Charts.

Top Down Plan Etched in Stone

The use of Gantt Charts on software projects is a sorry history of creating a schedule, etching it in stone and then trying to bend reality to match an outdated schedule.  No wonder the agile community hates Gantt Charts.  But, there are times where a larger project, that includes agile software development as one component, can benefit from the use of Gantt Charts.

Example A: Developing and Delivering Training for a Large Call Center

Let’s assume your team is developing software for use by a large contact center (historically known as call centers).  The call center uses your software to respond to prospect and customer questions on IRA’s and other personally funded retirement accounts.  The contact center is incredibly busy from late January to late April (e.g. during the US Tax Season).  During this time the staff works 60+ hour weeks.

Your team is doing the software development, but you are also going to be training the call center staff.  There are a 150 of them, and you need to plan the training, several months in advance, to coincide with off-peak season, when most of the staff is working part time.  The manuals need to be printed and delivered, the training rooms must be arranged, and the staff must be available during the heavy vacation period of the summer.

Common sense tells us that a traditional Gantt Chart, with clearly defined dependencies and dates, works well as a way to communicate among the various parties involved, track progress, and address changes in plan. 

Example B: Rolling out new Laptops to a Distributed Sales Force on Your CRM Initiative

As another example, perhaps you are on a team delivering a new CRM Platform to your sales force.  This sales force is distributed, but members of the sales team generally come into one of 12 regional offices once every couple of weeks.  As part of the rollout you are upgrading the laptops for all 325 members of the sales force.  There are some complexities, so you need to first choose a hardware / software platform that supports a handful of legacy applications that are in use, while meeting security standards, and then roll them out to the sales team.

Once again a traditional Gantt Chart, with clearly defined dependencies and dates, works well as a way to communicate among the various parties involved to track progress, and address changes in plan for this example.

In Closing: GanttCharts can be Beautiful

Gantt Charts make sense when you have to schedule date driven events, with true finish to start relationships (such as finishing training material before printing it).

I don’t propose that you use Gantt Charts to replace your card wall or your agile lifecycle management tool, I do propose that some of your work can benefit from a traditional approach of laying out dependencies and time lines visually to support planning, communication and making adjustments to schedules.


So, in closing, perhaps GanttHeads can be beautiful, and right!