Friday, June 05, 2009

The Story of the Throttle and the Funnel

Once upon a time there were two friends, the throttle and the funnel. They both were similar in appearance, in shape and in many other ways. They played in the same yard together, and many people assumed that they were as alike as possible.

As sometimes happens with the childhood friendships we all encounter, the relationship cooled a bit the older the two got. They were still cordial, but one could no longer call them friends, as true blue as they had been. Indeed it was a split of interesting proportions, for their behaviors began to grow to be thoroughly different in intent, though similar in performance. The funnel studied diligently in school, constantly working toward applying his knowledge in just the right way. He grew to develop very fine skills in the use of and manipulation of his knowledge, and because quite successful in his pursuits.

The throttle was a very different sort. He grew to be power hungry, using his skills and knowledge to force other to do things as he wished them to be done. If there was something that he did not know or could not do, he tried to outlaw it, and if he couldn't do that, tried to discredit it as thoroughly as he could. He tended to be lazy, resting on his position until he physically couldn't, then working only hard enough to develop a little bit more, then that new knowledge once again went into the power control syndrome he suffered from.

One day someone decided that perhaps these two former friends could be co-workers in a more friendly setting, so they were both recruited for a project. One fine morning the funnel showed up and began his work. The project was a great and powerful one, into which a lot of power was invested, and funnel's skills at taking in large amounts of power and refining it until only the best was actually released to do the work came in handy.

Throttle was a different story, though. He grudgingly agreed to come to work, and on the way in he spent an inordinate amount of time talking to anyone who would listen about how ancient the funnel's ways were. He even suggested that the funnel was not necessary, pointing out that he could do basically the same type of thing at the beginning of the work. When he arrived, he installed himself at the very head of the operation, only beginning one thing at a time and passing through only those things for completion which he could do himself.

The project was a disaster. There was a great power capability in the tool, and the funnel could refine the output so that it was precisely what was needed, but the problem came in on the throttle's end of things. Throttle only let in one thing at a time, and then only the things he understood, so that there was a great amount of potential lost even before work began.

Two similar creatures, with dissimilar functions - how did this come about? The answer to that question is the answer to a lot of what ails us in the IT world today. When one tries to limit things entering a system instead of refining what comes out, they limit the flow available to be used within that system, which by definition restricts the output. Throttle was so focused on understanding and ordering everything along the lines of what he could do that the potential and performance were lost. Try as he might, funnel could only apply his skills to the small trickle of information. Funnel was too busy working to be able to reply to the Fear, Uncertainty and Doubt (FUD) put forth by throttle to explain the problems in the system, much to his detriment.


This little tale originally grew from an issue that I'm currently helping sort out with a search done in DB2. There is a user interface that appears to be limiting the power of the search capabilities of DB2, and hampering the results being given as the result. I know the problem is not in the capability of DB2, nor in the capability of the displayed results from the search, so it must lie somewhere in the work being passed through the 'throttle' into DB2.

The interesting is that this also brought to mind several situations we encounter as system architects, designers, developers and deployment managers. One 'biggie' is the whole fallacy 'the mainframe is dead, ancient, bad, [fill in the blank]'. It isn't, and now that we have clearly seen that installing a hundred little boxes carries an environmental and financial cost that isn't good, suddenly putting all those little systems back into a larger one, generally through virtualization, is now a good thing to do. If you know anything about the architecture of a mainframe versus that of a PC (x86 or other distributed server architectures) you know why the mainframe has gotten a bad rap. Instead of having throttle sitting there processing one command from the keyboard, then one from the mouse, then one from the graphics card, then one from the disk drive, then one from the network drive, etc., there are separate processors for those inputs and the subsequent outputs so that much processing happens at the same time.

That architecture can't do everything, because there is a need for the user interface, which mainframes are not good at. The funnel of information from the mainframe to the PC for display is thus the best way to handle large amounts of information. After all, though we place a high value on the eye-pleasing designs and displays, we pay a heavy price sometimes just to get the most rudimentary information when we try to shoehorn all that processing into a PC infrastructure. The 'round-robin' processing and different programming methods used on the platform are the throttles at the start of the process. I've seen too many 'workarounds' just to try to get the most rudimentary things done on the distributed platform to feel differently. Think of it this way - the headlights on a Nextel Cup car are decals. The whole car is a beastly machine, and when you get to the display, it's just that. Forcing all systems to go to a PC is like taking the dirty old engines out of those cars and putting in little electric motors that put out nice little LED displays.

There was one other thing that came to mind, though, affecting every professional. If you take a systems-centric view of your work, often you will find the job of a professional is to serve as a funnel, but there is a throttle installed in front of you serving to limit your efficacy. When you see one of those, the story this started with becomes a little too true. The throttles will insist they serve as the conduit of information, and will pace that information through whatever processes have to occur, and in some cases that is necessary from a legal standpoint, but I'd venture an educated guess that most of it is driven by the need to wield positional power in a realm where subordinates possess a greater depth of knowledge. Insecurity often brings out the worst in others, and thus is born the throttle.

I have seen this at work in design specifications, as well as other places. I saw more than 100 hours shot once because of a reluctance to ask subordinates for information. I once worked for someone who ignored the recommendations of an entire staff in favor of a project they wanted to do, and when the project stalled tasked the same people who warned it would fail with fixing it. We all see it every time the comment is made that feedback is welcomed, and then notice it really isn't. These are all throttles to performance.

The desire to appear to know as much as multiple people is a fatal and sometimes expensive personality flaw. The throttles of the world need to follow the maxim of, "Hire well, trust well, and perform well." (I just made that phrase up, but the concept of hiring the best then letting them do the job for which they were hired has been a cornerstone of real success for eons.]

That said, here are suggestions for life as a funnel:

1) READ!!! When you attend classes toward a degree, you and everyone else read the same books, and take the same tests. Your knowledge is virtually identical when you graduate. Your competitive advantage comes with what you do once the schooling is done. You learn to analyze and synthesize, and develop your funnel characteristics, but if you stop learning, what began life as a funnel will eventually become a throttle.

2) Go forth and work boldly (apologies to Martin Luther)!!! Doing just the bare minimum will yield you the bare minimums. It isn't a salary or benefits issue, it is a self-worth issue. One of the reasons slackers (we are all slackers from time to time, McFly) get defensive is that they know inside that they aren't giving it their best. As hackneyed as it may sound, doing your best is the only way to win, regardless of the stakes.

3) When you think outside the box, make sure you're not getting out of the box and staying in the box factory, which is nothing more than a larger box!!! A lot of ideas are the result of a compromise between the status quo and the original idea. Your idea not only has to be larger than normal to provide decent progress in the scheme of things, it needs to be really large to pared down and still retain revolutionary status.

On the opposing side, here's how to be a throttle:

1) Become convinced you are highly-intelligent and need no more learning in order to be useful. The worst thing in the world is someone who willingly works under the title 'expert', because with it comes a high degree of hubris. The second-worst thing in the world is someone with so much self-inflicted hubris that they can't entertain the notion that they are fallible. That's what will get you hurt. As a side note, if your son ever asks you if you turned the power off, go check don't just assume you flipped the correct breaker.

2) Start thinking of people in terms of blocks of time. In a couple decades in the work world, I have observed two very different approaches, one too rare and the other too common. The too common one is the commoditization of the work time. The world seems to be filled with people whose sole performance ability is the ability to be ten minutes early for work each and every day. Bluntly, if your claim to fame is that you're always in at 8 and out at 5, you really haven't accomplished anything. I staunchly stand up against this sort of time measurement because it takes from the trust relationship between an employer and an employee without giving productivity or connectivity. This is especially true in an environment where you are on-call and/or working on the weekends. If you watch the clock at 8, your employees will do likewise at 5.

3) Be "agin' it" without having skin in the game. Part of being a funnel is taking in information and analyzing it to synthesize an opinion. If your opinion begins with the words, "Oprah says," or anyone says for that matter, then you have probably not studied and learned sufficiently to form a reasoned opinion. To illustrate: a joke played on my wife. My son and I were in the store and saw a bag of Chihuahua cheese. We bought it and set out to convince my wife it was made from the milk of the little dog, hence the name (it is really a region of Mexico, but if you're married, you know the value of a good 'goat-getting' of a spouse). She didn't believe it and then went to the internet to look it up. If she had followed normal behavior the joke would have worked, because the first hit she got was one of the social dictionaries and someone had jokingly put that it was made from the milk of the dog. She doesn't single-source anything though, and the gig was up as soon as she did more digging. How many times have we believed something presented third person, or something we read from one source on the internet, thus throttling our thought processes and available information before it got to the critical stage?

Please funnel me your reactions to this. It's a bit long, but sometimes you have more to say than a tweet could hold.