GUI backup tools (was Re: Destroying "only" your home directory)

Michael T. Richter ttmrichter at
Tue Apr 4 10:46:29 UTC 2006

On Tue, 2006-04-04 at 12:10 +0200, Ulrich Mök wrote:

> instead of quarreling all that time, you could have done it yourself in 
> the meantime!

I realise this was a joke, Ulrich, but I'm going to respond seriously
because there's a serious issue underlying the joke.  It's an issue
that, I think, is the single largest problem with free or open software,
in fact.

The easiest part of any software project is coding the problem domain

I put that on a line by itself to draw people's eyes to it.  I also
fully anticipate the howls of outrage from the cowboy coder camp.  The
fact remains, however, that in most (possibly even all) cases of
software development, the problem domain is the minor component.

The hardest part of any software project is designing and implementing
the interfaces.

That's the part that needs the most work in any software product.
Whether you're talking about the human interface, inter-component
interface, storage interface, system interface -- whichever interface it
is you're talking about, this is where the real work is in software
development.  It is also the part that is least glitzy, glamorous and
fun.  As a result it is the part that is shirked in most (possibly even
all) software development efforts.

Free (and open) software is most prone to stopping once the problem
domain is coded.  GUI work is hard, fiddly and boring.  Only a crazed
person would waste that much time and boredom on unpaid effort.  If a
GUI is made, it tends to be hacked together quickly.  (Sbackup is a
prime example of this -- sorry, Peter -- as is that spec on the wiki
that was cited before.)  Further it tends to be hacked together quickly
after the problem domain code is pretty much in a fixed state.  So
whatever warts exist in the problem domain's interface are worked around
in the GUI.

This is completely bass-ackwards.  The interfaces -- all of them --
should be thought about, designed, prototyped and perfected before the
first line of problem domain code is even touched.  Hell, to be really
dogmatic your test cases should be complete before you touch a line of
the problem domain code.  But that's not what happens -- especially in
projects run by and maintained by volunteers.

So what does this rant have to do with your joke?  Long before I code a
backup system I'll have use cases drawn up, GUIs specced out and
prototyped, test cases worked out and coded -- THEN, finally, the
trivial part (flipping bits around disks) is up on the queue.

Do you 
really think this quarrel went on so long I could have done all
that?  ;)

Michael T. Richter
Email: ttmrichter at, mtr1966 at
MSN: ttmrichter at, mtr1966 at; YIM:
michael_richter_1966; AIM: YanJiahua1966; ICQ: 241960658; Jabber:
mtr1966 at

"My paramount object in this struggle is to save the Union, and is not
either to save or to destroy slavery." --Abraham Lincoln
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smiley-4.png
Type: image/png
Size: 822 bytes
Desc: not available
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <>

More information about the ubuntu-users mailing list