Sunday, April 25, 2010

My Take Away from the Lean Software & Systems Conference 2010

Above All, Stay Open to New Ideas, Humble to the Current Limits of Our Knowledge, and Be Ready to Innovate, Absorbing Ideas from Other Bodies of Knowledge

I expected that when I went to lssc10 I would learn some interesting case studies, how tos, and general advice on how to implement various aspects of lean within the software delivery domain. Instead my primary take away, (and I think something that resonated with the entire conference) was a call to arms to move beyond the traditional lean metaphor and concepts taken from manufacturing, and to start opening our minds to other domains, other bodies of knowledge and other areas of expertise. Clearly leaders within the LSSC feel that we all have many more questions than answers, and that a open-minded, humble attitude is required to continue growing as community of practice and knowledge. A common feeling among everybody I met at the LSSC was that "our" brand of lean really represents an open ended philosophy, one that emphasizes intrinsic motivation, dedicated to building a measured but learning systems. You could almost see the thirst for new, provable knowledge among the attendees at the conference. I saw very little patience for dogma be it agile, lean, or otherwise, and was told by a couple to open my mind up a bit (thx siraju).

Many of the Ideas from Lean Are Toxic to Our Practice

danger 5

I think the keynote presentation on the 1st day says it all. Don Reinerstein started off by saying that lean is just the next peak of the mountain that we can see, and beyond that mountain lies something else. This point (IMHO) is that it was time to stop looking at lean as a source for all of our ideas and ways that we can improve our practice. According to Don, we are leaving a lot of great thinking on the table by being overreliant on the lean metaphor. He then went and listed all the kinds of lean principles that were actually toxic to a learning system.

  • Eliminating Variability- variability is essential to product development, you are always dealing with something new, if you have no variability you actually have no value
  • Eliminating Waste - an over focus on eliminating waste misses the point, idle time is one of the key areas that are of concern
  • 0 Failure-failure is actually a good thing in learning systems, as this is one the most information is generated, so we actually want ways of generating an appropriate ratio of failure to success, if we have too much of either the system is not generating enough information to properly learn
  • 100% Defect Prevention - preventing defects has a cost, we need to weigh that cost with defect fixing
  • Complete Customer value focus - the customer is not always the sole or return value, there are plenty of case studies where businesses have gone under because they provided more and more features to high-end customers, and ignored innovations. (In fact this is the key point of the innovators dilemma)
  • One Piece Flow - one piece flow doesn’t make sense for human systems passing information round, we need to balance transaction with holding costs

The Internet As a Metaphor for Human, Learning, Product Development Systems

neurons

What really caused the crowd to get excited, was when Don urged the crowd to consider another metaphor for distributed services/learning-based systems, the Internet. The Internet is a system that is of extremely high quality, deals with variability, and can scale quickly without problem. Don went to then describe how different aspects of the Internet could be used to model the next generation of knowledge work management systems

  • dynamic routing of work in progress based on congestion in the network, routing conditions are updated sometimes many times an hour
  • work in progress constraints are determined just-in-time, based on load, as capacity changes the system probes the network and adjusts; dropping packets and lowering wip as necessary
  • small batch sizes are used to raise speed, efficiency and quality, but some batching is also required
  • there is a balance between deciding the optimal route (upfront quality) and allowing the system to reject and resend failed packets (think test after)
  • throughput is managed by doing rate matching with the sender and receiver
  • resources are bound to problems at the last responsible moment

You could practically feel the electricity in the room as Don describe how a human network could emulate the Internet to predict a failure condition originating from too much work being introduced in the system, in response the system would immediately reduce allowable intake, in order to ensure maximum flow. I don’t think I was the only one in the room who’ s internal gear started shifting on how to actually design and run such a system. One algorithm Don suggested was to raise the acceptance criteria of any new projects within an enterprise portfolio as the enterprise portfolio got more and more full.

After getting everyone excited, Don then proceeded to pour water on the whole metaphor, the problem he stated, was with fungibility, i.e. in a human system resources are very tightly coupled to the kinds of work they are doing. In the Internet any node is equally capable of bearing work. For a human system, adding value to information requires very specific skills, a .net developer is not to be able to do much with an SAP problem.

Don encouraged all attendees at the lssc10 to start looking at other bodies of knowledge for the next generation of ideas that would inspire and take this community to the next level. These included:

  • queuing theory
  • os design
  • economics
  • traffic flow theor
  • maneuver warfare

Stop Drinking the Kool-Aid

Don’s finally urged all attendees to stop drinking the lean cool aid, and continue to look at multiple domains for synergies, patterns and practices that can help to dance the state of our practice.

While there are many other extremely powerful examples of this philosophy that was demonstrated throughout the conference, (I will talk about some of the other great aha moments in later posts) I certainly want to thank Don for perhaps one of the most inspiring professionally related presentations that I have attended. The more I get involved in the lean community, the less I feel that I know, and the more excited I get about increasing my understanding.

Saturday, April 24, 2010

Misadventures Of Trying to Apply Learnings from LSSC






After a great week of learning at the Lean Software Systems Conference I was eager to apply a key theme, intrinsic motivations trump extrinsic ones.

Our neighborhood was having a yearly clean up of our back alley way. And the local kids ( aged 5-7) had it in their mind that they wanted to play union, and were demanding more pay to continue helping, a strike was coming.

The kids parents started to offer incentives like ice cream and what nots, to properly motivate the troops. Inspired by one of the great talks at LSSC I immediately stepped in with a different approach.

I told the children that if they worked well I'd get them their own clean up tools with super hero stickers attached. This worked to great effect, the children started immediately going back to work with gusto. After an hour I set out to buy some kiddie tools and stickers as promised.

This is where the misadventure begins.
1)Because I was super busy over the last couple of weeks, doing too many things at once, i'd misplaced my bank card without replacing it the previous week.

2)Because I had no bank card, I couldn't get the kiddy tools I wanted for the kids. (the local dollar store didnt take mastercard)

3)I then borrowed my wife's bank card, but because I was in such a hurry, I didn't enter in the appropriate bankcard combination, which caused her bank card to be frozen.

4) Because it was saturday I couldn't get a new bank card even though I biked all over the city looking for an open branch.

5)Because I couldn't provide my workers with the reward of better tools which would actually get them to do more work, I went to the local toy store ( that took MasterCard) bought a bunch of action figures and provided my workers with an extrinsic reward which had the effect of making the workers happy, but all work also stopped as the kids went to play with their toys.

My lessons:
- the extrinsic reward was way more expensive, didn't encourage work over time, and actually stopped work for awhile.- properly providing an intrinsic reward requires just a little organization.
- Bad organization breeds extra work, which causes more bad organization, which causes more extra work
- Management needs to slow down, get organized, and focus on motivating workers, an investment is required, but the payoff is huge.
- It's time to start using things like managing work in progress, and slowing down to speed things up in my personal as well as professional life.

Friday, April 2, 2010

Marvel Superheroes and Kanban the Ultimate Crossover!




The Team Started off Using a Kanban Board...


There is a wealth of advice on how using concepts like a Kanban board will help teams to better manage software projects. The idea is that publicly wall sized boards (or other information radiators placed in an area that can be seen in use by the entire team) can be used to highlight and set limits on work in progress, limiting work to capacity, and allowing resources to focus on completing dedicated units of work with a limited amount of multitasking. The Kanban concept allows software development teams to start out using the Kanban board to represent an already existing software development process, one that the team is already familiar with, and gradually adopt more agile or not agile practices as necessary to address specific blocking issues. The idea is a simple one, let problems, typically manifested as blocked work, dictate what practices and methods are adopted by the team.

one approach to starting out with kanban is to develop a initial value stream for the delivery process. Often various team leads meet and conduct a preliminary value stream mapping exercise. A value stream maps allows everyone to get an idea of how value and work items would be completed and passed between different teams and competencies. Once complete the entire team can set up a Kanban board based on the value stream.


But Managing Work in Progress Can Still Be Exceedingly Difficult!


Despite best attempts, many teams just can't manage work in progress properly. Requirements work takes too long to get into the development funnel, development teams and the development team leads can constantly get interrupted by "emergency" request (which were being tracked on the board), specialists (like testers) are nowhere in sight, the development work in progress (WIP) overflows with technical based stories, and work clearly exceeds the WIP limit set for the team.


Clearly not all teams have the skills to make Kanban successful on their own, but what is the solution...


Marvel superheroes to the rescue...


The immediate solution isto replace the typical ho-hum avatars that are used to identify who is doing what kind of work on the kanban board with avatars based on the iconic members of the Marvel superheroes family. Clearly by using these avatars, one can magically imbue our team with all the necessary superpowers to support a delivery process characterized by a steady and constant flow, using a visible, pull based system, supported by the values of a grassroots, problem solving culture.


Marvel superheroes avatars



Choose the right avatars based on issues that your team is experiencing...


Almost any of the mighty Marvel avatars can bring immediate benefit to your project, it’s important to select the right ones and assign them to the right team key members depending on the issues that your team and project are experiencing. Here’s an example of some of the really useful superpowers that the mighty Marvel avatars can bring to your individual team members to better support flow, a steady cadence of delivery, and short cycle times.


Spider-man

Despite the best efforts of our team, work was still being pushed through the system in large, and uneven batches. Use good old Spidey to support the pulling of work. With the aid of his trusty web shooter, Spidey is able to pull work that is in the "ready" state from a previous processed queue. What makes assigning Spiderman to one of your team members even more powerful, is that your friendly neighborhood wall crawler is able to stick to doing work that is actually on the kanban board. When asked to do new work, emergency or otherwise, Spiderman makes sure that work is put onto the appropriate queue as dictated by the policies of the Kanban board (FIFO, high-priority, blocking issue, etc.). This ensures that the delivery of work is executed using a systematic set of rules.

Spiderman

Power man

When requirements just aren’t coming fast enough to feed the downstream development and testing team, assigning power man to one of your team members will give him the strength to literally beat the requirements out of your stake holders. Power man will also muscle everyone to use the kanban board with consistency. In all seriousness, power man’s thick, unbreakable skin allows him to tough it out when it looks tempting for the team to consider going back to the bad old ways of software delivery. Power man will help your team persevere by sticking to his guns and coaching the team so that they continuing to take the time necessary to develop the kanban board, and make sure that all work in progress is being tracked on the board, that the board is kept up-to-date, and that the team stays the course. The benefits of kanban take time to be realized, and only through patience and endurance can lower cycle times, better quality, and other improvements be realized.

Powerman



Galactus.

Galactus, known as the "Devourer of WIP", will empower your team consume any work in progress that is in excess of the limits put in place on the kanban board. Assigning Galactus to a member of your team team will remind them that work must be finished before new work is started. Galactus’ hunger for excess WIP is legendary, and teams must do their utmost to limit work in progress due to actual capacity of the team lest Galactus mercilessly consume any of this excess inventory leading to a complete waste of work.


Galactus



Rogue

Using kanban supports the use of highly specialized resources, and frees the teams from the agile dictate that everyone is responsible for everything. That being said one of the critical principles of kanban is that workers should focus on moving inventory through the entire process, rather than exclusively working within their own skill set. In other words, if a particular process is accumulating too much wip (e.g. testing) than the rest of the team should start helping testers with their work, rather than starting new work within their particular domain. Rogue is the ultimate pinch hitter, she’s able to absorb the super powers of workers from others competencies simply by working with Them, asking intelligent questions, and showing the initiative and willingness to learn from those around her. Rogue is not intimidated by doing work outside of her job description, she’s focused On the success of the entire product, not just a particular phase within a process.

Rogue


Mr. Fantastic


One of the biggest benefits of the Kanban board is that you can use simple metrics and measurements to quantitatively define how well your team is doing. Taking the time to measure the cycle time of all work, and the proportion of work that is categorized as technical, business value, or emergency, work introduced by defects versus new feature requests can give the team and management dramatic insight into what’s working, what’s not working, and where improvement efforts should be focused. Applying the Mr. Fantastic avatar to one of your team members, will ensure that your team takes the time to write the appropriate data on the kanban board. While individual members will always feel rushed to focus exclusively on the work, taking the time to make sure that all work is categorized according to the appropriate policy, and start dates and end dates are captured will provide a rich set of data that can show if the team is getting better at what it’s doing. Mr. fantastic is a master of taking this data and providing simple dashboards and cumulative flow diagrams that can give insight into which areas of the software delivery value stream is experiencing issues.
Mr. fantastic



There Are Many More Mighty Marvel Avatars to Help You Successfully Adopting Kanban on Your Project

The above is just a sampling of how the appropriate Marvel avatars can apply the right super powers necessary to applying the principles of lean software development and kanban to your project. Focusing on the work, short cycle times and a steady flow of progress has been shown to provide demonstrable improvements on software development projects. Combining kanban and Marvel superheroes is an excellent way to educate your team on the most effective use of the kanban board.

.