Links
- LJ Flists: People
- LJ Flists: Communities and Syndications
|
Wed, Apr. 2nd, 2008, 04:58 pm [tech, psych, essay] When your tech tells you something is a Bad Idea

Dear employers (in the broadest possible sense) of technical experts (in the broadest possible sense, One of the commonest experiences in working with a technical expert is that you have come up with some plan for something you want to do and your technical expert tells you that it -- or some part of it -- is actually a Bad Idea and that you shouldn't do it. Sometimes, you'll ask your technical expert why it's such a bad idea, and they'll be able to tell you right off: "You said you want it to be blue. But if you build it with Java, none of the available databases support blue." or "You said you wanted it playable on gemshorn. Gemshorns only have a range of a ninth." And your response to this will, if you are a rational human being, consider this limitation and either change your requirements or give up the idea. (Predictively speaking, if you're an irrational human being, you will throw a temper tantrum of the "But I want it to be both made of asphalt and sold by McDonalds!" sort, and thereby make no friends.) Sometimes, you'll find your technical expert will reply in something which sounds a lot like gibberish: "If you do that, your flux capacitor will not interchange with your neutrino combobulator while it's in over-ride mode." You don't know what a flux capacitor or a neutrino combobulator are (heck, you weren't aware you had such things), nor what it means for them to interchange or why you would want them to, nor in what circumstances over-ride mode would be used. But you gather, implicitly, that you're going to want your flux capacitor to interchange with your neutrino combobulator while it's in over-ride mode, and you will inquire further to investigate the parameters of the constraint: can we dispense with over-ride mode? Is there some other neutrino combobulator (or for that matter, flux capacitor) we should be using? And what will this cost us, any way? And probably, if your technical expert is good at being a technical expert, you will discover that they're ahead of you and have already thought all these things through: they will patiently explain that you've sunk a heroic portion of your budget into these brands of flux capacitor and neutrino combobulator, and can't afford to replace them; and in any event they're the best ones for your purpose on the market; and over-ride mode is the basic default mode everyone runs in these days because MSIE12 will not operate in a 3 block radius around it if it doesn't. And, as above, either you'll abandon your idea, or announce, "Serves them right if they don't use Firefox! Off with over-ride! Banzai!" But sometimes, your technical expert will say something like, "But that would be Bad". And when you press them, they "explain" by saying, at most, something that sounds like, "That would violate the principle of FirstKumquatsLast." If you're lucky. If they're less learned, they may simply wave their hands in frustration and say, "It just is. Bad. Don't do this." There is an enormous temptation under these circumstances to say to yourself, "But I want it to be blue, and if they can't provide a Good Reason why it shouldn't be blue, then, dammit, I should get to have it blue!" Here is the thing you need to understand: In that scenario, what is overwhelmingly likely to be the Bad Thing -- and it is this which is so very hard to articulate -- is that by electing to do this Bad Thing now, you will be introducing more hard -- but as of yet unspecifiable -- trade-offs in the future.Let me elaborate upon that: There are trade-offs in any project. Lots of them. Life is trade-offs. That's just how the world works. But trade-offs suck. Of course you want to have your cake and eat it too. The last thing you want is to add even more trade-offs to your project, artificially or accidentally. The last thing you want is to tie together the fates of things which really would otherwise be able to optimize individually. It's easy to talk about a specific trade-off staring you in the face: "Either we can re-write it from scratch, or we can go to press with the previous version off the back-up tapes." "Either we hold the conference in the too-small hotel, or we risk not getting any hotel in time and having to cancel the conference." It's much harder to talk about things which will cause future, unknown trade-offs. For example, you may decide you want to use two specific technologies in conjunction, and your technology expert says, "Bad Idea", because they know that those two technologies aren't typically used in conjunction in industry. They may not be able to tell you right now what trade-offs that will force, but they know by the sick feeling in the pit of their stomach that a whole bunch will crop up. They may say things like, "It will limit our choice of third-party apps which inter-operate with both", which doesn't sound so dire -- until you discover neither love nor money will get you a wiki which can work with both, so now instead of having a free choice of which wiki would work best for your project, you have to choose which of these two system it's more important for your wiki to inter-operate with -- or whether you're going to write a connector (or wiki!) yourself to bridge the gap. But in any event, that's just a guess and a hand-wave and an attempt at a convincing example. What your expert really knows is something like this: a whole lot of what makes something usable is its ecology of use -- the bigger and more complex, the better. All sorts of resources come out of that ecology. Putting oneself into a very tiny ecology of use drastically reduces available resources. And resource scarcity forces choices. That sounds all terribly nebulous, doesn't it? What a vague and abstract thing to base a budget decision on! Especially if your expert only knows this in an inchoate, intuitive way, gleaned from their curriculum at the School of Hard Knocks, and which they cannot articulate to you in a meaningful fashion. Yet that is exactly the source of all sorts of project-crippling -- and project-destroying -- circumstance. That is the road of good intentions. Nor, to be clear, am I asserting simply the importance of keeping one's options open: The decision to keep one's options open may precisely be one of those Bad Ideas. As I just explained in the aforementioned 6hr meeting, "You may have as much flexibility as you are willing to pay for. No, you don't need a stable spec. Are you willing to invest the employee time -- and not just developer time -- in doing Agile right? Are you willing to invest in dynamically generated code?" Similarly, "Yes, you can decide not to decide what instruments you're instrumenting for, but that means you have to constrain yourself to the least common denominator of instrumental characteristics." In every field of human expertise I have encountered, there would up being terms for principles and "best practices" to guide the prudent practitioner's choices. This is part of why you want a technical expert -- precisely to know these things. Because these ideas are heuristics for success. Take for example "database normalization", a term that, unless you are a db geek, might as well be Sanskrit to you. It's exactly the sort of principle you might have your db expert say, "You don't want to do that, it would violate database normalization". There are reasons why one might want to make one's database store the data unnormalized. All those reasons -- pretty much -- are bad ones. They look convincing in the short term, starting with, "Normalizing multiples the number of tables, and each new table adds a week to the schedule/budget." And, yet, every single time I've used an inadequately normalized architecture, I have regretted it bitterly for one reason or another. Usually in about a year. Thus, the principle of normalizing one's data can be thought of as a heuristic to save one from oneself.To maximize the utility of your technical expert's expertise to your project, you kinda need to just go with it. The point of having a technical expert is not just to know a lot of facts, but to be aware of pitfalls and approaches for minimizing pitfalls. You have them around to understand things you don't. And if you aren't going to rely on that understanding, if you're going to demand that you use your own understanding instead, if you're going to restrict yourself to the things you can understand, why do you even have them around? And if you don't trust them to be able to exercise judgment for you, are they the right experts for you?
Wed, Apr. 2nd, 2008 10:18 pm (UTC)
merle_
*bows* Very well stated. If it would not out me, I would send a link to this post to The Powers That Be at my company -- who would probably ignore it. When I leave, I may forward it on anyway. Your concluding sentence is an excellent summation, and is one of the large problems in management at many companies, where they honestly believe that programmers are just bricklayers.
Wed, Apr. 2nd, 2008 10:27 pm (UTC)
dianec42

I am afraid to ask what brought *this* on. (-: And if you don't trust them to be able to exercise judgment for you, are they the right experts for you? Indeed. One of the most basic principles would seem to be, If you are employing a technical expert, listen to them in their area of technical expertise.
Wed, Apr. 2nd, 2008 11:51 pm (UTC)
lyorn
Don't I know it. I have far too many exchanges along the lines of, Manager: "Is it possible?" Me: "It does not violate known laws of spacetime. So you could say it's possible. It's also stupid, inefficient, prone to breaking, will take several months to implement and eats small children." Manager: "OK, can you have it done by Monday?" Gaahh!
Thu, Apr. 3rd, 2008 12:13 am (UTC)
siderea

Oh, which reminds me! Something I have taken to saying around the office, "Don't ask a programmer if something can be done. The answer is always, 'Yes. With enough time and money, anything is possible. It may take several centuries and trillions of dollars, but its yours if you want it.' The question you want to ask is, 'What would it take?'"
Thu, Apr. 3rd, 2008 01:01 am (UTC)
night_princess

> The answer is always, 'Yes. With enough time and money, anything is possible.Simultaneously, the answer is also always, "No. Nothing is possible unless many requirements are met first." Is the glass half-full or half-empty? Technically, the glass is simultaneously half-empty and half-full. It's the exact same state of the universe, and any truly logical person recognizes this. However, some people will react differently to whether it's called "half-full" or "half-empty", and it doesn't strike me as very intelligent for a techie to repeatedly ignore this fact. Both answers below are simultaneously true at face value: Manager: "Is it possible?" Answer: "Yes, but it's will take several months to implement." Manager: "Is it possible?" Answer: "No, not unless someone takes several months to implement it." However, the second answer is less likely to result in "OK, can you have it done by Monday?" So, if the techie doesn't want to do the project by Monday, then why answer with the first rather than the second?
Thu, Apr. 3rd, 2008 08:29 pm (UTC)
jducoeur

One of the things I gradually trained the managers at my old company on was my definitions. When I described something as Just Plain Work, that didn't mean that it was *easy*, but it meant that, if they gave me some time, I would be able to tell them how long it would take and how much it would cost. Whereas, if I described something as Hard, that meant that, even if it was technically possible, it was not going to be worth going through that process...
Thu, Apr. 3rd, 2008 10:57 pm (UTC)
night_princess

That sounds like some of the stuff I've read about Japanese business culture. They're apparently very indirect and dislike saying "no", so they end up saying it's "difficult" instead. Apparently, people are supposed to not want to make things difficult for others, so the polite and considerate take "it's difficult" as a "no", so only the rude people press on, and who wants to do business with a rude person? I also tend to see signs of this in more genteel people of different cultures as well.
Thu, Apr. 3rd, 2008 09:53 pm (UTC)
lyorn
Lately I have taken to replying to "Is this possible" with "Using how many resources?"
Adding limitations makes it just so much easier to declare something impossible.
Thu, Apr. 3rd, 2008 12:14 am (UTC)
siderea: Re: Devil's advocate

"Bad" means "You wouldn't like it."
Thu, Apr. 3rd, 2008 12:54 am (UTC)
geekosaur
Thankfully, my boss and his boss both trust my expertise; so if I give them handwavy explanations of something too complex to easily explain, they believe me. (I do usually send email with an attempt at an explanation later, just for the record; sometimes something new will come out and I can say "hey, remember this?".)
Thu, Apr. 3rd, 2008 01:46 am (UTC)
night_princess

I think there's a world of difference between "that would be Bad" and "it would violate database normalization". The first casts doubt on whether the techie truly understands and/or whether the techie is willing to work with the manager. The second is a reasonable explanation, whether or not the manager understands it. If the techie learned from the School of Hard Knocks, then the techie should at least be able to explain what happened last time and articulate their reasons for suspecting why insufficient normalization caused the problems. "That would be Bad" is basically what the religious authorities say: No homosexuality and no birth control because God said, "That would be Bad". When we ask why such things are bad, they merely say, "God says so, and he knows better". I don't think this is a healthy attitude for anybody to give or take, and blinding accepting such lack of solid explanation from a technical authority is no different from blinding accepting it from a religious one. If the techie cannot articulate beyond merely "that would be Bad", then they're not much of an expert. I don't think data normalization is something that can be explained quickly or easily, however, so maybe recommending books or courses or links or even telling anecdotes might help a manager understand further.
Thu, Apr. 3rd, 2008 05:49 am (UTC)
night_princess

Thanks for the link. I completely agree with the link. However, I don't think it says what the previous post said. In particular, the link seems to say that we should eventually be able to articulate reasons for our gut feelings if we dig deep enough, try hard enough, and are given enough time. I agree with that in a work environment, and I think managers should wait until their experts can articulate their gut instincts before listening to them and not short-circuit this introspection process by merely accepting an expert who merely says "That would be Bad" and leaves it at that. I can't compete with the "glib" either. I often don't think of the "right" things to say until hours after the conversation has passed. But, I think leaving things at "that would be Bad" and not digging for a more articulate and reasoned answer is equally glib.
Thu, Apr. 3rd, 2008 05:23 am (UTC)
night_princess

> But no one is talking about blindly trusting a technical expert.I was pointing out nuances of the particular wording chosen, not the overall sentiment that instincts can sometimes be inexplicable. > The employer has a lot of information on the technical expert. They examined a resume, interviewed them, and probably have been working with them for several months or even years already. If the expert frequently gives bad advice, he gets fired. Or at least with give it less weight.That's a good point. However, nobody is entirely consistent. An expert will give lots of advice over time, some better than others. A manager often has to read cues to be able to tell when the expert truly knows that particular material or not. Often, "experts" seem tempted to bluff what they don't really know or parrot what everybody else is doing just to maintain their expert status. Leaving things at just "that would be bad" sounds like they're not even trying. Whether they're not trying to understand the reasons themselves or they're not trying to work with their manager, it generally indicates a less-than-productive attitude. > Relying on the strength of the arguments to find the truth is great in, say, math or science, where there [i]is[/i] an absolute truth.I'm not convinced that there are absolute truths in even math or science. Math and science are just standards by which we merely agree to judge truth. > sometimes you have to go with your gut.Agreed. > Or an expert's gut.The problem is that some people -- even experts -- can have very untrustworthy "guts". Some experts just have to have experience to be accurate. Others have good guts about some things but not about others. As you pointed out, managers also have "gut information" about their experts. Experts don't always agree, and even agreeing experts aren't always right. Managers often have to decide between multiple "experts" with guts saying different things. Back to the original post... > And if you don't trust them to be able to exercise judgment for you, are they the right experts for you?I could flip that around. As a techie, if management isn't capable of making good use of your expertise, are you working for the right employer? If the experts don't really know and are partly just bluffing it, shouldn't a good manager be able to call and make them think more about it? Managers need enough information to evaluate their experts' guts, and "That would be Bad" gives basically no information to do that with. And it's not just the one manager either: the manager has to be able to explain to her manager and on up the chain why decisions are made. "Because my expert said 'that would be Bad'" doesn't cut it, especially if another manager is saying "Well, my expert said it would be good." Going with one's gut is great for personal decisions, but there's a reason why work is work, and "That would be Bad" just doesn't cut it in the workplace. And I don't think it should either. Work is a shared environment, and people have to work as a team. In a shared environment, decisions affect more than one person, and the cost is much higher if someone's gut is wrong. That's why we put gut instincts up to more rigorous inquiry when we enter shared space.
Thu, Apr. 3rd, 2008 09:49 pm (UTC)
lyorn
"That would be Bad" is basically what the religious authorities say:
Well, everyone who pays a religious authority to advise them on morals is perfectly entitled to get told that something is "bad" from a religious POV. Though even people who employ their own religious authorities rarely demand that their personal priest find a way to commit the sins he or she has just damned.
Thu, Apr. 3rd, 2008 10:40 pm (UTC)
night_princess

> Well, everyone who pays a religious authority to advise them on morals is perfectly entitled to get told that something is "bad" from a religious POV.Agreed. And technical matters should not be a religion. We can and should understand our technology. We're not supposed to be able to understand deities. > Though even people who employ their own religious authorities rarely demand that their personal priest find a way to commit the sins he or she has just damned.LOL! Although, isn't that what indulgences and equivalent services were for? Isn't that what the Anglican church and a whole range of church varieties are for? Churches can't sue for wrongful termination, so it's much easier to get rid of a church than an expert. More "modern", "evolved", or "progressive" churches seem to be different mostly in the "sins" allowed that previous churches didn't approve.
Thu, Apr. 3rd, 2008 11:28 am (UTC)
metageek: Asphalt
"But I want it to be both made of asphalt and sold by McDonalds!"
Ah, yes, the Tar McAdam sandwich.
(Explanation.)
Thu, Apr. 3rd, 2008 08:32 pm (UTC)
jducoeur

The general wisdom of this posting aside, may I just say that... "You may have as much flexibility as you are willing to pay for. No, you don't need a stable spec. Are you willing to invest the employee time -- and not just developer time -- in doing Agile right? Are you willing to invest in dynamically generated code?"... I love every word in this paragraph.
Fri, Apr. 4th, 2008 12:54 am (UTC)
cellio

Well-said. Thank you.
Fri, Apr. 11th, 2008 10:11 pm (UTC)
siderea

Wait, are you a coworker of mine? :}
|