Engineering is all about making great user friendly, logical and reliable products.rnrnIn my daily work this is what I try to achieve. When fixing a bug or introducing a new feature the questions which I ask my self are:
-Make sure that this works as expected.
-Make sure that unknowingly some other use case is not broken.
-Make sure that when executed multiple times it will continue to give the same result
-It does not have any side effects.
When defining a requirement or when submitting/analyzing a defect some of the questions which I ask are:
-Is this use-case/defect valid, i.e. is it inline with the original requirements with which the application was designed.
-If valid, then does it justify the effort which it will take to implement it, i.e. return on investment.
-Some of the factors to judge the above are: Does it fall in the 80% frequently used use-case; Does it have a significant impact on the way the user perceives the application; Is it blocking.
If the change does not satisfy the criteria then it does not make much sense in fixing/implementing it.