Archive

Archive for the ‘Lean’ Category

Joining the community of thinkers

January 28th, 2010

I am a member of a community of thinkers.

I believe that communities exist as homes for professionals to learn, teach, and reflect on their work.

I challenge each community in the software industry to:

* reflect and honor the practitioners who make its existence possible;
* provide an excellent experience for its members;
* support the excellent experience its members provide for their clients and colleagues in all aspects of their professional interactions;
* exemplify, as a body, the professional and humane behavior of its members;
* engage and collaborate within and across communities through respectful exploration of diverse and divergent insights;
* embrace newcomers to the community openly and to celebrate ongoing journeys; and
* thrive on the sustained health of the community and its members through continual reflection and improvement.

I believe that leaders builders in each community have a responsibility to exhibit these behaviors, and that people who exhibit these behaviors will become leaders the community’s builders.

I am a member of a community of thinkers. If I should happen to be a catalyst more than others, I consider that a tribute to those who have inspired me.

Creative Commons License

”A community of thinkers” by Liz Keogh, Eric Willeke and Jean Tabaka is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

  • Share/Bookmark

Aaron Agile, Lean

Kanban is the Agile way of saying “Phase Gate”

November 12th, 2009

So that we can easily find ways to constantly improve while collaborating effectively and sustainably, I like kanban as a tool which shows what constrains transforming concepts into cash. I believe it allows us to see the whole system and our part in what to do to help in the transformation of the system into a better one and our ideas in to innovation. It seems to me there would be greater benefits for all involved.

For software a kanban tool must be highly visible, with a policy to strictly limit work in progress and a policy to only accept work when there’s capacity. To be effective, it requires consensus on these policies from the people involved.

Kanban is a Lean way of saying, “I trust and respect you”.

  • Share/Bookmark

Aaron Agile, Kanban, Lean

Obstacle, Begone!

January 22nd, 2009

If you track them electronically, some of the process changes, as many APLM tools allow for issue tracking. Hopefully, the intent and result still make sense.

Blocker Board
Always preferring high-touch and visible information radiators to track items, I tend to make a physical blocker board for teams I work with. Why do I call it a “Blocker Board”? It alliterates. I am finding it to be a problem to call it this. Perhaps I should change it to an “Obstacle Catcher”, or something that doesn’t make people think the sky is falling, just that we’re hunting for the system constraint.

Reviewing obstacles
Hopefully the obstacles are being removed quickly, and reviewing all obstacles identified during stand up lets the team verify the ones which have been removed. Having the requestor on the card lets that person verify the obstacle is gone. For the new one’s added, adding the day’s date, lets the team understand how long it took to remove, when verifying with the requestor. This review also gives a moment for people to think if they know (or want to admit to) another obstacle in the team’s way.

Obstacles are non-debatable
Having a working agreement that nobody can debate when someone states the fact they know of an obstacle helps ensure people feel comfortable bringing things up. If it is pushed off as, “not really an obstacle” or, “not an obstacle yet” can be very deflating to someone and cause them to resent mentioning it. Even if the requestor does convince others and writes it up, they may feel apprehensive that it will truly be removed.

Obstacles must be removed immediately
Having another working agreement that everyone should endeavor to get obstacles out of the way immediately, helps the morale of the team. Obviously, this allows the team to be as productive as possible. Removing obstacles immediately builds trust within the team and with management, increasing the camaraderie and expanding the notion of who is on the team. Immediate removal motivates the team, increasing respect by dealing with issues brought forth, without questions asked.

Avoid assigning owners and due-dates
Some obstacles take some time to be removed, even when endeavoring to have them gone by the next day. Assigning owners and due dates is a threatening stance. This is doubly true if obstacles are shot down as really existing when initially mentioned. Assigning one owner, especially at stand up in front of the team, implicit blame is laid on this person for having a problem. The date can only be a guess, and is now given under duress, if it is also in front of everyone. Date assignment allows the person to procrastinate on it, or use it as political leverage. It is stating that the team is fine allowing an obstacle to exist, and slow down the system. For political leverage, it is saying that I will not remove this obstacle, until you do something on my behalf. With the date being a guess, what happens when it comes up and the obstacle is still around? How much are you allowing someone to “game the system”? Assigning owner and due-date erode the sense of team and of collaboration. Avoid this, no matter how much you may feel it is the right thing to do.

If all else fails, prioritize obstacles
When the rate of obstacle removal is less than the rate of obstacle identification, there is yet another obstacle in the way. It might be incredibly difficult to find. In the mean time, prioritizing the ones that are identified helps find the greatest one for the most people. This may be close to, or a symptom of, the system constraint.

Finding the system constraint
Somewhere in the system, there is a very large obstacle, causing a bottleneck that could potentially be jeopardizing success, destroying morale and causing most of the stress. This is the team’s most significant impediment. This constricted area is the system constraint, and is where work passes through at the slowest rate. Having the practice in place of including the date added shows which ones have been around the longest, pointing the way. Agreeing to remove them immediately adds to the significance of obstacles that won’t go away. Prioritizing obstacles will also help identify symptoms of this constraint, and maybe even the constraint itself. Adding the requestor allows the organization to recognize the person who found this constraint, and reward them along with those who removed it, for helping to bring the team to a greater level of performance.

Removing the system constraint
Theory of Constraints explains it thus:

  1. Find the system constraint
  2. Elevate it (highest priority)
  3. Subordinate everything else (nothing is more important)
  4. Exploit the constraint (get rid of it for now and forever)
  5. See step 1

Eventually, the largest obstacle which cannot be removed is found. Keeping this part of the system on a regular cadence and knowing it cannot go faster, makes it the heartbeat of the organization.

  • Share/Bookmark

Aaron Agile, Kanban, Lean, Scrum

Agile Reading List

October 30th, 2008

It’s a rather long list on Amazon.

http://icanhaz.com/AgileForSoftwareDevelopmentOrganizations

Sorted by fundamentals, then technical, some management and enterprise in there, too.

What would you like to see added to it?

  • Share/Bookmark

Aaron Agile, Lean, List, Scrum

Whole Team Incentives – Redeeming Features for Rewards

August 24th, 2008

After VYC2.0 launched, I was asked who were the heroes in the group. The one or two people who deserved recognition for all of their hard work. I was hunting around for the email chain, but I’m pretty diligent about deleting emails. I wish sometimes I wasn’t so relentless at that, but I don’t have it. Essentially, I responded that calling out a couple of people creates competition, that everyone stepped up and deserves to be recognized. Management agreed, and everyone involved wound up with a Flip, and I was asked how we may be able to codify some whole team incentive.

My answer was pretty short in coming, as I have wanted to establish the proposed incentive program written about in the ground rules for one team I was working with doing kanban stuff.

The following is what was agreed upon by our senior management. Some things were changed, and quite drastically. For starters, credit will only be given for features/stories completed in one Sprint. When asked my opinion, I suggested this may lead to technical debt. It was also decided to have a showdown at the end of the year, and to recognize the team with the most redeemed tokens. I am afraid this is against the whole-team incentive, and once again fosters competition.

Here it is:

“Video Tokens” rewards

Team collects tokens (1) for every MMF/story that is developed & tested in 1 sprint

Eligibility:

All Video Platform Teams

Selection criteria:

MMF/Story must meet acceptance criteria from Product Owner, must be tested and bug-free

Selection process:

At the end of each Sprint, Scrum Master will review Sprint deliverables and compliance w/ selection criteria. Tokens are awarded to a team.

Timelines:

End of each sprint

Rewards:

Finished features can be collected by the team and redeemed for rewards. Team can decide to either redeem their collected points or wait to accumulate more points for a higher reward

  • 10 = Beer and snacks for the next Review & Retrospective
  • 25 = Team Lunch
  • 50 = Movie passes
  • 100 = Day off

ALL tokens collected and/or redeemed are counted annually when team enters into Annual Token Standoff.

Program Facilitator

Scrum Master or Program Manager

  • Share/Bookmark

Aaron Agile, Lean, Yahoo!

KFC Slides and Simulation Now Online

August 12th, 2008

Available from Karl’s blog for download. The session went well, everybody returned for the second half from the first half. I really enjoyed the simulation at the end, although we ran out of time to fully go through it. If you happen to use it, would you contact us and let us know how it went?

  • Share/Bookmark

Aaron Kanban, Lean

Simulations for Throughput and Pull

February 23rd, 2008

All you need is a pack of cards…

Ask people what kind of typical things happen to get a user story from the backlog to in the hands of users. Agree on the most common 3-5 things, such as: exemplify/design/build, or story/TDD/accept/deploy, or the typical todo/wip/done or the traditional analysis/build/validate/deploy Group people by this same number at a table. The grouping of will make more sense in next exercise.

As prep for the next exercise, also count out 4 aces, three twos, two threes, one four and one five. Set aside from the 20 used here.

Maximize what is done
The example shown involves groups who went traditional with the value stream of 4 and 20 cards per group. Best to use a deck per group, with those other cards set aside.

  Analysis Output Build Output Validate Output Deploy
Step1 Flip 20   Wait   Wait   Wait
Step2 Done   Flip 20   Wait   Wait
Step3 Done   Done   Flip 20   Wait
Step4 Done   Done   Done   Flip 20

Start timer
person 1 to flip all 20, pushes to output area. Person2 flips them all, pushes to output area.
Person 3 flips them all, pushes to output area. Person4 flips them all. Stop timer.

While all are in progress, ask how many items are in progress.

Debrief. How much is in progress (20) how much wait time? How long did it take to get done?

Do again, but this time 1 card at a time, in parallel
Remember to ask how how many things are in flight, once all 4 people are flipping cards.
Stop timer
Debrief. How much is in progress (4) how much wait time? How long did it take to get done?

  Analysis Output Build Output Validate Output Deploy
Step1 Flip 1   Wait   Wait   Wait
Step2 Flip 1   Flip 1   Wait   Wait
Step3 Flip 1   Flip 1   Flip 1   Wait
Step4 Flip 1   Flip 1   Flip 1   Flip 1

Etc… until…

Step 23 Done   Flip 1   Flip 1   Flip 1
Step 24 Done   Done   Flip 1   Flip 1
Step 25 Done   Done   Done   Flip 1

Pull Work Through
Did you set aside the cards from the last game? If not, count out 4 aces, three twos, two threes, one four and one five.
Turn one face up for every two face down or so.
Still have the groups of 4? If not, re-form groups of 4. Call out again roles of analysis, build, validate, deploy. Redefine the output areas.
Responsibilities:
First person (analysis) makes sure they are all face down
Second person (build) makes sure all are face up
Third person (validate) flips them down and up to number on card. Flips the aces down and up, the twos down-up-down-up, etc.
Fourth person (deploy) groups by number
Two passes, TIME EACH!
First time a person works when the workspace is empty, and puts work in output queue as quickly as possible
Second time, work is done only when output queue is empty
Should take almost the same amount of time.

  Analysis Output Build Output Validate Output Deploy
First time Turn Face down Couple of cards here Turn face up BIG pile of cards here Flip number of times on card Couple cards here Sort by face value
Second time Wait a bit, turn a card down Empty Wait a bit, turn one face up Empty Working the same as before Empty As soon as a card emerges, sort it

Lesson learned, go as fast as constraint.
How can we exploit constraint?

————–
Of course, there are other lessons to be learned, and variations that can be performed. I’m just trying to provide the basics here. This is a messy post and would be better explained through example. At some point, I’ll video these and post here, too.

  • Share/Bookmark

Aaron Lean

Phrases to Say a Lot

January 6th, 2008

When asked any question, just reply with something like the following. Or work it in to a conversation.

  1. The team says, “look what we’ve done” when there is a good leader. A typical manager says, “look what I’ve done with this team”
  2. QA is a platform
  3. Prioritize features by risk and known market needs. Group them by goals and technical similarity.
  4. What is the expected revenue from this feature?
  5. It is easier to automate 10 lines of code at a time than 10,000 for builds and tests
  6. Inspect and adapt requires looking at what’s going on before changing it
  7. Software development is an adaptive system with emergent behavior
  8. What is the degree of variance on that estimate?
  9. Greater uncertainty lowers confidence in any estimate
  10. How many things are currently in flight?
  11. Self organization allows the team to do whatever is necessary to finish commitments
  12. Increasing skills adds individual market value
  13. Lines of communication must be open between all roles
  • Share/Bookmark

Aaron Agile, Lean

Limiting Work in Progress (WIP)

November 24th, 2007

For me, it’s all about getting the backlogs together and putting strict limits on WIP. It is a mess to find a bottleneck, or get to done, when too many things are in flight. Remember: there is one expedite slot to override WIP, but only one.

Two ways to limit WIP:

  1. With the value stream mapped, look at the resources within a certain step and ensure there are no more slots than people in that step.
  2. If there is an inability to get the value stream map, or while you’re going there, write a sticky for the name of each developer
    1. With all the things in flight, have a person put their sticky name on the WIP
    2. Have them move their name to whatever they are working on
    3. Don’t allow more things to be allowed in to WIP until there is no way they can put their name on something
    4. Only allow for one WIP per person
    5. Cut the WIP slots in 1/2 for pairing

If you’re trying to enforce pair-programming, or otherwise get cross-functional and more collaborative teams, limit WIP to half the number of developers. There should be a minimum of 2 slots for any one step in the process.

In throttling down in this way, and trying to get a handle on what’s in flight, make this request:

Put your name on what you’re working on
Nothing to work on? Ask if you can help someone else.
Don’t have the right skills for that? Find the bottleneck and work to release it.
Don’t have the right skills for that? Pull in work from the fixed queue.
Don’t have the right skills for starting anything in the queue? Ask the PO if there is anything lower priority to work on.
They don’t have anything? Go find other interesting work.

  • Share/Bookmark

Aaron Agile, Kanban, Lean

Speaker Series

October 19th, 2007

A lot of popular folks come to Yahoo! and hang out. There are experts, authors, musicians, luminaries, – giving talks, running workshops, attending conferences, performing, and being a presence on the campus.

Our own group has had people in. I’m not sure who they all are. I hear there was Mary Poppendieck, who’s suggestion of eliminating waste may have been interpreted by a few as meaning some roles could be considered redundant. Seems a shame.

Since I’ve been around, there has been two people we’ve brought in. The first was Jim Coplien, who shook things up a bit. People are still referring to his presentation on agile architecture. We have it on video some where. I wonder if I can make it public? Worth finding out and better than me writing about it now.

Today David Anderson came in, and talked about industrial-strength, agile complimentary, product development system. This system is based in the Theory of Constraints (TOC), where customers pull value through the system. It takes advantage of mathematical fact and scientific backing in queuing theory and Little’s Law. The system is monitored real-time with an ever-changing visual board of all work in progress. Product is developed in a cadence, where success happens with enthusiasm. David calls it a Kanban System for Sustaining Engineering, and with a subtle change, it is a system for software engineering.


David Anderson Presentation Part1

David Anderson Presentation Part2


Slide Deck in the video

  • Share/Bookmark

Aaron Agile, Kanban, Lean, Yahoo!