I've caught myself reading about a subject matter (now, that's android). I've been reading articles, documentation on new libraries, looking for inspiration on the net about UI... All for an app I'm upgrading with new functionality and looks.
This is bad and I'll stop doing it after I tell you why.
First of all, it's the time. My time is limited because this is done outside work hours. With the other stuff I'm doing (e.g. watch a game), the time I can dedicate to development drops even more.
The new stuff is another issue. Today, every day something new pops up. A library, an architecture, an implementation of an existing architecture, methods like RX. That's only on the development side of things, not considering (breaking) updates. This will never stop, unless you want it to stop for you. I understand why companies take cuts of libraries and freeze them locally. Otherwise, you have a never-ending refactoring process.
Confusion has been instated. Yep, just look at the sheer number of implementations (and interpretations) for the clean architecture. Everybody respects it, combines it with things like MVP, MVVM (and insert your favourite acronym here) and you get a bunch of repositories that have nothing in common. My illumination moment came when I realised that it's just like project management: you get a methodology. How you implement it is your business. The art is to mold it to your problem, not the other way around.
So, I've decided to stop reading and start coding, stripping all half-baked solutions I was cooking up in my mind while trying to keep things simple (aka testable). That's because:
- The information I need to build stuff is already there
- The code is not going to be perfect anyway
- New stuff will pop up always on the 'net
- Ideas for improvement should probably come from the users :)