Stop over-abstracting

Sorin
Code sections
Published in
3 min readAug 10, 2017

--

Developers are very good when it comes to abstracting things:

  1. They generate base or generic classes to inherit from or reuse;
  2. They write generic or overloaded functions called with arguments instead of standalone ones;
  3. They try to reuse code under multiple technologies even when it’s difficult to achieve this due to inherent native platform differences (e.g. Xamarin).

While such skills are important in the programming world, it is also very important that they are not overused in the commercial world.

I learned over the years that very often it’s better to just not abstract things than to do it. (I know this may start a big discussion that would never end or at least will turn some of my readers’ minds into generating complex comments like… !@#$%^&*). Here’s why:

  1. Many times we abstract things assuming that the customer(s) will request similar new features in the future, and that in this case we would be able to develop them easier; but we spend a lot of time with the initial setup, while it’s not certain that it will bring any value eventually — customers are unpredictable — and often it turns out that if we wouldn’t have generalized things we could have delivered — at least the first version of the product — sooner (sometimes sooner than our competition!) Of course, if later we…

--

--

Sorin
Code sections

Software Developer • Rust, Swift, WPF, Web • MacBook enthusiast • fashion design • EDM • absurdism • writing from Cluj