Evolution of a Corporate App
In the beginning, there was a weekly email to 4-7 people (and one guy in BCC field) with some sales figures – Johnson sold this many of Product X, Williams sold this many of Product Y, and Stefanopulo sold none and perhaps got canned.
Then, somebody decided it would be cool to not copy and paste those lines into an email all the time, so that’s how Monthly Sales.xls was born.

Then – a breakthrough! Each day of sales can be tracked on a separate worksheet!

Wow! We can now fit like an entire month into this file! When a month is over, we’ll just make a new workbook! And to be completely awesome, we’re gonna NOT follow a naming nomenclature and keep random crap in the folder!
This is a sample Sales Tracking System:

On one bright sunny day at the end of a fiscal quarter, management decides they want to know who sold what, for how much, and so some charting. Manual copy-paste hell ensues. People are working till AT LEAST Saturday, conglomerating hundreds of malformed Excel files into one big master Excel file.
The efforts are gargantuan as there are no templates of ay kind, and data in each sheet looks slightly different. There’s Johhny, sipping on his Coke, methodically copying and pasting values from cells in a horizontal row into a vertical column. He will waste his company countless hours of labor because neither his superior nor Johnny are aware that a simple Copy – Paste Special – Tranpose would automatically convert anything horizontal into a vertical range, and vice versa.
There’s Jennifer – while biting her lower lip, she’s trying to set up permissions for the folder so that other people can access the file, but the concepts of a “Network Share” escape her.
When the master file is done, it will look tweaky, but presentable. “Whew“, everyone will say, and nervously laugh.
Some time after this little fire drill, Stefanopulo will decide that he’s more less an expert in “data”, so he will do the unthinkable.
He will design an Access database.
On some slow Thursday morning, he will “create a new database“, and doom his teammates to corporate hell. By designing a crooked, completely unvalidated BLUE form connected to a query created on a table with lookups, he will trick the co-workers into using this abomination for a week or two.
After that, it will be too late.
As the word gets around that the Sales and Quality department has an “app”, more and more people start using it. The *.ldb file is now always next to the *.mdb file, and those two evil creations are silently waiting for their next prey.
The MS Jet Engine 4.0 is creaking, but working. As user number 40 gets into the database, it squeeks, and dies. By that time, there are at least 50 queries on top of queries, 30 tables linked together on MEMO fields, 20 forms and subforms, and 40 reports in blue italic font.
Stefanopulo is now on duty to “compact and repair” every Saturday morning. While he’s waiting for the backend to finish “repairing”, he quickly writes a subroutine and a query to “validate” the dates users enter. The sadistic AUDIT TABLE is born. It corrects all user entries where CLOSE dates are BEFORE the OPEN dates … on the backend.
As users enter more and more invalid dates, the audit system grows more complex, though reports are still shady because Stefanopulo doesn’t know the culprits of a LEFT JOIN.
Finally, the Access app grows so large that users (now completely hooked) start complaining DAILY. A PROGRAMMER is commissioned. He will fix EVERYTHING! He will move everything to a SEQUEL SERVER! O-O-O-O-O-O!
Four months later…
The programmer is still tweaking the Access app. The data structure is now so inefficient and crazy, that he buidls another app just to migrate the data from the old app to the new backend … but he missed a few things, and the tool does not port properly.
Five months later…
A buggy See Sharp app is born. It pukes up the yellow stack every time you click a button.
But it’s fast …. er. That’s all that matters.

