Meno:
Tutok:
Wocogou:
----------------------------------------- (2004-05-18 21:22:18) majo napisal(a): The Rule of 3 I was talking with Josh Dahlby back in the day and we started talking about general software development. During that discussion, I think we hit on one of the fundamental tenets of software development, namely "It takes 3 iterations of development to perfect something". This isnt an excuse to ship products with glaring ommissions and bugs, but rather, mirrors the development experience that both of us have had. The first iteration is your world-beater version. It puts the technology (be it component, framework, or application) out into the hands of the masses. The new "bright shiny object" (thanks to Danny Thorpe!) syndrome takes hold and calls people to your creation like a siren song drawing a ship closer to the craggy rocks. The success of the first revision is short-lived, though. Inevitably, no matter how smart you think you are, and how much time you spent trying to forsee all possible scenarios, users will bring you back to earth to let you know that you failed miserably. The second iteration implements the feedback you received and makes the product better. The API will change, performance bottlenecks will be solved, and features will be added. People will be happier to use this version as it starts to solve their problems in the way that they want. This is when the product starts to achieve acceptance, and moves from an Early Adopter experience to a Must-Use product. The third iteration is where you truly understand the problem and start to make things more flexible (better architecture, pluggable components, more user-configurable options, etc.). Inevitably, this version is the one where you can reuse the code easily, and extend the architecture into something aesthetically pleasing - as well as rock-solid. However, now that you fully understand the problem, the typical software shelf life of a product comes in to play, and you start all over with a new product. :-) Some may argue that they dont go through this cycle. I would argue that either the product youre producing isnt that complex, or more likely, management is allowing you to condense a couple iterations into one (e.g. open betas, longer schedules, etc.). I believe that all products go through this cycle, but whether or not the cycle plays out at clearly defined intervals like version 1.0, 2.0 and 3.0 is not mandatory. In conclusion, I think its important to understand limitations to have success. The greatest limitation that you can accept is that you can not possibly understand every way every user would like to use something just by drawing boxes and lines. by Dan Miser on 13. 5. 2004 12:43