This evening I will drink a tumbler of Maker’s Mark on ice and imagine how those ice cubes represent the last remaining portions of a monstrous blue-green iceberg, capable of sinking small ships and calved from some distant glacier. That iceberg is symbolic of another giant software epic now in the final throes of delivery and the tip of the iceberg represents my original estimate of the work at hand. It seems that lately I have taken on more than my share of iceberg projects where the tip was all I saw.
[T]here are known knowns; there are things we know that we know.
There are known unknowns; that is to say there are things that, we now know we don’t know.
But there are also unknown unknowns – there are things we do not know we don’t know.
Our job as software engineers is to make estimates on delivering a very complex system, one that is often filled with ‘known unknowns’ and ‘unknown unknowns’. There are a myriad of software processes, from Agile to Waterfall and estimation systems to go with each. Accuracy is rare but with experience it can improve. Which leaves me asking why, after 23 years in the business, am I still doing such a poor job? Why do I gleefully jump in and swim towards the towering beauty of a new development project, blissfully ignoring the remaining 90% I know lies waiting beneath the waves?
Optimism. Mindless grasping at a shiny opportunity to develop something new. Creative desire completely short-circuiting any rational approach. In short, a complete lack of Mindfulness.
—Thich Nhat Hahn
I have a great desire to do an excellent job because I equate my ability to create with how I want people to view me: I put love into the software I write. If I love it that much then from the start I must give all of it my full attention, remembering to look at more than just the tip of the iceberg. How can I bring Mindfulness to software scheduling and estimating new projects?
- due diligence
- investigation, deep dives into requirements
- asking questions and interacting with the stakeholders
- introspection, asking questions like “How much of this is a perfect world schedule?”, “How much effort did you put into understanding what is needed?”, “Do you really have the time it takes to do this given your current loading?”
Maybe, just maybe, being mindful will save me the heartache of being overbooked and overstressed for months on end, trying to do the things that I love.