I am Rob: Hear me roar!
…or at least talk. I’m appearing at the Epicenter conference in Dublin next week. I’ve got two sessions lined up:
- Next Generation Languages for the JVM
- Lean, Kanban and Theory of Constraints for Managers
…or at least talk. I’m appearing at the Epicenter conference in Dublin next week. I’ve got two sessions lined up:
I was out shopping with my wife this morning. We popped into a craft store to allow her to pick up a few things for a project she’s undertaking.
I noticed this :

Which made me chortle a little. The fact that Kanban - Quality As Standard had made it into the realms of hand-crafted gift cards was surprising. Then my jaw dropped at the next card in the rack:

Wow! Waterfall and Kanban, right next to each other competing. Then I noticed this:

It turns out that nobody is buying Waterfall in the craft world. Nobody is buying it, no matter how it is packaged.


I was talking with my friend Clarke Ching today about Kanban and pull systems in general. I came up with a metaphor that we both liked and thought I would share it.
Problem : Imagine you want to get a ball of string ( your features ) through to the other side of a funnel ( your development team ).
Traditional methods involved pushing REALLY, REALLY HARD until it goes through.
Agile and other iterative methods realise that trying to force a whole ball of string through a funnel at once is madness, so they chop the string up into smaller pieces which are easier to push through.
Pull systems, such as Kanban, change the dynamic, rather than pushing the string through, they feed the tip of the string through and then pull it as fast as they can.
Which of these is best?
Well, traditional methods often cheat by mashing some subset of the string through and declaring victory. Or by making the team ( the funnel ) enormous so that you can fit a fairly large ball of string through the hole without effort. Or by minimising the features so that they’re dealing with a tiny ball of string. Or some combination of the above. I’m not sure this is ever a good idea.
Agile works pretty well, but the chopping takes effort ( iteration planning ) and consumes time. But it does break down into nice, neat iterations which provide clear points for releases, milestones, measurement and feedback.
Kanban works pretty well too, it might be slightly more efficient than an iterative Agile approach, but the milestone and release points need to be superimposed onto it since there are no natural break points.
Lean and ToC have their place here too - tools, techniques and strategies to make the hole in the funnel wider and to make sure that the string that gets through is the right string, used as efficiently as possible. Stretching the funnel as far as possible, just as I have stretched this metaphor.
I finished off Almost Perfect this morning and I must admit I was a little disappointed by the ending. All the way through the book I’d interpreted Peterson’s actions one way, and then, in the last fifty pages he started to spout his personal philosophy and I realised that I had been interpreting things in a more charitable way than I now feel he deserved.
One of the things that irked me the most was the section where he described how the employees had been asked to work long hours, six days a week for over a year and they’d done it because they were trying to help the company. Then he follows on with complaints about people being unprofessional and visiting the doctors or the dentists during the day. He complains extensively about anyone doing anything not directly work related during business hours - down to being angry at people for showing new baby pictures to colleagues - and then spends long paragraphs describing how productive he was during his afternoon tennis games, or how much he accomplished just by sitting on the beach relaxing and thinking.
“Hi, my name’s Pete. I’m inconsistent and unreasonable.”
I think he must have taken criticism about some of this in the past because the on-line version has a number of the later pages missing. The second-hand copy I got from Amazon was the complete text and the extra light it shone was, as is the nature of light, illuminating.
I’d still recommend the book to anyone who wants to read it. One particular section near the end of the book contained a valuable lesson.
Peterson had described their problems shipping enough copies of a new version of WordPerfect. A few years later, their next major release was due to ship, in the months leading up to their IPO. The launch went off without a hitch and first month sales were at a record level. Then they died off. The next month wasn’t much better. This unexpected, and un-predicted, drop off in sales hit their IPO hard.
During analysis of the slump, they discovered that because their distributors hadn’t been able to get enough product to supply demand after the last major release, they’d over-ordered for the release of the new product. Since they’d over-ordered, they were carrying extra stock and they didn’t need to re-order. This created a month one with unrepeatable sales, making all subsequent months look bad, and months two and three were bad by any standards.
Apart from all the usual lessons about judging sales based on fulfilment of only part of the supply chain rather than completed end-to-end transactions we’re left with a crystal clear example of human behaviour.
People will guess your future performance based on your past performance. It doesn’t matter what you say or do, a man, or a company, is judged by their actions.
Next Friday, the 29th May, Clarke Ching and I are teaching a one day workshop in Edinburgh entitled ‘An Introduction to Agile, Lean and Kanban’.
We’re charging a small fee (£30) to those who’re in full time employment: really, just enough to recoup the costs of renting the room. Entry is free to those who’re currently an ‘under-utilised resource’ (HR speak for unemployed).
If anyone is interested, please contact me at rob@
One of the notions central to Lean and ToC, is that you can increase productivity by limiting the release of materials into the system.
This is quite a difficult concept to get to grips with. Intuitively, it just doesn’t seem right. Emotionally, it feels that this is exactly the opposite of what the truth should be. One of the reasons I’ve always found it so hard to keep this ideal at the forefront of my mind is because I’ve never found a way to apply it to every-day life. I’ve lived it in the business world, I’ve not lived it in my personal life. Until now …
I’m a spree shopper. I rarely buy just one of anything. If I’m going shopping for CDs, I’ll come back with three. If I go for a wander in a book shop, I’ll buy four books. DVDs .. yup, I’ll come home with a pile. But here’s the funny thing I’ve noticed. If I buy three CDs, I’ll rarely listen to them all enough to enjoy them. If I buy four films on DVD, one or two will never get watched. Being overwhelmed with choice, my mind rejects several of the options. And once I’ve rejected them .. I rarely look back. The extra CDs and DVDs I buy are, in the purest sense, waste. Worst of all, though, is my book pile.
At the moment, I have about ten or twelve books in my ‘to read’ pile. The, fascinating thing though, is that, the bigger the pile gets the less energy I have for reading. To start reading, I need to make a choice. That choice gets harder, the more options there are. And, since I’ve already read some of these books, I’ve had to reject most of the books in this pile more than once. What if I pick the wrong one? Why did I decide not to read this book last time .. I must have had a reason?
Then, when I do pick a book and start reading, my doubts start. Would one of the other books be more interesting? More informative? More fun? Better written? More up-to-date? The list of doubts piles up.
Then I start to read more than one book simultaneously and things get worse.
So, what’s the solution? Well, I’m going to control the flow of materials into the system. I’ve now got a bag, and a pile. The pile is something of a misnomer since it is a pile of one. I’ve tossed all the books I was going to read, except the one I’m currently reading and one book that I’m going to read next into a bag. The bag is not a pile, it is unordered. There is no weighting or relative importance that can be implied by position in the bag.
My new reading workflow:
I can’t explain exactly why this makes me feel better, but it does. There’s no longer this daunting meter high pile of books I’ve “got to get through”. I’ve got the book I’m reading, the book I’m reading next, and an opportunity to choose, not an obligation.
The overlap between GTD, ToC and Lean feels very strong here. I’ve always thought of GTD as Lean/Agile for one.
This feels good now, I hope it works out. I shall report back on my experiences.
David Anderson’s InfoQ talk on Kanban and software development is fascinating. In particular I liked the clarity of the numbers he produced to prove the successes of his methods. I also liked the photographs of the tracking boards that different groups were using, David’s analysis of them and the way they changed over time as groups came into contact with each other.
All in all, a thought provoking presentation that backs ideas up with concrete numbers.
In a post entitled, simply, Software, Rafael de F. Ferreira juxtaposes quotes from James Bach, Erik Meijer and an Alan Kay/Phil Windley amalgam to put together an intriguing argument that quality software doesn’t exist, people no longer care that quality software doesn’t exist, computing is in its infancy and we don’t know much yet, but we’re also not really learning so things aren’t getting better.
I’m not sure I buy it. In fact I’m sure it is bunk. I’ve said for a long time that The Software Crisis doesn’t exist. As an industry we create more, better software cheaper than ever before. WTF is the crisis?
Can we do better? Yes.
So why do people talk about a crisis? Because programming attracts smart, dedicated, attention-to-detail-oriented, meticulous, perfectionists who’re never going to be happy. People who’re always going to want to do better. For many people - including me - software is my art, my hobby, my career, my passion. I want it to be great. I won’t accept second best. I won’t accept shoddy or badly done or half-hearted. I want to build the best .. whatever the hell it is I’m working on.
Equally, I won’t accept people telling me what a bad job the software industry does any more. We don’t do a bad job, we do the best job of writing software that anyone ever has in the history of the world. Possibly the universe.
Can we do better? Yes. Can you beat me with the crisis stick? No, sir, you may not.
My good friend, Clarke Ching, today proposed that we reach out to universities and colleges to help them teach students the things we’d like them to know when they graduate. I’ve done some of this in the past working with universities and colleges in the US and the UK, it was very rewarding. I’d love to do more.
I’m writing this post because a lot of my friends are dyed-in-the-wool Java and Ruby developers who believe that nothing good ever came out of Redmond. I’d like them to think again.
Over the last few weeks I’ve been listening to podcasts that have come out of the .NET community: Elegant Code’s Code Cast, Scott Hanselman’s Hanselminutes and Herding Code and overall my reaction has been, “Wow, the Microsoft/.NET community is really starting to get to grips with Lean and Agile”. This wasn’t the case the last time I worked intensively with .NET about three years ago, back then it seemed that MS and .NET developers were living in the dark ages.
Listening to people working from within Microsoft talking about using Scrum and XP and Lean and how it is making their development better is heart-warming to someone who’s been pushing this message for the last ten years.
That Microsoft are dogfooding their own applications, and changing them to make them work better in support of Agile methods is fantastic news. Microsoft can do a lot of good if they support these ideas openly, and that seems to be their intention.
Microsoft isn’t just making strides in the process department though, the advances they’ve made in the CLR and the languages that run on it are really starting to pay dividends. As this post from Matthew Podwysocki shows, the generative effects of advancing the language and the platform.
That the .NET platform has been pulling ahead of Java in the feature department for a while now hasn’t been a secret. But now, for the first time, I’m starting to see people using these features and talking about these features to solve significant problems rather than brandishing them as ‘the new hotness’.
If only it wasn’t tied to Windows, I’d buy some.
Recent Comments