First, let me say that I do not have a “normal” coffee maker. Without going onto a lot of discussion of the machine – which I would gladly do, but that’s another blog topic – I can say that it makes a single cup at a time and requires many steps in the making. Further, I make two cups every morning, one for my lovely wife and one for me.
So, what’s so special about coffee making and how does it apply to project management, you ask? Well, lend an ear and I will explain. Because there are a lot of steps involved and because I have pesky engineering tendencies, I worry about the efficiency of the process. I have given a great deal of thought to which steps to take when, where to place things, which activities to clump together and which not. For example, do I grind up the beans together for both carafes and separate out the grounds into the individuals? Or do I measure and grind up a single cup’s worth and just dump the content of the grinder into the carafe (that was an easy one)?
As it turns out, after much analysis (keep in mind all of this is happening BEFORE I have my morning coffee), I came up with the most efficient way to create a cup of coffee from my beans and using my machine. I then modified the process in places because I had to make two cups of coffee and declared victory. Or so I thought.
As I used my newly optimized process it became evident quickly that I had forgotten one thing. My wife was patiently awaiting her coffee whilst I played around with my techno coffee gadgets. As I used my process I saw that while I was producing two cups in the most efficient method (with the least effort and steps), I was NOT producing the first cup in the shortest amount of time! Since my wife wasn’t enamored with the process and it was my desire to get her a cup of hot joe as quickly as possible, I re-evaluated and produced a new process.
So, what I discovered (although I should have just known) is that I can optimize for efficiency or the least effort, OR I could optimize for quickest time to first cup. Does any of this sound familiar for your software project wonks? The “best” way to do something is a variable definition depending upon what you need to accomplish. Do you need a release out as quickly as possible or do you need to minimize cost, waste, etc? Guess what, you cannot do both!