Signs of HOW people

In the previous story we spoke about WHAT and HOW in your projects. Let’s look at some of the most common arguments of HOW people (this is based on true stories):

“Everyone is doing it, so there is something we must know better than Facebook and Twitter if we decide not to follow it…”

There is always at least one thing that you know better than anyone — WHAT you are building. If this is not the case, I think then it doesn’t really matter what you choose.

E.g. all power of Oracle or SQL Server for a key/value store. There are cheaper and better NoSQL options for this.

So, before making this choice you need to know WHAT this is for.

This is a new cool tech that is revolutionary

Arguments like this come from “fashionistas” usually. Fashion comes and go, only few become classic. New cool tech in many cases may have its own specific niche or limitation.

E.g. NoSQL databases are amazing, however lots of those solutions drop immediate consistency (ref: CAP theorem). So, while availability and parallel processing improves, you need to consider if dropping consistency is an option. Lots of other considerations should be done as well.

So, before making this choice you need to know WHAT this is for.

Generalized solution

Smart, simple, unified, really beautiful generalized architecture/design… that fails short to support a new requirement without a major refactoring. Everything should be as generalized as possible, but not more (did someone genius kinda say this already?!). So, before making it you need to know WHAT this is for. It will lead to better understanding what else is possible, thus helping to add more context for “generalization” task.

E.g. Xamarin is similar to React-Native, just C# instead of React/JavaScript. So, we can replace one with another.

This is false in general, although it may hold true in certain scenarios.

So, before making it you need to know WHAT this is for.

I implemented this for the future

No one can predict the exact future. You can assume what may happen, structure your code in a way that it will help to adjust to the changes, but doing something upfront without knowing WHAT exactly you are doing is a waste at least partially. Waste for development time, and even more for maintenance, and explaining this piece to “new generations”.

…to be continued…

Know WHAT you do, have fun coding, and what is way more important and rare… have fun supporting your app!