20100428

Businessware

Businessware is what we call our in-house "enterprise" software system in Amici Water Systems.  I'm still actually planning to change the name as the name seems pretty common.  However, it's been running since the 3rd quarter of 2003.  Like all living software, it has gone through constant overhauls and changes, lots of refactoring and feature bloats, and a to-do list that's getting longer than shorter.

At the start of our software production run, I think our company was composed of just 5 persons --  our manager, me, a sales assistant, and 2 service technicians.  I was the IT guy managing the hardware and software of one computer, developing our database and software system, and encoding our records. 

Businessware was developed using Delphi for the front end, with MySQL as the database server.  Cross platform was a major concern during early development, but that was partially mitigated due to success using WINE under Linux to run the software.  (I am still hoping to make the system PostgreSQL compatible.)



Fast forward to now, our company now has over 30 employees, more than half of which use our system concurrently.  Our software system is now in use in over 20 different locations around the Philippines, by our group of companies in particular, but also by friends' businesses.

One major challenge I had with development is the customization I had to do to satisfy varied work flows and requirements of different trading companies.  We're all still running on one source tree to simplify updates and share development costs.  I've been somewhat successful generalizing program features so that they can be adapted to different company policies.  This entailed a lot of switches and features that are not applicable to all companies.

Another challenge was our company migration to Linux.  While I still develop using a Windows machine, our group of companies' major platform is now Linux.  Furthermore, some of my friends are now using Vista and Windows 7.  The different platforms available complicated software testing and distribution.  (It doesn't help that I don't have a Vista or Windows 7 OS to test on.)  Testing might be simplified a little through the use of virtual machines.  Part of the distribution problem was solved through a fairly new auto-updating system.

The biggest challenge however is revenue.  I mentioned that friends are using the software.  That's not really a good source of revenue.  I haven't actually commercialized the system, or try to sell it outside.  But I realize the need for revenue to support the software.  Software with lots of users require constant support.  Development, documentation needs manpower and more licenses. 

After almost 7 years of production run, I'm still the only programmer of our system.  In fact, I am the whole IT team of a company now with more than 20 computers in an office, managing the hardware and our network, managing our databases, websites, fax, email, IM, VPN and other services.  That doesn't bode well for redundancy and resiliency.  I guess it's high time to manage estates.  Revenues and businesses have never been my forte.  But it comes to that, sooner or later.