Everything in Life is a Tradeoff

There will never be a shortage of people willing to spend other people's money.

Everything in Life is a Tradeoff

I wrote recently about Microsoft's announced deprecation of VBScript:

Microsoft Announces the Death of VBScript
As seems to be their new modus operandi, Microsoft has quietly rolled a hand grenade into the VBA development world with very little fanfare.

Over on LinkedIn, someone left the following comment on the post (emphasis mine):

I would like to see what all of you VBA developers are going to do when MS restricts VBA from interacting with the Windows filesystem. You have had plenty of advance warning to migrate your customers applications to another solution. What do you tell your customers that use VBA based applications when they confront you with the future of their VBA applications? As a customer I would be like "Either you migrate our applications to a different platform, or we will find someone else to do it!".

For whatever reason, this particular comment really got under my skin.

"You VBA developers"

So many people act like the only reason anybody would write an application in Microsoft Access is because they're too stupid or too lazy or too...something to write the application in a "real programming language."  

The real reason Access gets used (in most projects) is because it is the best tool for the job given the tradeoffs involved with every other alternative.

These tradeoffs could include any one or more of the following:

  • It costs less money to develop a solution in Access
  • It requires less development time to develop a solution in Access
  • It requires less programming skill to develop a minimum viable product in Access
  • It avoids the bureaucratic red tape required of enterprise software projects (internal Access projects often take the "beg forgiveness rather than ask permission" approach when it comes to formal project approval)

The bottom line is that there are many Access applications that could never exist as Java-based desktop applications or web applications because it would cost too much, take too long, or divert too many resources from other projects to provide the business with a positive return on their investment.

Migrate to a Different Platform or We'll Find Someone Who Will!

The obvious flippant response to such an obviously flippant request would be, "Sure thing, how big a check are you willing to write?"

The faulty assumption underlying the sentiment of this hypothetical request is that the only impediment to moving away from Access is that we, as VBA developers, are too stubborn (or lazy or stupid) to bother with moving to another platform.

The reality is that the main impediment to moving off of Access–especially if we are talking about a working system–is cost.  In short, it rarely results in a positive return on investment for the client.  

This Exact Scenario Actually Happened to My Company

At Grandjean & Braverman, one of our significant sources of revenue is a computer-aided mass appraisal (CAMA) system that we maintain for one of our county government clients.

CAMA systems are what municipal governments in the United States use to administer real estate property taxes. My company worked with the county's staff to build the system from scratch over 20 years ago in Microsoft Access. Since then, we have made incremental improvements, modified the logic to keep pace with changes in the law, and fixed the usual bugs that crop up along the way.  

A few years back, the county was preparing for a countywide property reassessment.  

The reassessment involved issuing new property valuations for all 60,000 parcels in the county. Unlike most states, Pennsylvania does not require reassessments on a regular basis.  This was to be the first reassessment in over 15 years for this county. A handful of companies specialize in this service, which typically costs between $2 and $15 million.  

Notably, these companies also sell accompanying CAMA software.

As you might expect, most companies would prefer to use their own software to conduct a reassessment.  With this in mind, the county explained they were considering moving away from us to a different software system.  There are very good practical reasons for this; the reassessment process is complex enough on its own without also having to work with an unfamiliar software package.  

I told the county I understood their position.

I even went so far as to echo the statements of the reassessment companies and confirm that the process would almost certainly go smoother if they could use their own software.  (For one thing, they would already know where to find everything.) Because we had a longstanding relationship with the county, they accepted my offer to sit in on the sales meetings with the three companies that were pitching their software and services.

After the sales meetings, I provided my honest assessment:

  • One system was awful and they should avoid it like the plague
  • One system was good and was roughly on par with ours; better in some ways, worse in others
  • The last system was very good; it lacked a few of the very client-specific features we had built for the county over the years, but was superior to our software in many other ways

The county appreciated my candor and input.

They approached the third company with an offer to buy both their software and their reassessment services.  

And then they found out how much the software would cost: $700K up front, plus migration costs, plus $100K+ annual maintenance/licensing.

In the end, they chose to work with the third company for the reassessment, but decided to stick with us as their CAMA provider.  In the meeting where they explained their decision, they only had one question for us:

"Are you sure you are charging us enough?"

OK, Not a Perfect Analogy

To be fair, this is not the exact scenario the LinkedIn commenter raised.

The county was not considering this move because they were concerned about the long-term viability of VBA as a development platform. (Spoiler alert: most clients couldn't care less what development platform you use; to quote SNL Sean Connery, "What matters is, 'Does it work?'")  Mainly, I think they wanted to do their due diligence when selecting such an important piece of software.

The point remains, though, that the decision of which software to use ultimately came down to one of tradeoffs.

Would the county have preferred a different software system?  It appeared so.

Were they willing to pay the enormous known costs to switch to that system, especially when the actual benefits were theoretical and largely unknown? Apparently not.

Conclusion

Life is full of tradeoffs.

Flippant statements that pretend such tradeoffs do not exist are one of my pet peeves (clearly).  To quote H.L. Mencken, "For every complex problem there is an answer that is clear, simple, and wrong."  Spending more than a thousand words to respond to an off-handed comment on social media may seem like a disproportionate response; certainly, there are better things I could have done with my time today.  

Ultimately, though, I decided my catharsis countenanced the current composition.

What can I say?

Life is full of tradeoffs.

All original code samples by Mike Wolfe are licensed under CC BY 4.0