I’ve recently heard a lot of talk about the Minimally Viable Product or Minimally Marketable Product The idea of the MVP is closely related to the Agile Principle of “Simplicity—the art of maximizing the amount of work not done—is essential”. Elio Carletti said:
My take on this principle is a new word… Enoughionism. It’s not really at the other end of the spectrum from perfectionism, but somewhere between it and disorder/insufficient. If you could find a definition in the Dictionary, it might be something like this:
Enoughionism (ee-NUF-uhn-ism) – The theory that for any given desired outcome there is a level of sufficient completion that satisfies the need without providing a perfect solution. Any effort past the sufficient level will result in diminished returns, wasted effort or features that aren’t needed. Great care must be taken to ensure that simple solutions are pursued.
Enoughionist (ee-NUF-uhn-ist) – One who endeavors to apply the least amount of effort that will generate the desired outcome. It is an ideal to be sought after and will logically result in the greatest Return On Investment.
To me, Enoughionism is a philosophy and a way of life. I’ve often gone so far as to call myself lazy in an effort to describe my core perspective, but unfortunately “lazy” usually has a negative connotation. All throughout school and college I found myself unable to quite obtain the perfection of acing a test or never getting anything other than an +A. Lucky for me, I’ve found that perfection is rarely if ever required. There is a common saying that “C’s get degrees”. I am not encouraging students to get the minimum passing grade, however, students should understand why they are taking a certain class and determine what grade is required for them to fulfil their purpose. In my case, I did strive to get A’s in most of my classes. There were a couple were the extra effort was not worth the resulting benefit.
The idea of “doing something until it is enough” is vital for Agile development.
- We plan until it is enough
- We have enough of an understanding of what the user needs
- We have clear enough acceptance criteria to test
- There are enough stories ready to fill up a sprint
- We develop and test until it is enough
- Enough is coded so that we can pass acceptance criteria
- Enough is tested so that we can verify acceptance criteria
- Once enough has been developed and tested, we release to the user
So you ask… “What are the steps to achieve Enoughionism?” First you must understand your desired outcome. This is much more difficult than it first appears. In order to make the analysis to determine how much is enough there need to be firm measurements of value; both the value of the effort and the value of the return. I’ve seen many clients approach us with the need for a new website, or a new marketing gimmick or an app. Those same clients have often not successfully articulated what they expect to achieve. Do they want deeper market penetration? Are they looking for an increase in sales revenue? If so, how much? Is increasing sales revenue by 10% enough?
Once the value of the outcome has been sufficiently defined, then we can look into the value of the effort. A common approach to this is to quantify the number of hours required and multiply it by an hourly rate. While hours may be used, we can often use a relative sizing of effort to get close enough. Comparing the relative level of effort to the expected value will help to show the point at which the value of developing the next feature does not outweigh the cost of the effort.
The most important step to remember is to stop when you have done enough. You may need to remind yourself (and others) that the point was not to continue until perfect. When asked “what about this feature or that bug” the response should be “the benefit did not outweigh the cost”. This doesn’t mean that there couldn’t be more benefit because, by definition, Enoughionism will always leave some amount of benefit unrealized. Don’t expect your first attempt to be enough. It normally takes a couple of iterations before you realize that the next iteration wouldn’t provide enough value.
Posted by Preston Chandler 8MAR2016