The most common problem with product development / maintenance is on how to handle a new feature request for your product.
37signals.com answers this in the book "Getting Real"
The goal is to minimize the number of features and to make the features we choose to build, perfect ones.
For every new feature you need to...
1. Say no.
2. Force the feature to prove its value.
3. If “no” again, end here. If “yes,” continue...
4. Sketch the screen(s)/ui.
5. Design the screen(s)/ui.
6. Code it.
7-15. Test, tweak, test, tweak, test, tweak, test, tweak...
16. Check to see if help text needs to be modified.
17. Update the product tour (if necessary).
18. Update the marketing copy (if necessary).
19. Update the terms of service (if necessary).
20. Check to see if any promises were broken.
21. Check to see if pricing structure is affected.
23. Hold breath.
What you guys think about this approach?