Skip to main content


Showing posts from March, 2018

The 'Rewrite' vs the 'Refactor'

Sometimes you will come across a codebase / application that looks in such a mess or so old that the only option is to do a full rewrite. The code is horrible and out of date, it's using an old version of a language / framework and everyone has forgotten how it works. Everyone agrees, it will be much faster to just throw it away and start again.This seems to be how so many software projects start. Over my career I know that I've been heard to say those very things myself. It's seductive, we all love a nice green field project and the big rewrite is the easiest way to turn a boring, difficult brown field project into something everyone wants to work on.The hard truth is that I can only think of one (smallish) rewrite that I've worked on that could be classed as success and that company is no longer around (but I don't think the two things were related). More often than not, after we've finished the project (late, normally very late) our first thoughts are &…

Starting out with Kotlin and Android Architecture Components

Just recently I've been to a few talks about Kotlin and been reading up about Android Architectural Components. I've also had an idea for a really basic app playing around in my mind for a while, so it seems a perfect opportunity to kill two birds with one stone. I've already had a play with LiveData / ViewModel, updating the Big Nerd Ranch Quiz, which went really well.For this project I'm also going to look at using Room for the database access and Dagger for dependency injection. Should be interesting.