[Helma-user] Proposal for future Helma project organization

Michael Platzer michael.platzer at knallgrau.at
Mon Oct 16 21:00:49 CEST 2006


Hannes Wallnoefer schrieb:
> back in summer, Orf on hosted a one-day retreat to discuss and invent
> the future of Helma. The main idea is of course to provide some
> structure, allow more people to take responsability, take off weight
> from my shoulders, etc.
>
> Of course, things took more time than anticipated, but I'm happy to
> announce that I finally finished my proposal that should give us some
> formal rules and structure.
>
> http://dev.helma.org/Wiki/Helma+Project+Bylaws/
>
> I personally think it hits a sweet spot between rules and freedom, but
> then, I'm the one who wrote it. Please let me know what you think
> about it, where it is too  much, what is missing etc.
>   
Hi Hannes, hi List!

Finally I found some time to response to your draft of the 'Helma 
Project Bylaws'.

Couple of thoughts and questions came up while reading through it. I 
will list them here in the following.

== definitions / scope ==

* I assume this document does not just deal with the Helma Web 
Application Server, but with all related software projects under the 
hood of the Helma label? Is this assumption correct? If yes, then which 
are currently these (active) projects/modules?
* The 'Helma Project Goals' state the creation of a software development 
environment, as well as the creation of software itself (accompanied 
with some generally desirable attributes). To say the least, this is 
quite a broad scope. Maybe this isn't the primer intention of the 
document, but providing a focus really helps a lot in communication and 
helps outsiders while approaching Helma. We also shouldn't be afraid of 
referring to Helma as a *web* development environment. Yes, Helma is 
capable of being the foundation of all kind of software, but its clear 
strength is in web development.
* As with any project a glossary (for the website, as well as for this 
document) would clarify couple of things. Suggested terms: Helma Group, 
Helma Project, Helma, Helma 2, helmaLib, modules, Gobi,.. The term 
'module' for example is used throughout the document, but it is unclear 
of what the authors consider to be a module. Are modules just extra 
libraries, such as the helmaLib, or do we consider all kind of separable 
'aspects' (such as rendering, db-mapping, logging, scheduling, testing, 
security,..) as single modules? Is the maintainance of the website and 
the repositories for example also a 'module'?

== framework ==

Helma (the java core, as well as the bundled modules) provides little 
framework of how to write your web application, if you compare it to 
other frameworks like Ruby on Rails. A freedom, which is by the way, 
much appreciated if you have gained enough experience with web 
development, but forces newbies to deal with all kind of aspects of 
clean web coding, that they are not even aware of.

Knallgrau (and i guess that other helmatics do the same) is 
progressively developing its own library ('knallgrauLib'), a framework 
which is used throughout our projects. Something that is inevitable 
anyways, in order to make programming in teams more efficient. The 
knallgrauLib is of course perfectly fitted for our very own 
knallgrau-purposes. I talked to you (Hannes) about a common, more 
powerful helmaLib (a merge of a knallgrauLib, orfLib, system1Lib, 
whatevaLib) a while ago. But being realistic, this is not going to 
happen anytime soon. Each stakeholder has its own application stack to 
maintain and to build on, and frankly no one will be willed to refactor 
their applications just for the sake of creating a common denominator. 
On the other hand, these libraries can be highly useful for others. 
Therefore I see such libraries/frameworks also as Helma modules, being 
distributed together with Helma, even if they try to solve similar issues.

Having said that, I will use this posting for publishing the status quo 
of our knallgrauLib, so that you can get a feeling for what i am talking 
about:
-> http://michi.knallgrau.at/knallgrauLib (not an official, supported 
version; just the current status quo without much documentation)
The knallgrauLib tries to solve the following concerns: Pagination, 
Internationalization, Form Rendering, Form Validation, Security, Ajax 
Helpers, Hooking-Mechanism ('Events'), Timing, ImageMagick-Wrapper,...

I would love to see the knallgrauLib become accepted as a Helma module 
under the terms of the 'Helma Project Bylaws' §2.1 (quote: "A maintainer 
should keep some balance between his or her internal work and 
communicating the work with others inside and outside the module."), and 
would love to see other people using it. Still, dont expect too much of 
such a module. Ressources are, as always, tight and the next client's 
deadline unfortunately always of higher priority.

== decision making process ==

Part of the criticism about Helma is the lack of speed, when it comes to 
decision making. Yes, having single module maintainers will certainly 
help. But whenever a decision of one module affects another module, we 
might experience a stall in that process. Especially when considering 
the number of egos (including myself) in the community. So, on the one 
hand, we must try to limit the number of module-overlapping issues (i.e. 
dependencies) when defining modules, and on the other hand, we still 
need a fast agile decision (by a single person? by the committee??) in 
order to prevent dead-locks.

Two examples for ever-lasting issues:
1) The rendering engine. Lots of different thoughts have already been 
shared regarding this issue, and we still seem to be far away from a 
*common* sense of how the future rendering should look a like. But then 
Juerg Lehni showed (with the imho most impressive contribution to Helma) 
that providing a templating engine does not need to be baked into Helma, 
but can be provided with some funky javascript-code (or by using some 
well-known java implementations). Subsequently you (hannes) provided 
some java code for helma 2 to make such implementations easier in the 
future. Perfect, issue resolved! The reason, why it still seems to be an 
unsolved issue, is that juerg's rendering engine never became part of 
the helma distribution. And people wonder, whether this extension is an 
'officialy supported' enhancement of helma. So, despite having module 
maintainers, a strong but agile (sorry for using this ugly buzzword 
twice) distribution maintainer will be much needed.
2) The re-design of the website. I dont want to dig through the mailing 
lists, but this issue is probably about as old as the discussion about 
the templating engine. Markus volunteered for taking this issue into his 
hands, provided several different design drafts, provided some adapted 
designs, waited for months, asked for input whether he should do another 
re-design, and now, after no one ever felt like making a final decision 
on this issue, Chris went along and put up a totally different version 
up, which hardly meets any of the initial goals (sorry for the blunt 
criticism, chris). We could have had a new website a long time ago, and 
by now could have already seen a redesign of the redesign. This issue is 
just a perfect example, that making no decision is the worst decision at 
all.

Both issues indicate that we've seen some very very slow process in the 
past. But i think, the 'Helma Project Bylaws' show a way out of this 
dilemma. And the longer i write this email, the more i can see how it 
will actually improve things. Still, I wanted to point out that simply 
splitting responsibilities into 'modules' won't make the deal. The 
single, strong entity (person/committee), that brings the pieces 
together again, will still be much needed.

So, to sum it up: +1 for the draft.
looking forward to get things going,

  michi / knallgrau



More information about the Helma-user mailing list