When Damian Hickey set out to build an e-commerce system for reservations-based businesses, he was determined not to reinvent the wheel. By choosing to modify an existing open source e-retailing system he was able to accelerate the development process, but also took on board a score of additional problems.
A former UNIX systems administrator with Workcover Queensland, in early 2004 Hickey got the idea for building his application while searching for an e-commerce system that would help manage bookings for his wife's rapidly growing yoga business. He said his survey of available systems showed a spread of simple online check-out applications for product-based sales, but none were capable of handling complex time-based bookings.
By starting with an existing open source application, Hickey believed he could skip many of the early development stages and bring a product to market more quickly. He chose the osCommerce open source project as the base, due to its wide installed base, and high level of security and scalability. There are currently more than 11,000 stores using osCommerce, some of which have more than one million items in their catalogues.
While using osCommerce enabled Hickey to bring his product, dubbed osCommRes, to market more quickly, he didn't count on the many problems he would inherit.
"For us we have had to code a lot of problems out of the equation," Hickey says. "I can't count how many bugs we've taken out of osCommerce as we've built. Just simple things, like conversion between kilograms and pounds weren't in the system. And lots of things were done in a cumbersome way. A lot of our work has been to make sure that if you change data at one place, it changes it right across the system."
He says the challenge has been in taking an open source project and turning it into an enterprise-class e-commerce system.
"It's a lot of work, because we're moving into an industry which is fairly immature," Hickey says. "No one could really tell me what a world class booking system is, so we are making up things as we go. Not only are we professionalising the application, we are also trying to foresee what customers are really going to need, and provide guidance to them."
Working from an existing code base has not been without benefits however. Hickey says that should a client ask for a specific extension, such as a European payment module, chances are that someone has already developed one for osCommerce.
"And while we might have to rewrite the code, it gives us a base for understanding how that module might work."
It also fulfilled his goal of accelerating its delivery to market, allowing osCommRes to deploy its first beta site for Hickey's wife's business in March 2005. Other sites are now appearing, including a scuba dive booking service, Diveabout, which is being used as a showcase for the application's full range of capabilities.
Hickey realised early in the osCommRes project he needed help to complete his vision. So it was fortuitous that early in the process he came in contact with Durai Prasanna, a developer based in the Indian city of Sivakasi, who had already been developing customisations for osCommerce. The two are now joint shareholders in the development company, with Prasanna taking the role of chief information officer and managing an eight person development team in India.
All development work has been done in PHP4, beginning with Dreamweaver but since moving to Eclipse. Hickey says he would prefer that the application be developed using PHP5, but as he estimates that 80 percent of servers on the web are still running PHP4, they have opted to stay with the older version only.
Documentation has also been important for the project, with Hickey putting a great deal of effort into the area. Having decided that the documentation that came with osCommerce was inappropriate, he has since created a user guide for his application that has reached 475 pages. The company has also begun writing an accompanying developer guide.
"It's an awful lot of work to go from an amateur project to a professionally managed project," Hickey says. "We are coming out of that transition now."
According to Prasanna, the original documentation was inconsistent, a fact made worse by the inconsistent nature of much of the coding from the open-source project.
"So we planned some specific routes so that all coders who see the source can understand it easily, and see how the same flow of code should be followed," Prasanna says. "Since it is open source everyone can see the source code, so it should have some standards."
The team began working with 46 base function tables within osCommerce, but has since increased that to 184 tables, to cater for the services, events and subscriptions capabilities that he wanted. The team has also included capabilities for SMS and e-mail marketing, along with a call-centre ready backend. The most recent version added numerous new improvements, including a drop shipping module, installer compatibility testing and support for additional subscription styles.
Development is continuing, with the osCommRes team working on two major projects to create a simplified front-end templating system, and a more user-friendly back end using Ajax, and increasing the integration between the major features, such as booking a room and being able to run a meeting there. The team is also working on an open source extension for allowing the uploading of video content to the application, which should be available at the end of January.
"We don't stop — we're bringing out serious code every week. We just put a hundred pages into the documentation in the past month," Hickey says.
Version control for the project has been managed using Subversion, although Hickey says this has also been a place for additional work.
"Already in our system people see when a new version is ready — that is flagged automatically and they can click through and see the changes. We want to make it as easy as possible for users to do automatic updates, and we want that process to be free for them, so we are trying to integrate a Web-based tool within the administration section of osCommRes that uses a Web-based interface into Subversion."
osCommRes has also opted for an unusual approach to software configuration management, eschewing established large-scale management tools in favour of the Jtac project management tool.
"We figured that because we were a software development house we could work out how to do it economically and successfully to our custom purposes," Hickey says. "So we looked at a bunch of tools and decided we could do better. We're in the position now of liberating the organisation, so that developers are passing tasks backwards and forwards amongst themselves and are really starting to take ownership of it."
"Our goal in the backend was to make it so that the development process could become a bit more organic, and that is really starting to take root now. It has been a real joy to see how it supports a stable workflow through business analysis, designers, coders and sysadmin/migration. It has increased our productivity quite a lot."
A future step will be to allow users to easily lodge defect notices.
The osCommRes application had been developed along the same principals of the General Public License as the osCommerce project on which it is based, and is posted to the SourceForge repository of open source software code and applications.
Hickey concedes there is some commercial danger in having a product they have invested 9000 coding hours in available to the public under the GPL, but says he intends to generate most of his company's revenue through ongoing development and integration revenue.
"Our business model is to provide high-end on demand services and customised services for customers," Hickey says. "There are potential dangers for a company in developing that way, but we're building a business model that we think will be sustainable while still developing for GPL."
Although adhering to the GPL conditions, Hickey's work on osCommRes has drawn criticism within the osCommerce developer community. When Hickey publicised the osCommRes launch he was contacted by one of the osCommerce senior team leaders and told he would hear from their lawyers regarding trademark and copyright infringements. But no follow-up contact has been made.
"The osCommerce project has been quite hostile to what we are doing, from the very beginning, and done their best to ignore us," Hickey says. "Thinking about it from their side, it would be pretty daunting to see us building so quickly on their base and improving it so much."
osCommRes is not the only project to have spun out of osCommerce. The popular Zen Cart and CRE Loaded e-commerce applications were originally based on osCommerce code, but have undergone rapid development since that time.