My inner geek says that a lot. I’ll read an article about a new component, a new style of project or yet another way of trying to make anything I do look prettier than I can ever create it – and there it is, high pitched and getting in the way of my stream of thought trying to figure out how it can be wedged into something I already have. If it’s shiny, it must be better!
I think the problem is made worst if you’ve worked somewhere where the development team aren’t treated with any real respect. In that kind of environment you get used to having to make the things you genuinely need something that the rest of the business will get an immediate benefit from, just to be listened to. You get so used to twisting the point of view that you have to really think about it to notice you’re doing it to yourself.
For me, it’s Universal Apps. I saw this amazing new way of making both my store app and phone app come under the one harmonious umbrella of goodness. It was a done deal – had to happen! How could this not make my existing applications just SO much better?!
End result? I’m now in the process of moving my new shiny back to a separate phone app and a store app.
As with a lot of these things, they’re great at first – for the small project perhaps…or at least something where you’re not going to be hacking at it like a seer looking for a sign from the future. Once you look behind the curtain and see how it’s really done? It becomes…trickier…to believe. Compiler switches everywhere, shared code that isn’t really shared, certainly not enough to run your tests in isolation. Oh, and more compiler switches.
But there’s that voice, telling me it’s shiny, telling me that it must be better. So I ignore the obvious warning signs and try and code with it. And every time I have to do a little extra work to abstract away my code, every time I’m looking at very different ways of working and trying to avoid a
#if, I give it one more chance.
As always with this sort of decision, I worry that I’ve missed the blindingly obvious. But a few days ago I had to sit there at my desk, the project open in front of me and ignore the voice telling me it was shiny. I had to give myself a damn good reason – why was I doing things this way? There’s less complexity in running two apps separately with some PCL glue. Why am I avoiding the obvious?
And the reason was simple – I’d convinced myself this was better, that my want to play with the new stuff had turned into the fact that I needed to do things this way. Short term gain for what now feels like long term loss. It won’t be the last time I do this to myself, and next time I’ll kick myself just as hard as I have done over the last couple of days as I salvage my code based belongings from the wreckage of what I created.
My application will be better for it, as it will drive my focus to only do what is truly needed to get the end result. If I want more, I can always add more later. But for now, my inner geek is silent.