Hi All,

It is a very interesting notion that Gavin throws at us. I think it is very important for an open-source project to maintain it's code in a way that it is easy for a new guy (like me) to make quick and meaningful changes. Most open-source projects with a large development community ends up in a mess of perfectly working, yet highly unreadable code.

However, as a pair of fresh eyes looking at the code, I can safely say that though being an open-source project, Subversion has managed to stay "readable". This can only be attributed to the hours of work spent on "over-engineering" the code (BTW, I personally don't think anything can be over-engineered. In my book, it is merely an synonym for perfection).

There are parts of the code (in svn) that have been written with the notion of "getting things done". And these are the parts that I really find difficult to assimilate. I think time spent *earlier* to sanitize the code is time better spent, than trying to read the mind of the original implementer at a *later* point in time.

Regards,
Arwin Arni



On Tuesday 18 January 2011 07:26 AM, Gavin Beau Baumanis wrote:
Hi Brane,

I'm pretty sure the context of the quote is along the lines of;

Poor design and implementation proves to be a burden in terms of maintenance 
costs,  in the long run.
And instead of having bums on seats for (entirely) new development, manpower 
is, instead, wasted on maintenance tasks because of poor design / lack of a 
prototype etc.

I guess it is an implementation / coding practice question;
Would a developer's time not be better spent on;
Doing the "guts"of the job and at a later stage once the engineering is proven 
to be accurate  / reflective of the requirements - then worry about private / public API 
requirements.

Especially in an OSS project where resources are lean and transient, it is "my" 
(perhaps naive) view that spending x hours on writing an API that might not ever be used 
by another consumer is in fact x hours wasted that could have been spent on a more 
worthwhile task.
When the requirement of a service to be consumed comes to bear, that is the 
time to create an appropriate API.

 From my past experiences, I have created many an API that have never-ever been 
used, purely because the design standard said an API was required, though the 
engineering requirements of satisfying the task at hand negated that 
requirement entirely.

Again - I don't presume to know any better - and in fact I started the thread 
because of a desire to hopefully learn from it,
I'm not trying to be deliberately argumentative - I am just a proponent of a 
good debate that fleshes out better outcomes / knowledge - selfishly for myself 
- and hopefully for others too.

Gavin.



On 18/01/2011, at 9:13 AM, Branko Čibej wrote:

On 17.01.2011 23:07, Gavin Beau Baumanis wrote:
Hi Brane,
I certainly do take maintainability seriously.
What's that well-quoted figure?
Something like 80% of the cost of software development is spent in the 
development phase?

I believe it's "should be spent" rather than "is spent" ... in reality,
I've yet to see a project that didn't incur horrendous maintenance costs
as a result of shortcuts taken during development.

-- Brane


Reply via email to