1. Third party POS at retail outlets that require importing of its daily sales orders. That is done via mapping to the ImportOrder Loader. However the system does not have a Import Price one and so I need to create for it.
2. Legacy data of thousands of products and past ledgers that require scrubbing and migrating to the new system.
3. The main contractor who secured this project and engages me to resolve technical issues who assumes wrongly that this application, Compiere at that time is bug free.
This point about assuming open source projects to be bug free is interesting. In Compiere’s case, though it was open source, it was still new and maturing at that time. It also did not practice an open policy to accept bug remedies so as to protect its idea of intellectual property. Thus been a new maturing project is bound to have more bugs than expected. Also those bugs are what I termed as ‘Discovery’ bugs which are like bumping into them in the middle of the night. As I or no one else around has understanding or access to the minds behind the software we would not know what to expect from it. Any bug found is like an uncharted part of a map. They were disastrous for my client that time and the project quickly overran its banks, into months beyond the year.
This point about assuming open source projects to be bug free is interesting. In Compiere’s case, though it was open source, it was still new and maturing at that time. It also did not practice an open policy to accept bug remedies so as to protect its idea of intellectual property. Thus been a new maturing project is bound to have more bugs than expected. Also those bugs are what I termed as ‘Discovery’ bugs which are like bumping into them in the middle of the night. As I or no one else around has understanding or access to the minds behind the software we would not know what to expect from it. Any bug found is like an uncharted part of a map. They were disastrous for my client that time and the project quickly overran its banks, into months beyond the year.
For the ADempiere project, being a community fork of Compiere, there were much more practitioners and developers working with the same codebase and evolving their collective experience quickly thus producing enough ‘map’ material of the monster in their hands. Thus we could quickly resolve serious bugs and holes within the system. We could also figure out how to extend the model in its architectural sense. Carlos Ruiz of Colombia is chiefly responsible of noticing the need to control extensions by enforcing Centralised Record ID and use of the ModelValidator to protect core processes from mutating. However he was not the only one to think in that fashion.
Previously there were already the XML2AD by Marco Lombardo, 2Pack by Robert Klein, and ADCK by Trifon Trifonov.
This part of history is interesting. I actually worked with Marco Lombardo in his Compilo project back in 2004 for better Compiere technical documentation before he introduced to me his idea of XML2AD in transfering changes from one installation to another without repeating the changes of the AD metadata. I then roped in Trifon Trifonov who became active in my red1.org/forum and was about to leave his employer and ‘bite the red pill’ - another term for going fully freelance selling FOSS implementation services.
Trifon, based in Bulgaria, being a strong Java developer quickly picked up the concept of Compilo’s XML2AD and began helping to complete its opposite, the AD2XML. However Marco became part of a commercial enterprise that forks Compiere and sell their extensions on a closed basis, thus stopping him from releasing his AD2XML into the open. Trifon however introduced his part as open source but in his forked version which he called ADCK or Application Dictionary Customiser Kit.
Another developer from USA, Robert Klein in turn took a different path from the whole concept at the beginning but reuse and extended the Compilo model to fulfil what he called the PackIn/PackOut concept where the user need not deal with external handling of Druid or XML files. All the user does happens right inside the live application. It is a more automated form of ADCK. Robert called it 2Pack and released it separately into open source which he gladly assisted in integrating into our new ADempiere project.
Today the project has evolved to quite a dizzy height as a more advanced plugin architecture called the OSGI of Eclipse is now made feasible through the efforts of Andreas Schmidt but largely completed by Joerg Viola, both in separate outfits in Germany. All this coloured the wonderful world of community open source at its best which is now at its height or shall we say, it has not peaked and is still rising.

0 comments:
Post a Comment