The other day while reviewing a paper, I came across a classic-developer rhetorical expression “it depends”. I immediately recall David Hill’s prolog in a Pattern and Practices foreword.
“There is an old joke, told amongst mischievous developers, that in order to be considered an architect you just need to answer every technical question with "it depends" – Q: What’s the best way to implement authentication and authorization in my solution? – A: It depends; Q: How should I implement my data access layer? – A: It depends; Q: Which technology should I use for my solution’s UI? – A: It depends. Q: How can I make my application scalable? – A: It depends. You get the general idea.”
I think we can gain some insight on this usage by the following analogy:
There’s the mountain range of it depends ahead of us. We go and hit a local public house (i.e.pub) “Coureur des bois” and talk to the locals about crossing it. With a name like that, you surmise this is the place to find the perfect guide. You open the door and see young fit athletic types – just what you wanted. Being spotted as an out-of-towner, and with alcohol helping their tongues we get a lovely long list such as:
- “It depends on how much money you have”
- “It depends on how fast you want to get there”
- “It depends on if you want to take photos en route”
- “It depends if you have ice crampons”
- “It depends if you have anti-bott plates”
All of the information is technically correct, but there may be a power game involved that may include masking ignorance. You may have a beer, sit down with them and hire some of them to lead you (after all they seem to know what is going on). Or, you may feel uncomfortable about the non-specifies and randomness of the answers and head off to more sober company at the local organic co-op grocery. You ask the cashier if she knows anyone that have cross this mountain range. She gives a few name and then adds, “You may wish to talk with Igor, he has a girl friend on the other side of the range and often goes and see his love. He lives down the road in a yurt.”
You head down the road and see a skinny man of indeterminable age with salt-and-pepper dreadlocks. He’s Igor. You ask about crossing the mountain range and he responds, “I’m heading over on Friday, I may be willing to take you with”. You express interest and then are hit with the following questions:
- How many in your party?
- Their fitness level and what they are packing with
- Do you have $200 for mule hires?
“Ok, I will do it – pay for the mules and give me what you want when we get to the other side”. You are shocked – where are all of the “it depends”? You asked about them – Igor laughs.. “I think one or two of those want-to-be mountain guides have ever cross the mountains. They like hiking up and skiing the nearest mountains only.” What about anti-bott plates etc…. you asked –“Yes, you would need those if it was February and you wanted to avoid the park ranger – a few of the folks at the pub do a bit of poaching….”
The difference between a developer and a seasoned architect is that one knows what questions are relevant and the sequence to ask the questions. The answer for the first question determines what the second question will be. Only the need questions and issues are raised to get from A to B. A second common characteristic is that a developer often will advocate what they wish to learn (to further their skill sets). A seasoned architect wants to be certain of the results and thus keep to the proven unless the unexpected happen (like a forest fire) and then they tend to reorganize themselves to find the safest route given the new information.
So the next time someone uses the expression “it depends” – listen carefully for what they may actually be saying….