Know the cons too
We had a great talk last night at a meetup on dependency injection. It followed the format that a lot of great meetup talks seems to follow: general principles outlined + more details + examples in code. My favourite part? The speaker gave us a list of cons.
The cons matter because a lot of tech decisions come down to ‘best tool for the job’ rather than ‘x tool is the best thing since sliced bread’.
For example, the whole native app vs. web app vs. hybrid app argument. With some app types, the UX of a web app just doesn’t match the native app experience, in other types of apps the difference is negligible / doesn’t matter (and development cost advantages or other factors override UX quality concerns). The truth is that sometimes in tech the right answer isn’t A or B, it’s “well, it depends…”.
Too often when I’ve seen people describe a technique or a technology they neglect to mention the cons.
This is understandable, because a lot of technology is not a democracy or an art, it’s an objective reality. A lot of things in technology are either right or wrong, better or worse, and as a result it tends to attract people who see the world this way as doing so helps them to excel.
The problem is this results in technology holy wars when the “right or wrong, better or worse” view doesn’t hold up. In the best case this results in healthy, illuminative and interesting discussions and disagreements. In the worst case it results in neckbeardism.
Don’t make the mistake of arguing over apples vs. oranges, recognizing pros and cons of different techniques and technologies is important to deciding how to go about doing things.