Monday, June 27, 2011

Thirty Years Of Jobbers - Chapter 1.5

One thing I have learned the hard way over the past thirty years is computer programming requires that you get a complete overview of the entire picture before you begin writing the code. It’s rarely done this way; partly because it cost too much, and partly due to the fact you need to show some results before you get fired.

Programming has remained much a mystery to most business people. Part of the reason is because the data processing industry wants it so. After all, if we can keep you scratching your head and wondering how we accomplish all these wonderful feats of magic, you won't scream too much when you get the bill.

Unfortunately, that practice has turned around to bite us. The business person who has felt rather "abused" after all these years, doesn't realize that their businesses have become so complicated it truly requires a great investment in capital to get a decent computer program written these days. Subsequently, they continue to operate on what the industry refers to as "legacy code" that is doomed to collapse like the proverbial house of cards.

The proper design of a computer system is infinitely more complicated than it was when I started putting David's brain into that micro-computer back in 1981. To begin with, even if we had the knowledge we have today, the tools to design a system in the proper fashion did not exist until much later. And the reason the tools didn't exists was partially because the computers necessary to create and run these tools had yet to be invented. It wasn't until sometime after the year 1990, an affordable computer system capable of running properly designing computer software, made its debut in the marketplace.

Another reason computer software was designed improperly in those days was because computers weren't fast enough and large enough to run a properly designed program. So you ‘danced with the guy that brung you’ so-to-speak. Example: I always maintained two versions of my programs: One for the bulk of my customers and another for those who preferred innovation over just having something that worked. Maintaining computer programs is similar to handling explosives. One little mistake can blow up in your face. This makes it more and more difficult to give clients what they need without telling them they've got to spend more bucks on their computer.

As a rudimentary example of how things changed, payroll data was stored in most computers in summary form. For example, an employee's check consists of several bits of information… the check itself, a deduction for federal withholding, FICA and Medicare, child support, and as many as three or four different pay-rates. In the convenience store business, a single employee might work at several different stores. Keeping track of all this detail became a serious problem.

Back in the day, computer programmers designed payroll systems to roll-up transactions into pay periods. Since payroll reports required quarterly information, because of severe space restrictions the most you could afford to store was at the quarterly level.

No comments:

Post a Comment