Is there anything *enjoyable* about our development process?
Christian Stimming
stimming at tuhh.de
Sun Oct 16 16:04:00 EDT 2005
Just to add my take on that whole thread as well:
Am Freitag, 14. Oktober 2005 19:53 schrieb Chris Shoemaker:
> I recently came across (via /.) a brief 1-page article titled "-Ofun":
> http://www.oreillynet.com/pub/wlg/7996. I agree with the author's
> thesis, which is that optimizing a project's development process for
> the pleasure of developers leads to all sorts of good things.
Agreed on the main hypothesis, too. However, the described project means that
the situation of the -Ofun perl6 compiler is not at all comparable to the
gnucash project. Firstly, in the perl6 compiler project the developers are
inherently also the users of the product. Secondly, in the compiler project
the users are inherently also developers, or at least familiar to the way of
how the developers will think. Both are definitly not the case in gnucash.
In other words, the requirements and users' needs in the perl6 compiler are
pretty much obvious to the developers. Not so in many aspects of gnucash. The
fast feedback look that makes the perl6 compiler project so much -Ofun is
simply not there in gnucash. We are happy enough when there is *any* feedback
from real users -- feedback that we can understand and that we can use for
code improvement, that is. Not to talk about the more difficult feedback loop
in a GUI program as compared to a compiler, where you can specify test cases
so much easier in the latter.
> As applied to GnuCash, I would make a stronger assertion, though. I
> believe that GnuCash's continued progress and relavence, absolutely
> *depends* on a drastic revamping of the development process.
No, I don't agree with that assertion. The development process in gnucash
needs to be different than a compiler's development process because the whole
project is different.
And just to give a different voice here: I have soooooo much fun developing
gnucash! My vision for gnucash has been and still is the "free manager for
the personal finances, including the most modern online banking features, to
make the private financial management as easy as possible". Of course that
was limited to Germany, because only here we have the HBCI protocol which
enables us to move *real* money from our very own source code. Every other
day when I let gnucash connect to my bank, I think this is soooo cool.
I had some success factors that made the HBCI parts especially fun for me to
implement and maintain: The module structure in gnucash makes it possible
that the HBCI stuff doesn't interfere with anyone who doesn't want to keep
track of the HBCI library (now using aqbanking). The tasks of HBCI online
banking consists of only a few relatively straightforward actions, which fit
well (probably by coincidence) into the existing menu hooks. The engine has a
clearly defined interface, where all the importing accessors and setters are
clearly defined. So, yes: I have so much fun maintaining and improving the
HBCI interface of gnucash, and I really enjoy this.
And for the ever-lasting Scheme discussion: Before the gentle reader
formulates another refutation about Scheme in general, he/she should please
spend 15 minutes to read some introduction e.g. on
http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-5.html (you can enter the
Scheme expressions directly in "guile" as described e.g. here
http://www.gnu.org/software/guile/docs/guile-ref/Running-Guile-Interactively.html )
15 Minutes. Really better spent than on yet another anti-whatever-Language
flamewars.
> If so, I'd like to start discussing what concrete things we can do to
> improve the whole developement experience, considering ideas from the
> article and elsewhere.
>
> E.g. Would a modern version-control system improve the development
> experience? (It seems like several of the other recommedations in the
> article depend on it.)
Improvements are always good. A modern version control of course is better
than the old cvs. Svn would make many different branches much more easier
than CVS, although multiple branching would still work in CVS, iff people put
up and do it. The question simply is: who does the transition work from cvs
to e.g. svn? I can't; no time etc.
Christian
More information about the gnucash-devel
mailing list