Thursday, July 3, 2008

Structure and Sensibility

Today's Rant:

Is there anyone out there who still remembers doing machine language? Assembly? Algol? FORTRAN, even? If so, consider yourself blessed. You had to learn how to write tight, precise code to fit into a small amount of memory, sometimes only a few Kilobytes, and squeeze out the most speed that you could. Not only that, but if you were running on the "big" IBM-360 or something of that nature, then the code had to be reviewed by your co-workers and then by your supervisor BEFORE ever running it - sometimes you even had to have a complete model of what you wanted to do before hand.

Today? No models. No reviews. Just a bunch of web-weenies slinging code hand-over-fist just to see what will happen. No design, no thought process. And, when he / she gets through with it the only question asked is, "Will it work?" If the (usually using the 20% testing covers 80% of the situations rule) test cases (let's just "assume" that there ARE test cases) produce the right result it probably will be rushed into production.

And then it happens. Somebody crashes into the system via a "little known bug" in the software. Or, because the testing was not extensive enough, the performance is crap. That's when the "fit hits the shan" and heads begin to roll. All because the business guys believed some young punk salesman (or an old silver-haired fox) who guaranteed them that it would work and perform blazingly fast. (My friend Yaakov Kohen wrote a blog on this a while back at on why rulebased and BRMS projects fail.)

"Those who will not learn from history will be forced to repeat it." (Was that Ben Franklin or someone else? Doesn't matter. Probably Descartes or Plato or some other philosopher from the past that our children today continue to ignore.) At point here is that we, the IT guys, the supposed "brains" of the projects, do NOT force the project managers to STOP and actually do the design work first. They (the PMs) come to the geeks and tell them, "We have to have 'something' to show for the past two weeks of work." And thinking is not something that you can show. Gathering data and rules is not, usually, something that you can show. BUT, if you make it understood up front that nothing tangible will be produced for the first 50% of the time allocated for the project (which is usually not enough time to do anything of any consequence) you still be get that same, tired, worn out line from the PM. "What do you have for me to show to the VP or CEO or some other person who controls the purse strings."

Remember when the VP was a geek? And he / she could not only understand what was happening but could ask really good, discerning questions about what was happening? And could keep the CEO off of your back until the time was right? Well, those guys are gone. Now all that we have are nit-wit, MBA bean counters who haven't the foggiest notion of anything that would help the company beyond the next two or three weeks. Long-term goals and benefits always give way to the short-term rewards that are usually accompanied by long-range disasters.



Michael Neale said...

I had to learn assembler. Heck we had to assemble our own memory, and then add support to the OS for the new memory bus. You learned a lot about debugging the hard way.

But a lot of these "modern" problems are not technical at all - they are people, and market issues. If people and the market value the short term results over long term, then the technology will follow through as well.

Pete Carapetyan said...

James, your most current rant is - as always - right on, but misses the point.

You could have made it much simpler and much more accurate if you simply said that "All things done by humans are usually pretty questionable."

By leaving out some human activities from your rants you leave the impression that things should make sense, and that the you are observing the exceptions and pointing them out to us for our corrective action. Yet I have never seen anything done by for or about humans that makes much sense excepting from some narrowly defined perspective.

Reading your rants is almost like reading "In Praise of Folley" by Desiderius Erasmus hundreds of years ago. They just go on and on. They are always right, it's just that the underlying assumption that things should make sense seems like such a whacked out assumption.

The silliness of this equaled only by the silliness of me taking the time to respond to one of your rants.

James Owen said...

Well, Peter - what can I say? Being compared to Desiderius Erasmus Roterodamus (one of the early translators of the Bible, ) is, indeed, quite a compliment. (Actually, it was "The Praise of Folly".) :-) The complete Latin text can be found at should you, or anyone else, care to browse through it.

I'm sure that if you read the writings of William Tyndale, Samuel Johnson (who did more than just write an English Dictionary), John Calvin, Martin Luther, William Shakespeare, John Bunyan or any of the others of that time, they also would have been just as "boring" as the rest. Not to say that you have not read these writings but most who read this blog have not. They did write some rather verbose and lengthy homilies - but they did so either (1) in order that their readers would understand completely what it was that they were writing or (2) for entertainment purposes or (3) that was just the way the men of learning and erudition spoke at that time of or civilization.

Remember now, you didn't HAVE to read any of this drivel and, even more importantly, you didn't have to comment on any of it either. But you did comment and that opens the door to another comment: To wit, I don't think that you addressed the issues in the blog but rather the manner in which it was written thereby attacking the form rather than the function of the blog. You did agree that what was said was correct but that I took too long to say it.

I did find your comment that, "All things done by humans are usually pretty questionable." to be interesting. But it had nothing to do with the blog that was critical of today's methods of software development and deployment and in praise of the former ways of software development and deployment.

Now, about your comment on leaving out the "human element" of the "rant": That was the main purpose of the rant - the human element that drives so intensely for the short-term rewards and totally ignores the long-term benefits of proper design, testing and implementation.

In addressing your last comment, aren't most blogs silly when you consider it? It's much like putting your ego and feelings on-line so that others can take pot-shots at them.

BTW, Erasmus was probably one of, if not the, most brilliant man of his time. He was called the "Prince of Humanists" and the "Crowning Glory of the Christian Humanists." Many kings and emperors tried in vain to get him to leave Rotterdam and join himself to their court and country. Like Bach, he was devoted to serving a higher poser and did not do things for money nor glory, totally unlike 99.999% of today's people. Indeed, he disliked dissension and wrote about it:

"I detest dissension because it goes both against the teachings of Christ and against a secret inclination of nature. I doubt that either side in the dispute can be suppressed without grave loss."

Others, such as Luther and Calvin, on the other hand, seemed to thrive on dissent and conflict. Indeed, our criminal justice system in the USA is built on the theory that from conflict we get the truth. Biblically (Proverbs 27:17) "As iron sharpens iron, so one man sharpens another." - a passage that has been adopted by many organizations. It can be destructive but, if properly constrained, differing viewpoints can be discussed in private or public debate and, even though the mind of neither participant is changed by such dialog, both can take away a better understanding of the issue from another point of view. Hopefully, that's what has happened here. :-)

Have a happy and safe Fourth of July weekend.


Rick said...

I took PL1...aargh!