Monday, January 4, 2010

Make Software Slow Switch

I think the conversation of what sucks verses making something great is always interesting. Developers are always quick to judge existing work rating it as poor when they didn't write it. And of course, the judging developer can always do it better. In my opinion, its easy to break something down and discover whats wrong verses :
  1. Putting it together right the first time and/or
  2. Fixing whats broken without breaking something else.
If you are priding yourself with a discovery of an issue, I wouldn't brag too much. You didn't create the issue, and you haven't fixed it yet.

As much as I hate these conversation, I am much interested in the reverse. Can you intentionally make software worst? I think this is much harder problem for developers because:
  1. We think mostly positive (I hope, I am not speaking to viruses or malicious software)
  2. We would work so hard for the worst of the worst it might never work and
  3. You have to make something good or great first and then understand how to ruin it.
Getting to the good or great first.... well good luck, it takes time. Great can be rated in terms of the original judging, if other developers think the software is good or great, you are on the right path. Hopefully you have test cases to indicate your success. Now, your test cases must succeed still, but with poor performance (assuming performance was not in your original test case) or quality. The design goal is to keep your existing great software, and to inject a switch to make it run poorly. Having the base test cases simply fail would not be the success here as the software must function.

I guess there is no point here, simply to invoke thought mainly. Developing with awareness of something that will get you to done, but a quality rating as well of satisfaction is very different. Test cases get you to done, but does quality fit into test cases? Should performance be a test case?

No comments:

Share on Twitter