Philip Meyer;494391 Wrote: 
> >No. More complexity means more bugs and less performance or more work
> >which means less features or higher price.
> No it doesn't mean that for certain.  Bolting on stuff later could mean
> more work and more bugs (depending on the quality of the initial
> design/implementation/code review/test), but designed from the outset
> its much less likely.
> 

Sorry, but repeating this doesn't make it true.
Take TTP as an example.

Hard coding the behavior makes for a straightforward approach. You have
an action and this action will result in some message being sent to some
object. Simple use case, simple test case.
Add a context menu for a different action. Similar. One use case, one
test case, one message.

Now add options for, say, going to a details menu instead of play and
using the context menu action for play. Similarly simple.

Also add a variation for playing the whole album or a single track by
default. You don't want to duplicate your whole playback code (since
this would add complexity for code maintenance) so you add a branch in
the playback function.

If you do all this using options, you also have to have an options
menu. You now have:

- 3 times the basic use cases (6 instead of two)
- Two options that you have to implement and test against all the 6 use
cases
- Two branches in your code on EVERY execution that will add to the
execution time
- twice the number of related functions or messages to be implemented
growing your code size

You can design this until the cows come home (which, again, is effort),
it will obviously be much more bloated than the straightforward
implementation and be roughly 6 times as complex.
And these were just two "simple" options.


-- 
pippin

---
see iPeng, the Squeezebox iPhone remote, at penguinlovesmusic.com
------------------------------------------------------------------------
pippin's Profile: http://forums.slimdevices.com/member.php?userid=13777
View this thread: http://forums.slimdevices.com/showthread.php?t=69471

_______________________________________________
beta mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/beta

Reply via email to