I took a beloved picture book with me to my last contract and set it high on a shelf in my cube. It is called If You Give a Mouse a Cookie by Laura Joffe Numeroff and Felicia Bond. I loved reading this book to my children when they were young. We would laugh so hard as the boy gets totally exhausted providing for the little mouse’s every whim that all began with giving him a harmless cookie. It was a cookie that tasted so good that a glass of cold creamy milk was inevitable.
So why did I take the book to work? Everytime I got a chance to explain why (which was often) I would say that it was the basis for my theory of requirements managment which is when you present a software build to your customer, if it is bad… they will ask you to fix it. But if it is good… they will ask for the next best thing. And if it is very, very good… they will get so excited that they will ask you for the moon! Some developers are intimidated by this because they know good and well that a great build will only entice customers to add more features, and if they do, they will never get the product done on time. This is why I am so fond of Scrum. Using Scrum, you can iteratively build great software that sparks such incredible creativity in customers that all kinds of wonderful things can be imagined. You just add the new features to the Product Backlog where in each planning session the Product Owner decides which features will be developed in the next Sprint. Each Sprint in turn produces an executable build that may be used in a production environment as soon as a minimal set of “value added” features have been developed and tested. I find this to be an optimal way to develop commercial software because a commercial software product is never really done anyway. The product must continue to adapt… to changes in the market and to input from the users… for months, even years.