From Visual Foxpro to Xojo, The Story of Pro-Ware

Xojo Developer, John J. Fatté, President of Pro-Ware, LLC talked with us about his very successful Xojo applications that are geared towards accountants. John didn’t start out as a software developer, in fact, his background is in accounting and he is a Certified Public Accountant. He taught himself programming and tried several different languages before finding Xojo, as he searched for a cross-platform development tool.

How did you get into developing software?  What is your background?

I graduated from college with a degree in accounting and aspirations to become a Certified Public Accountant. I was hired by a national CPA firm in Omaha, Nebraska and started my career in public accounting. I was involved in all aspects of accounting, from tax preparation, audit services, and even some forensic accounting.

In the early 80’s with the introduction of the IBM-PC, I wanted to get into computers but my CPA firm was not so forward thinking. The firm’s national office said that they would not approve the purchase of a microcomputer for the office because they couldn’t see the benefit of it.

I approached a group of other managers in our office and suggested that we pool our resources and buy an IBM-PC and rent it to our office. Six of us made an agreement with the partner-in-charge that we would buy the computer and they would only have to pay us $15 an hour for any time that it was used for client work.

Since it was my idea to make the arrangement with our office, they created a new department called the Microcomputer Department and put me in charge of it. I assumed the responsibility of scheduling time for the use of the computer as well as provided expertise in using it to its full potential. This was at a time when VisiCalc and dBASE II were all the rage.

The IBM-PC and printer cost close to $ 6,000, but after the first year, we had billed the office well over $ 21,000. They quickly realized the potential that this device could have for the office and we eventually sold the computer to them for our original investment cost of $ 6,000. This ended our rental arrangement, but not my interest in what you could do with these great tools.

It was during this time that I started learning and using dBASE II to create applications. I wrote a purchasing application for one of the office’s clients to track their purchase orders. The client loved it and I was hooked programming.

Shortly thereafter, our national office discovered that I was doing contract programming work for our office and requested that I not provide that service any longer since they had not yet assessed what kind of liability they might incur if something went wrong. I was still able to write some short programs for the office and the one that essentially changed my career was an application I wrote to calculate depreciation for a client. I was preparing a 5-year projection for a client and he had a pretty extensive fixed asset listing. I decided to write a program in dBASE II to calculate the depreciation for all of his assets for the next 5 years.

When I presented the projection to him and the fixed asset reports, he was so impressed he asked what I used to do the depreciation calculations. I told him I had written a software program to do that and his response was, “You should go into the software business and sell it.”

What a eureka moment! At this point, I was well into my accounting career and waiting in line for a partnership offer from the firm; however, I decided that my real interest was in creating software applications for accounting professionals. I felt that my personal experiences in public accounting would be an invaluable resource in the development of software tools for accountants.

I left the firm with four other guys who were to a lesser extent interested in the software business, but willing to pursue a business venture with me. That only lasted a year or two but during that time, I spent day and night writing what would be my first commercial software product. I called it Asset Keeper and it would be one of the first fixed asset programs for microcomputers. It was released in 1985.

Shortly thereafter, I created a company called PRO-WARE to develop software applications for the professional accountant.

Before you found Xojo did you use another development tool?

I was never educated as a programmer, so I had to use a programming environment that was less robust than using a more formal programming language like basic or cobol. At the time, dBASE II was very popular and a compiler called db II Compiler was on the market that would allow you to compile your dBASE code and distribute your applications without any distribution costs.

Over the years, Asset Keeper went through a number of re-writes as I migrated to newer database programming environments. After dBASE II, there was dBASE III, then Clipper, then FoxBase, and eventually I migrated to Visual Foxpro.

Visual Foxpro was an object-oriented environment with the huge advantage of having an integrated file system. It was essentially a complete programming environment that included a form builder, menu builder, report builder, supported SQL, and handled automatic record and file locking for you.

My programming staff grew as I added new staff to help with the development of new applications. They quickly adapted to the Visual Foxpro way of doing things and we were 100% reliant on it as our development platform. In 2007, Microsoft, which had acquired Foxbase, the foundation upon which Visual Foxpro was built, announced an end-of-life for the product. Of course, we knew that Visual Foxpro would continue to operate for many years in the future, but without any continued support and enhancements from Microsoft, it would be only a matter of time before it would not be suitable for our development needs.

In 2010, we began an intensive search for a Visual Foxpro replacement thinking that we would probably never find one.

When, how and why did you first discover Xojo?

Most Visual Foxpro developers belonged to an online community called the Universal Thread. I started exchanging information with a number of developers about what their plans for migrating away from Visual Foxpro were. Of course, Microsoft was pushing Visual Foxpro developers to Visual Studio, but there seemed to be push back from many in the Visual Foxpro development community. This became even more significant when Microsoft pulled the plug on Visual Basic, which left a sour taste in the mouths of many developers who were using Visual Basic as their development tool of choice.

It was about this time that I purchased a Mac computer. Because we were only developing our software for Windows, I learned how to run Windows in a virtual machine so that I could use it for my development needs. This turned out to be a pivotal event because it was shortly thereafter that I decided that our next development environment had to be cross-platform. This helped narrow our selection for a new development platform considerably.

I learned of Xojo by simply reading everything I could about anything that would meet our very specific needs. There were a couple of developers that mentioned Realbasic/Xojo on the Universal Thread and I started investigating it more thoroughly. The more I learned, the more I liked it and, it was cross-platform.

After an in depth look at Xojo, and the development of a few small internal-use applications, I decided that this would be our migration path away from Visual Foxpro.

Tell me about your first Xojo app.

When we moved to Xojo, we knew that it would take a year or more to acquire the proficiency to convert any of our existing applications. I decided that we should first develop some new applications rather than start off converting any existing applications. It would allow us to learn more about the language, develop a number of reusable components, classes, and modules, that could be used when we converted one of our Visual Foxpro applications.

I wrote a number of small applications that were used mostly in our office because I still wasn’t sure if Xojo would satisfy all our needs. From the start, I decided that every application that we created would be cross-platform.

One of the first applications of any size that we developed was a program called CIS, Customer Information System. We had been using a very dated application written in Visual Foxpro that maintained user information and handled our order processing services. CIS would be more ambitious and would include the additional features like being able to send out upgrade notifications and custom emails to inform our users of new features. We also built our own shopping cart in Xojo. This was impossible in Visual Foxpro because it had no web capabilities so we were starting to appreciate the features that Xojo could provide.

After we became more proficient with Xojo, we began creating a new version of Asset Keeper, our flagship product. Keep in mind that at the time, this was an application that was updated every year to maintain tax compliance and had been on the market for nearly twenty-five years. We knew that our users had some deep seated attachment for the way Asset Keeper worked and the way it looked. We also knew that re-writing it in Xojo would mean UI changes that some users would not be happy with and we would have to provide even more functionality if they were going to accept these changes and continue using our product. This would not be a conversion, but a completely new program called Asset Keeper Pro with roots based on our previous product.

One of the most challenging parts of the conversion process was building in a way to convert the DBF files used by our prior version to a Sqlite database. Asset Keeper maintains each client’s file for each year in a separate database, so a user might have more than a thousand client files and for each client, there might be up to ten prior year’s files. Our conversion routine had to be able to convert all their files at once without requiring them to select them one at a time.

Perfecting this process was much more difficult and time-consuming than we ever imagined, but we were able to eventually create a process that was smooth, reliable, and very fast.

It took 5 programmers a year and a half to create Asset Keeper Pro in Xojo. As we anticipated, there would be some users that would not want to move forward, but as of today, a year after we introduced our Xojo version, we found that more than 95% of our users have upgraded and embraced the new version.

What can you tell me about your Xojo applications?

Asset Keeper Pro is a full featured fixed asset application that has the advantage of being on the market for almost thirty years. It can be used by the professional accountant in a private enterprise where they just need to maintain fixed asset data for their company, or in a public accounting firm where they need to maintain fixed asset data for an unlimited number of clients using the built-in File Manager. There are no limits to the number of assets or number of client files that can be maintained. It is 100% tax compliant and allows the user to maintain 10 books for each asset. This allows them to make simultaneous depreciation calculations for GAAP (Generally Accepted Accounting Principles), tax, earnings and profits, Alternative Minimum Tax, Adjusted Current Earnings, or if their state does not conform to the Federal tax provisions.

Asset Keeper Pro is, and always has been, distributed with a site license and is the only fixed asset program on the market that is distributed that way. It is also cross-platform and data files are 100% interchangeable. The site license makes it a little difficult to determine the actually number of users, but a conservative estimate puts our user base between 15,000 to 20,000.

Quick Trial Balance Pro is an accountant’s tool for processing a client’s year-end records to prepare them for tax preparation or generating financial statements. Quick Trial Balance Pro is the only trial balance software application that includes the ability to generate professional level financial statements, complete with notes and additional schedules, in the same application.

Quick Trial Balance Pro is distributed with a site license and is cross-platform. Quick Trial Balance is currently in use by over 2,500 users.

Safekeeping is a digital wallet for your most important information, such as bank accounts, credit cards, network connection information, computer logins, etc. It is a Version 1.0 product and is currently being updated to Version 2.0 with new features and functions.

Credit Card Recordkeeping is for companies or small business owners who need to post their credit card transactions to their accounting system. It is also a Version 1.0 product and is currently being updated to Version 2.0 with new features and functions.

PFS MultiClient is a way to create professional looking personal financial statements in accordance with Generally Accepted Accounting Principles. Designed for the accounting professional who provides these types of services to one or more clients.

All of our applications use SQLite as the backend database because of its small footprint and third party support.

Who is your primary audience?

Our target audience is accountants who work for private companies or who work for public accounting firms. As a Certified Public Accountant, I have some insight into the way accountants approach their accounting tasks and try to take this into account when designing our software. My entire staff understands how demanding and meticulous accountants can be and have adapted to being just as conscientious about our development efforts as our users are about our products.

What makes your applications unique?

One of the things that we always try to do is add features that no other software of that type includes. Typically, this means identifying a feature or routine that would normally require the user to spend a great deal of time editing data that we can automate for them.

You will find these kinds of features in all of our software products. Very often, the idea for these features comes from our users. Each of our products includes a Feedback option that allows the user to easily send us suggestions for improving our products. We get hundreds of requests each year and we carefully review every request we get. In fact, we created a separate User Requests application so we can categorize and track their suggestions. We will even contact them directly if their suggestion is implemented so that they know that we are listening to them.

We like to think that we are a user-driven developers because it seems like the requests never stop coming.

How has Xojo affected your development process?

At the time when Visual Foxpro was our only development tool, we were pretty confident that it was all we would ever need. There is no question that it was and continues to be a great development tool, especially the fact that it is an interpreted language that requires no compiling to test your application.

When we started using Xojo we had to make some changes to our development processes that dramatically affected the way we approach creating a new product. With Visual Foxpro you could just dive in and start creating forms, programs, and tables without much planning. This actually added to the development time because there would be a lot of backtracking and retooling to get things to work the way they should.

Xojo requires a little more up front planning which in turn results in a more focused development effort. We still have the flexibility of changing course in the middle of a development project, but that seems to happen much less frequently. Consequently, we feel our products are more intuitive and have a better data flow.

There is no question that Visual Foxpro had its limitations, such as, Windows only development, no mobile platform, and no web development. These are limitations that have been wiped away by our move to Xojo.

My number one fear when choosing Xojo as our development platform was the effect it was going to have on the time-to-market, that is, how long it would take to go from design to a deliverable product. We were genuinely surprised that there was minimal effect. In addition, we were able to deliver a cross-platform application with a minimum investment of additional time and effort.

We are now very comfortable with Xojo and the new capabilities that it provides to us. As good as Visual Foxpro was as a development tool, I don’t think there are any programmers in our office that would consider it for a new application. Xojo is our tool of choice.

Learn more or check out Pro-Ware’s applications here.