Tuesday, March 14, 2006
Shrinking LOC by a factor of 50
Although this is a quite remarkable result, that I'm not expecting in every other project, it is neither a miracle nor the byproduct of applying some magic technology or tool. We did it by spending lot of time thinking, much less writing code, taking every opportunity to shrink down the line count, using modern technology but also reusing previous experience. Capitalizing on lessons learned from the previous generation (especially at the database design level) but also avoiding to replicate old concepts (complex hierarchical data stored in relational tables) when modern techniques (XML documents) are better suited.
The project is highly configurable by nature, so quite some time has been spent devising the proper way to express customization concepts in an XML-encoded type system, to create an elegant configuration language instead of the usual mess.
The project is nowhere close to end, and it won't be easy to keep this track record. Still, even when I look at other subsystems (web services interface, the client side) I see huge opportunities to keep the line count down. My rather ambitious goal is to end up with a system way more powerful than the existing one, in 1/10 of the existing LOC. Surprisingly enough, this goal is not popular with everyone involved, but that's something we can live with :-).
As an aside, it's hard not to say that had we taken the easy XP road :-) and concentrated on users story and coding, instead of concentrating on architecture and avoidance of coding :-)), we would now be in the usual mess, a.k.a. hard work. For more on the disappearing effort, see also my post Relationship between Effort and Schedule
Comments:
<< Home
Sapevo che un'attenzione maggiore sulla parte architetturale facesse diminuire sensibilmente le LOC, ma per un rapporto 40:1 ti faccio i complimenti. Mi piacerebbe sapere cosa dicono quelli tra cui non è un obbiettivo molto popolare.
Per quel che riguarda il confronto con XP mi piace ricordare una frase riportata in Algoritmi+Strutture Dati=Programmi : "Che in futuro non riempirà (è Eulero che parla, ndr :-) mai più sessanta pagine (di calcoli) per ottenere un risultato che potrebbe essere dedotto in dieci linee, dopo qualche attenta considerazione; e che, se dovesse un'altra volta rimboccarsi le maniche per calcolare per tre giorni e tre notti di fila, egli impiegherà prima un quarto d'ora per pensare quali principi (di calcolo) siano più appropriati."
Post a Comment
Per quel che riguarda il confronto con XP mi piace ricordare una frase riportata in Algoritmi+Strutture Dati=Programmi : "Che in futuro non riempirà (è Eulero che parla, ndr :-) mai più sessanta pagine (di calcoli) per ottenere un risultato che potrebbe essere dedotto in dieci linee, dopo qualche attenta considerazione; e che, se dovesse un'altra volta rimboccarsi le maniche per calcolare per tre giorni e tre notti di fila, egli impiegherà prima un quarto d'ora per pensare quali principi (di calcolo) siano più appropriati."
<< Home




