Beware the alligatorWeb apps are great. Really they are – I’m a big fan! Using web apps has been a huge step forwards in so many ways. Productivity has sky-rocketed.

Writing web apps is terrible. There’s so many things to think about that, to be honest, you don’t really need to think about and shouldn’t really be thinking about at all.

But, when you spend an hour just trying to sign up for a web host to put your new world-changing app, you get time to think about other things that would also be amazing to do.

And in no time at all, you’ll be greeting the alligators.

Alligator wrestling

forget, when up to one’s neck in alligators, that the mission is to drain the swamp: To lose sight of one’s initial objective, becoming caught up in subtasks or in tasks only tangentially/orthogonally related to the initial objective.

Twitter

Things like creating a Twitter account. Everyone needs a Twitter account – a web app without a Twitter account is like a body without a mouth – how would you possibly communicate without one?

Getting the perfect username isn’t easy either – most of the good ones have gone. So we’ll need to be creative. Better Google for an article on how to name a Twitter account.

Much later we remember that a domain name is also important. Oh, and ideally the domain name should match the Twitter handle.

Domain names

I need to search out a suitable domain name. They’re like gold dust so I need to strike quickly – if someone gets a sniff of my app they will probably register the domain name straight way, so I need to get in first.

What do we want to call the app? Tricky one as I have next to no idea what the app even does. Let’s just choose some half-baked idea I came up with one day and run with that.

Great! Now, the .com almost certainly been taken already. So, do I want to stick with .com and try to be creative and clever or do I want to branch out and use a more exotic TLD like .io or .cc or .ly or whatever the fashion is this week?

Let’s get one of each – hedge our bets! Oh, and did we make sure the Twitter handle was available?

The blog

It’s all well and good having a domain name and a web app, but that alone won’t draw visitors. If there’s one thing I’ve learnt by reading the multitude of social media articles, it’s that ‘Content is King’. Clearly this web app will need a blog.

WordPress? Ghost? Posthaven? Silvrback? Self-hosted? Github Page? Statically generated? Simple HTML?

I’m stunned into inactivity. Let’s try them all and see which seems to work best! That must be the best approach, surely.

Facebook page

Hmm, actually a lot of these blogs have a lot of sharing options. Facebook, for example. I think I might need to set up a Facebook Page for this web app. That’s going to be important.

Google+ page

Don’t forget Google+. Apparently it’s growing fast. Would be madness to overlook that.

And all the rest…

Oh, and Instagram, and Tumblr, and, umm, what else is there. Let me just Google that. Oh wow – look at that article – Courtney wrote it! Let me just quickly read that.

Awesome! I’ll just quickly add that to my Buffer. Actually, I wonder what state my Buffer is in – I’ll just go check on it quickly. Not great – only a day’s worth of posts left. I must remember to add some more stuff in there!

Hey – I just realised – the app needs a logo! All these accounts will need that logo setting up too!

What was I trying to achieve?

Amazing! I have about a dozen new accounts all set up – this feels great! Really productive. These will really help my web app to take off now – and the branding is all consistent. Time well spent.

Admittedly the web app still only says ‘Hello world’ and only on my personal laptop since I haven’t actually got around to putting it onto the host that I was setting up in the first place. But infrastructure is important.

Bike-shedding: The paradox of choice

Futile investment of time and energy in marginal technical issues. —Wiktionary

You could probably argue that everything I have written thus far falls into the category of bike-shedding. In fact, it probably does. I just don’t have the time to go through and properly categorise all the events into the most appropriate group. I’ve been too busy shaving yaks and fighting alligators, after all.

However, I think that bike-shedding is rather more sedate than the previous two.

  • I see yak-shaving as you trying to be productive but things keep getting in the way—totally not your fault, just the way of the world.
  • Fighting alligators is worse because none of that was actually necessary. I should have been doing other, more useful things.
  • Bike-shedding is what happens when I am not exactly sure how to proceed and instead start investigating things with Google, trying things out, comparing different approaches, reading blog articles about different ways to do the same thing—generally doing everything possible to avoid actually committing to a single approach and charging ahead with it.

As with the yak-shaving and the alligator-fighting, bike-shedding feels productive at the time. But when you look back at another weekend spent without anything to publicly show for it, it does start to gnaw away a little.

My bike-shed of choice

My current distraction is Docker. I don’t even know how it happened but I have spent the last month reading various articles about how to develop and deploy web apps using it. A whole lot of reading and a distinct lack of action.

It really doesn’t help that new versions keep coming out, which always leads me to a quick bout of yak-shaving as I get all up to date. And any new features lead to an extended bout of alligator-fighting as I try to get my head around what is going on.

Who knew that a bike-shed could be put to such varied uses as a yak-shaving barn and an alligator-wrestling pit? I sure do now!

How to move toward your goals (and avoid yaks, alligators and bikes)

The possibilities

Writing this has made me almost painfully aware of how much genuinely unproductive time I have spent in various endeavours.

Ouch.

The big question, though, is what to do about it. I’ve been thinking about it and have come up with three pretty obvious—but possibly useful—strategies.

Have a target

I want to be laser-focused. Luckily, I have probably got a lot of the extraneous stuff out of my system so all that is left to focus on now is the ‘real’ target.

In my case, I want to get a simple bare-bones prototype up and running.

Have a deadline

Deadlines are great – if they are realistic and if you can treat them as fixed and actually work to them.

I gave myself a week, with a goal of having something up and running by Sunday 31st of March (2014). Unfortunately, for some reason my amazing plans didn’t work and the side-project still lingers on my laptop rather than in the world. As I recall something cropped up which got in the way. But I haven’t forgotten about it, and I still have plans!

Publicise it

I need to figure out what ‘it’ is, but I will start to publicise it – first of all to my wife and then on Twitter and then, well, I have a huge number of social media accounts lying around dormant. Might actually be time to make use of them!

How do you fight against the alligators and bike sheds that try to keep you from your goals? Let’s compare strategies in the comments.

Interested in helping Buffer grow? Drop that alligator. We’re hiring!

Image Credits: Alexander Montuschikaleissin, Jared Cherup

This post originally appeared on my personal blog. Follow me there for more wild animal adventures into web development.

Free up your day with our Social Media Tools

Buffer can save you up to an hour a day and grow your traffic too.

Learn More
Written by Colin Ross

Colin is the chief back-end guy at Buffer, ensuring that the bits you don’t see run as quickly and smoothly as possible.