When a project is in its early stages, (or sometimes, much later), it is time to have your system designs and software/system architecture reviewed. When this happens, it is not unusual to have a difference of opinion with your reviewer(s). In fact, I think it is very healthy to talk-about and consider alternatives, and then weigh the merits of those alternatives. This indicates that everyone is thinking and keeping open minds. It can produce some great results.
Usually, this is a good thing, especially when you are dealing with reviewers who are professional, experienced and knowledgeable. I say “usually”. Unfortunately, you may land in the hands of someone who is not those things. In that case, you may find yourself doing more arguing than reviewing. Hopefully, you will still be able to reach some level of consensus. However, that is not always possible.
Those situations are frustrating and even painful, but in retrospect, some of the worst reviews can be remembered as being the most entertaining, someday.
So for your entertainment, here are a few phrases, taken from bad reviews, which may sound impressive but are total BS. Anyone who utters these during a review, is just filling the air, and nothing more:
- This is what everyone does
- This is the right way
- I have seen this done in every project
- Nobody does it that way any more
- I can’t name a single person who thinks this is a good/bad technique
- That approach is a joke
- (insert your own clever insult here)
- (insert other grandiose statements that implies your idea is super-great, or someone else’s idea is stupid or amateurish)
- That technique is called [pick some un-friendly sounding term, like “hard coding”]. Therefore, it is bad. You should never do that.
You might recognize the pattern: It is all conjecture and opinion. Claiming that something is a pattern, or something is stupid, does not say very much. You will easily spot which person is the hack, because he/she will not be able to actually explain why an idea is good or bad (other-than, claiming that he/she knows more than you do). Bickering, or flamboyance, is not legitimate proof.
In contrast, here are some phrases that will actually get something done:
- Please tell me about some alternatives and what they give me over this design
- Have you used this design on other projects? How did that turn out for those projects? Any problems or concerns?
- What was the size of the project (where you last saw this done)?
- Let’s discuss your alternative to this, and discuss what it gives us, in-contrast-to this design
- Okay, so there are some clear benefits to using another design, but are those benefits as relevant here for this project?
- Will that fit into our timeline, without adding people or money?
- Can you show me a model of this design? I would like to see how it works
You can quickly see that these are phrases that an open-minded person would use. Which is not to say that all alternatives are good ones. It is really easy to spout about the greatness of some technology that you’ve never used. It is a whole different thing to say that you’ve personally used a technology on a project with many similarities. Basically, it worked then, and we are still talking “apples vs apples”.
One more “BS meter” test: there are very few things which are good all of the time, or bad all of the time. When something sounds too rosy, I need to hear about the down-sides. If the proponent cannot produce some negatives, then I would not trust the endorsement. Even GOTO statements have a legitimate place in the programming world. Do your own research, until you find the real truth.
Keeping Your Eyes Wide Open
People who talk like the first set of statements are really trying to impress you with big talk, in the hopes that you will feel embarrassed and simply yield. It is a weird and dangerous ego fluff. If you succumb to it, you will unfortunately be the one who is holding the bag. In contrast, the big talker will move-on and offer dodgy advice to many other people, with no repercussions.
Unfortunately, I have seen dozens of projects that went down terrible and destructive paths because of stuff like this. If you hear talk like this, you really should cut it short and find a better reviewer. The longer the other person spouts hot air, the more exhausted you will get and the more you may feel like succumbing to the BS, just to find the nearest exit. If you feel that way, just put a halt to it, and walk away.
Not all elitism smells the same. When you encounter some, please apply judicious scrutiny.