Jim, a system architect, taught me many things in the fifteen years I worked with him at my software company, Fuse Insight. He introduced Extreme Programming (XP) to me. He also instituted our practice of three iteration release cycles.
I would share with Jim an aspiration for a new software solution that I had envisioned. It was normally only a vague idea, but it had a clear purpose. He would listen and ask questions to better frame out the intention. And then he would set to work on the first version. He called this rough prototype a ‘kludge’.
He would quickly slap together pieces of the solution. Some might be pulled from other codebases or just manually built in spreadsheets. It was a mess, totally jerry-rigged. But it had all of the elements of the experience that we were trying to create.
He would share that with me and I would use it. As I did, I would notice pieces of the solution that were missing. He would add that. I would notice process steps that were clumsy. He would redefine those. We hacked on that kludge as fast as we could.
Finally, I would let him know when our first version contained the solution we needed. Then he set out to do the next version, where he would properly architect the solution. He would then give that to me to use. That would be further tuned.
When that second version felt solid, he would set out to build the third version, one that was designed to scale. Scaling required a lot of supporting functionality. Once that version was built we were good to go on to the next solution we needed to develop.
We were able to turn out solutions in record time with this three iteration model: kludge, architect, scale.
It takes courage to jump into that first version - the kludge. You really have no idea what you are jumping into. And you know, whatever it is, it isn't going to be pretty. It will be a mess.
But you need to leap into the unknown, the void.
That's what I was doing with the New Relic agilists. I had no idea what we were going to do or how we were going to do it. But I knew, as they lived in an agile culture, that if anyone would be okay with the leap, they would.
So we jumped.
DOT FROM preview-next-diagram
Next: Defining a Partnership