Hi Hans,

Of course you do not have to agree. But, like you implied earlier: let's
put it to the vote and see what the outcome will. I assume that you will
adhere/comply to the result as well.

Regards,

Pierre

Op 19 maart 2012 13:15 schreef Hans Bakker
<mailingl...@antwebsystems.com>het volgende:

> Jacopo,
>
> I appreciate you reply and effort, can however not agree with you. Perhaps
> for you good reasoning, not for me.
>
> Regards,
> Hans
>
>
>
> On 03/19/2012 05:08 PM, Jacopo Cappellato wrote:
>
>> Hi Hans,
>>
>> please see inline:
>>
>> On Mar 19, 2012, at 9:05 AM, Hans Bakker wrote:
>>
>>  Hi Jacopo,
>>>
>>> Thank you for the effort you spend with OFBiz the last few months. I
>>> generally agree that sure we have to cut the dead wood in the system.
>>> Components and functions which are not used or only halfway implemented
>>> sure, sounds like a good idea to move them out.
>>>
>>> However the reasons you list as 'high maintenance' i do not agree with.
>>> Only with file changes there is work, otherwise it is pretty limited.
>>> Removing half baked code sure, lets remove it.
>>>
>>> The 'not complete' reasons do not apply to several applications and
>>> functions you want to remove because they are complete, like asset
>>> maintenance, LDAP, POS, e-commerce, cmssite(demo for the content component
>>> perhaps better to integrate it with ecommerce), projectmgr and scrum.
>>>
>> The "not complete" is not the only motivation: I have also considered if
>> they seem to be "used" and maintained; or if they follow best practices or
>> if they are very specific: some of them are actually a very specific way to
>> implement a very specific set of requirements and may be better represented
>> as independent optional components that can be downloaded and used only by
>> users with these specific needs.
>> Keeping all them in will also mean that, if and when the community will
>> decide to migrate a technology (e.g. from Freemarker to XYZ or from Screens
>> to ABC or from the OFBiz Framework to Moqui) they will also need to be
>> maintained and migrated by the community... when the user based may be very
>> limited.
>>
>>  Also moving the JCR function out is not a good idea however when not
>>> improved in the next few months using the content manager, i would agree to
>>> a removal.
>>>
>> Keep it mind we are preparing for the creation of the new release branch
>> (12.04): this would mean that all the future releases for 12.04 will be
>> bundled with an incomplete JCR/Jackrabbit integration that duplicates (but
>> not replaces) the existing Component framework. This is alone a good reason
>> for moving this work back to the development branch and will save a lot of
>> future work in backporting features if security issues or bugs will be
>> discovered.
>>
>>  Then I was even more surprised, because reporting is a pretty weak point
>>> in OFBiz, to remove the Birt integration and data warehouse entities.
>>>
>> I agree that reporting is a weak point in OFBiz; I disagree that the
>> integrated Birt component is the answer to this problem: the integration is
>> minimal and the reports that are implemented with Birt are very good
>> example of how weak the current integration is: they have a bunch of data
>> preparation code buried in them and their layout is very simple too. And
>> you still have to define controller entries for the reports and also
>> screen/forms for the parameters to invoke them... this is really a small
>> help provided by the framework; a real integration, ready to be released
>> with OFBiz, should do much more than this (like letting the user to define
>> a new report using the report designer only and then "publish it to OFBiz"
>> from there without requiring all these programming tasks). And as a side
>> effect for having this integration we have to bundle and deliver to all the
>> users a big amount of jars; instead this should be an optional (downloaded
>> separately) component that only interested users should get (and these
>> users will probably already have their own Birt setup). OFbiz should stay
>> lighter and should delegate the decision about what reporting engine to use
>> to the user. I suspect that, if the user community is really using this
>> integration to build reports, we would get a lot of them contributed... and
>> this is not happening.
>>
>>  I cannot agree with the removal of these components, Birt integration
>>> and JCR (in the short term)
>>>
>>>  Fair enough; we will see what others have to say on this subject as
>> well. Then we will take the best decision for the community.
>>
>>  Some other proposals:
>>> 1. I would like to push for more junit tests and use even this as a
>>> measure to keep a component in the system or not. (cobertura minimum
>>> percentage?)
>>>
>> This is a good idea indeed if the presence/lack of junit test will be
>> used as an additional element for the decision; but it can't be the only
>> one because we could have a component that has a lot of junit tests but for
>> some reason is not a good fit for OFBiz (for example because its
>> implementation doesn't follow best practices, or no one is willing to
>> maintain it etc...); in this case it should be removed as well.
>>
>>  2. To have a lead committer appointed for every component in the system
>>> who will check incoming patches and will commit them, to relieve Jacques of
>>> some work.
>>>
>> I don't like very much this because it implies some sort of "ownership"
>> over code.
>>
>>  3. List functions/tasks with every committer, if a committer does not
>>> have a function/task or is not active for a year, put him on the emeritus
>>> list, if he gets active again put him back as a committer on his request.
>>> This to get a real committers (and contributors, see next point) list.
>>> 4. Also list contributors who have a function/task assigned either for
>>> creating documents, reporting errors or supply patches, list the
>>> contributions he/she did so we can keep up if he/she could be nominated to
>>> be a committer.
>>>
>> These last 2 points are probably off topic here (please discuss them in
>> another thread) but I will provide my quick feedback because they are
>> interesting:
>> * I like the idea of point #4 for helping us to keep track of future
>> candidates for being committers; we could also keep track of commit
>> revisions where they patches have been submitted
>> * I don't see the need for such a formal process for #3: it may be
>> interesting to formalize who is active (with commits or reviews etc...) and
>> who is not but it is already quite evident from the lists because we are a
>> small group; this would also add some unnecessary overhead on the
>> community: keep track of contributions, vote to move them to emeritus
>> (contact infra to revoke commit rights?), and back if they want to come
>> back (contact infra to regrant commit rights?)
>> * when we talk about "contributions and commits" as a means to evaluate
>> how much a contributor is helping the project then I would like to stress
>> an important point, that was not considered until now: the
>> contributions/commits must be inline with the current roadmap and
>> priorities chosen by the community; otherwise, even if committer X is
>> committing a huge number of code on a component she is working on for some
>> personal interest, but not solicited by the community, then it would not be
>> considered a "top contributor"
>>
>> Thanks for your comments.
>>
>> Kind regards,
>>
>> Jacopo
>>
>>  Thanks again for your activity, keep up the good work!
>>>
>>> Regards,
>>> Hans
>>>
>>>
>>> On 03/18/2012 04:10 PM, Jacopo Cappellato wrote:
>>>
>>>> In the last period the OFBiz project has grown a lot in shape: the
>>>> implicitly accepted (or tolerated) strategy operated by the active
>>>> committers was that the more features you could add to the official
>>>> repository the better was: you make happy the contributors, making them
>>>> feel like they are a part of something, and each committer could manage the
>>>> code implemented for his/her own projects directly in the OFBiz codebase.
>>>>
>>>> We operated under the concept that, since the code if "free" and the
>>>> author (committer or not) is willing to contribute it, then no one
>>>> should/could complain if it is added to the repository, if it doesn't cause
>>>> immediate problems to others; all in all it is an additional feature that
>>>> may be used by someone else in the future or if not would simply stay there
>>>> without causing any harm.
>>>> Following this strategy we got a lot of code like for example
>>>> Webslinger, seleniumxml, debian packages, all sort of specialpurpose
>>>> applications etc...
>>>>
>>>> Since there was not a central and agreed upon roadmap, no one could
>>>> really state that a contribution was not a good fit for the project: each
>>>> and every committer could add what, in his own personal vision, was good
>>>> for the project.
>>>>
>>>> The wrong assumption is that, since the code if "free" then it doesn't
>>>> harm to include it. This is completely *wrong*: the code is not *free* at
>>>> all because as soon as you add it to the repository then you add a future
>>>> cost to the community: you all know that in the software industry the cost
>>>> to maintain a piece of code is by far greater than the cost to write it;
>>>> and you *have* to maintain the code unless you want to have and distribute
>>>> stale code.
>>>> And this is exactly what we have now:
>>>> * high costs to maintain the code (e.g. I recently spent a lot of hours
>>>> to remove the Webslinger component)
>>>> * stale/unused/half baked code that causes confusion and bad impression
>>>> to user evaluating the quality of our product
>>>>
>>>> The message to all the committers is: when you add code to the
>>>> repository, you are asking the community to take care of its maintenance
>>>> costs forever. So please, add new code only when it is really beneficial to
>>>> the project and to a large audience of committers and users.
>>>>
>>>> It is like feeding a wild animal at the zoo with chips: everyone knows
>>>> it is bad for its health but when you are there it is so nice when it picks
>>>> the food from your own hands and you cannot resist and have to feed it.
>>>>
>>>> OFBiz is now suffering from serious weight issues: the committers
>>>> community is having an hard time to maintain the huge codebase, it is
>>>> difficult to keep track of all the features in the system etc...
>>>>
>>>> I think it is important to start a new phase of the project and focus
>>>> our energy in cleanup and consolidation of what we have. One step in this
>>>> direction is for OFBiz to lose weight.
>>>>
>>>> In order to get the ball rolling and focus on some concrete tasks I am
>>>> providing here some examples of stuff that I would like to see removed from
>>>> the project.
>>>>
>>>> IMPORTANT: Please consider that the list is not based on what I think
>>>> the perfect framework should be (so PLEASE do not reply stating what your
>>>> ideal framework should have), but simply on the following considerations:
>>>> * can the component be easily removed by the project? is it independent
>>>> and can live outside as a plugin?
>>>> * do we need all this custom code? can't we find a simpler, lighter and
>>>> better way to implement this?
>>>> * is this feature used by other code in the system?
>>>> * is the feature functional? or is it largely incomplete?
>>>> * is this an old component/code?
>>>> * is this used by a lot of persons? (this is tricky to decide but you
>>>> can get a feeling of it by reading the mailing lists, considering commit
>>>> activity, the status of the feature etc...)
>>>>
>>>> DISCLAIMER: I know it will be a painful decision because each of us
>>>> reading this will have a connection with some of the code listed below:
>>>> several hours spent on it, great ideas that never came to a finished plan;
>>>> in fact I feel the same for a few of the things in the list.... there are
>>>> great ideas that didn't come to a finalization... it doesn't mean that
>>>> moving them out of the project will kill them and this may actually help to
>>>> get more visibility and different user group; so please when you will read
>>>> it... think to the greater good of the community.
>>>>
>>>> Legenda for what I propose for each piece of code:
>>>> * Attic: remove from code base and document the removal for future
>>>> reference in this page
>>>> * Extras: identify a person interested in maintaining the code as a
>>>> separate project hosted as an Apache Extra project (not officially under
>>>> the ASF); add a link to it from the page that will contain "OFBiz Extras"
>>>>
>>>> And now (drums)..... THE LIST - PART 1(but this is really a very first
>>>> pass only, PART 2 will come soon with more granular - subcomponent -
>>>> details):
>>>>
>>>> A) move framework/guiapp out of the framework; after all these years no
>>>> code made advantage of it being part of the framework and it is only used
>>>> by the specialpurpose/pos component (which was the component for which it
>>>> was built for); so guiapp can go in the pos component
>>>>
>>>> B) specialpurpose/pos: move to "Extras"
>>>>
>>>> C) $OFBIZ_HOME/debian: move to "Attic"
>>>>
>>>> D) the seleniumxml code in framework/testtools: move to "Attic"
>>>>
>>>> E) specialpurpose/workflow: move to "Attic"
>>>>
>>>> F) specialpurpose/shark: move to "Attic"
>>>>
>>>> G) specialpurpose/ofbizwebsite: move to "Attic"
>>>>
>>>> H) specialpurpose/*: move several (if not all, apart ecommerce) of the
>>>> components to "Extras" (if there are persons interested to become
>>>> committers/maintainers) or to "Attic"
>>>>
>>>> I) $OFBIZ_HOME/themes/*: move a few of them to "Attic" and a few of
>>>> them to "Extras"; keep just one (or two)
>>>>
>>>> J) framework/appserver: move to "Extras"
>>>>
>>>> K) framework/jetty: move to "Extras" (or "Attic")
>>>>
>>>> L) framework/birt (and related dependencies/reports spread around):
>>>> move to "Extras"
>>>>
>>>> M) framework/bi (and related dependencies - ecas/business rules and
>>>> data - spread around): move to "Extras"
>>>>
>>>> N) framework/jcr: move back into the Jackrabbit branch until the work
>>>> is completed and can replace the existing "content framework"
>>>>
>>>> O) framework/documents: move the content to Wiki and then move to
>>>> "Attic"
>>>>
>>>> P) framework/datafile: (who is currently using it?) move to "Extras" or
>>>> "Attic"; we could replace it with commons-csv or similar tool
>>>>
>>>> Q) framework/example and framework/exampleext: move to specialpurpose
>>>>
>>>> Kind regards,
>>>>
>>>> Jacopo
>>>>
>>>>
>>>
>
>

Reply via email to