Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
How to make effective decisions by comparing alternatives
Photo by rawpixel on Unsplash
Not better, not worse⊠just different
âReact.js is so much better than Angularâ, âJava sucks, no one uses it anymore⊠we should use Golangâ, âPineapple is the worst pizza toppingâ. Youâve probably heard one of these very straight opinionsâââone option is the best, the other is the worst, X is better than Y and so on. But Java is still one of the most popular languages in the world, Angular gives a decent fight to React.js, and pizza with pineapple⊠well, thatâs ewwww.
Does that mean that more than half of the people are clueless, donât know how to tell which technology is better or make the right choices? Maybe we should stop using terms like âbetterâ, âworseâ, âbestâ and shallow comparisons when evaluating alternatives. Instead, we should focus on the benefits of each solution, the disadvantages, and which one is a better fit for our specific problem.
Evaluating alternatives
One way to do this is by creating an alternatives comparison table:
- Write the different alternatives in the header. Use each column to evaluate one alternative. Pick 2â5 alternatives.
- Write the different properties that you think are important for evaluating the different alternatives. Pick 2â5 most important comparison properties.
- Keep the last row for summing up. There is no better/worse solution, focus on why each alternative solves the problem .
âWhat would you have to believe to choose this approach?â
For example, letâs assume that we have a problem that can be solved in two ways. One is S.O.L.I.D and the other one is hackier. Some might say that we should always use a S.O.L.I.D solution, regardless of the circumstances. Does that mean that anyone who uses hacky code is a bad developer? I doubt it.
Letâs put the alternatives in a table:
After composing this table, we can focus on the bottom line, and tie it directly to our goal.
An example of cases for âshipping as fast as possible, and we are ok with compromising on future qualityâ could be:
- A severe bug that exists in the system. Every day that passes without a solution can cause long-term damage.
- We have a contract with a customer to ship the solution on a specific date. If we miss the deadline, there may be legal consequences.
- The company has cash flow issues. Shipping the solution early can have a huge impact on our business stability.
As you can see, using S.O.L.I.D is not always the better approach. If we care about code quality, we should definitely default to it, but we must make sure that we know the tradeoffs. Choose one solution over the other because you believe this is the best path to reach your goals; donât do it just because Uncle Bob or someone in your company said itâs better.
Donât do reviews only to get the âstampâ
Photo by Hello Lightbulb on Unsplash
In many companies, reviews (design reviews, product reviews, etc.) have the same ritualâââthe feature owner writes the spec; their manager then reviews it; the group schedules a meeting to review the spec. More than once, there is a feeling that the purpose of these meetings is to get the stamp from the stakeholders rather than actually engage in an open discussion. The reasons why this can happen:
- If you already have a spec ready, why would you need 7 or so people gather in a room and âgo overâ it?
- The meetings tend to be boring and can turn to be a monologue when the feature owner reads the spec they wrote.
- Sometimes these meetings tend to be nit-picky, and the conversation can focus on things that are not crucial for the feature success (âwhy do we use int32 and not int16?â, âstrings or enums?â, âtabs or spaces?â).
- Some people are more introverted than others. Are all the voices heard, or are there only a few people that are engaging in the conversation?
- The conversation on some details can take longer than expected, time then runs out before the feature owner can cover the whole spec, sometimes even less than half of it. This can frustrating. Moreover, if a follow-up meeting is required, it can also postpone the decision making and the whole project timeline.
Be prepared with alternatives and goals, not with the solution
At my current company, we take a different approach. Reviews are made offline, using Paper (benefiting from its features like sharing, comments, tasks which makes the collaboration more efficient), but any other online editor can work. For the design meetings, we use a different template. The decision maker chooses the 3â4 most important open questions that are critical to the featureâs success and composes an alternative table like we saw before. They can also recommend an alternative, but shouldnât be very opinionated about itâââthe purpose of the meeting is to choose the proper approach based on the project goals.
The meeting then turns from a monologue that is focused on âstampingâ a solution to an open conversation about the best approach. The audience turns from being approvers to being advisors. The feature owner doesnât need to âdefendâ their selected solution, and turns into a decision maker that bases their solution on the stakeholder advice. By setting time (10â15 min.) for each question, you can make sure that you cover all open question, and that a decision was taken by the feature owner when the time is up. Making sure that everyoneâs voice is heard, even the introverts, is just as easy as âHey Jane, we didnât hear your opinion, which option do you think will serve our goals? X,Y or Z?â
So next time you want to compare two or more alternatives, replace âReact.js is better than Angularâ with âReact.js is easier to learn, more flexible, and is updated more frequently, so if we aim to quickly ramp up new engineers and move faster with the most top-notch technologies, this should be our choice between these twoâ.
As for âPineapple is the worst pizza toppingââââmaybe some things arenât meant to have alternatives đ
Thanks for spending 4 minutes of your time, until next time.
-Alon
How to make effective decisions by comparing alternatives? was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.