Thursday, June 3, 2010

In Search Of Freedom


One of the things I've learned over the years is that most programming projects revolve around one simple core requirement: The storage and retrieval of information.


The co-worker/friend who (in the late 70s) gave me my first PC also introduced me to dBase II – a database program for the PC that stores and retrieves information. In very little time I had built a small business around writing programs based on dBase II. Eventually, my business grew beyond my ability to write and maintain my own software - so I turned to something else: An application framework that was based on dBase. Instead of writing applications from scratch, I could start with an existing application and modify it.


At that time (mid 1980s) there were several dBase application frameworks available. I chose to be a reseller/consultant for a product called SBT – which was an acronym for Small Business Technology (later became Software Business Technology, which was then bought by ACCPAC).


SBT was perfect for my needs – it was an application framework plus basic accounting applications that provided the foundation for any future programming project I might encounter. Although things started out great, in time I discovered that SBT had some serious flaws and limitations. I tried to share ideas to improve the application framework with the folks at SBT, but I was met with an attitude of superiority - they knew what was best and I was just a lowly reseller. My suggestions were ignored. That attitude frustrated me, but I remained loyal.


During that time I also supported and maintained accounting software (like ACCPAC and MAS90) that were based on other programming languages (Business BASIC). Eventually, SBT offered me the opportunity to be a beta-tester for an upcoming new version. I jumped at the chance.


I received top-secret versions of unreleased software to test. I ran the software through many tests - and I found a number of flaws. I reported the flaws to SBT, but the response I received was that same attitude of superiority I got in the past: I must be doing something wrong because SBT programmers are infallible. I was frustrated.


It was time to appeal to a higher authority. As a beta-tester, I had access to the project manager of the new version, so I forwarded my beta-testing conversations to him. His response? “We're too late in the development cycle to correct the issues you brought up.”


That made me decide to go back to writing my own software. To keep a long story short, I wrote two application frameworks – the first one in C++, and its successor in Visual FoxPro. Both versions met my needs as an application developer. In my efforts, I sought to overcome the limitations imposed on me by the commercial application frameworks I had tried in the past. My main goal in both frameworks was freedom freedom to expand on a base set of functionality so that I could add new functionality with minimal effort, and freedom to invent new applications the framework had not anticipated.


The problem was, I ran into the same situation as before – my needs grew beyond my ability to write and maintain my own software. I started to realize something. What I really needed was the best of both worlds: be a member of a team of programmers working on an application framework, and be a user of the framework at the same time. The question was, how do I do that?


(To be continued...)