|
When capital is invested
in a software business a primary part of that capital is invested
in the development of the software product . A basic requirement
of capital is that there should be maximum capital productivity
. This means that the value of the capital should grow at a maximum
rate . Software , however , has a capital value not related to how
much is spent on it but how much it can gain in revenue . As such
if more than the minimum - optimum - amount is spent at any stage
then this is wasted money - it does not increase the capital value
of the code .
There are a number of
ways where this money and effort can be typically wasted - that
is designing and developing :-
- code that is difficult
to understand . Difficult to use . The WTF - " Why did they
do it that way ? " - " Absolutely no need . " -
" Keep it simple ! " . Code that is not constructed
such that it is easy to follow . Code that is not fully commented
.
- code that requires
a lot of developer and \ or customer support .
- code that requires
write arounds .
- code that requires
large amounts of duplication .
- simplistic code -
always ends up being messy and overly complicated .
- noddy code - code
that does not do anything much .
- making mountains out
of molehills - code that costs far more to develop than it's worth
.
- big blob code - code
not componentised - always ends up being messy and overly complicated
.
- overly complicated
code - that does not use the minimum amount of code . Code that
does not use optimum design .
- buggy code . Code
that has hidden - ' arbitrary ' bugs . Code that bugs easily .
- code that is difficult
to maintain and update . Code that can't be easily modified and
evolved . Code that produces side effects very easily .
- code that can't be
easily tested .
- code that is continuously
largely re-developed - ie. code that has a short life . Usually
caused by short term investment - get it out quick and nasty -
and leads to code being developed as customised applications rather
than as multi project and multi customer components .
Basically - code that
is badly thought out , badly designed and developed . Code that
cannot be justified . IE. - a business that has not applied the
basics of business to the code development .
If code is designed and
developed such that it requires the least expenditure of time on
it and using it - overall - the OS , the applications , the modules
and the components , the design , the development , the testing
, the developer and customer support , the maintenance and updates
- then it is optimally designed code . Further - if the market reach
( it's validity ) is maximised - it is the best design that it can
be .
If , in the overall scheme
, say , double the amount of code than the optimum is developed
then the value of the individual items of code is half of what it
can be . The number of bugs is , however , potentially much more
than double - because of interactions . Likewise - the development
time , testing , maintence and support etc. . The best possible
job has to be done in it's entirety and in a balanced and business
conscious manner . The effort has to be made up front - if it is
- it pays off - otherwise it starts costing .
|