Tuesday 29 January 2013

How ticket ideas get plucked into reality

Lately I've had a handful of people asking me questions along the lines of "When will such and such a feature be implemented?". These are perfectly reasonable questions, if not also so politely phrased. So rather than answer these recurring queries individually, I thought I'd write a blog post about it and try to demystify the process a bit.

The first thing to recap is that apterous is almost entirely the work of just one person, which is to say, me. The lovely Matt Morrison deals with people's avatar photos, and everything else is me. That means I'm simultaneously the designer, programmer, webmaster, database admin, test engineer, customer service operative, pixel artist, and various other things besides. Some of those things I'm quite good at; others are more of a struggle. So, perhaps not surprisingly, apterous takes up pretty much all of my free time. I'm passionate about this site and I love working on it, so I don't say this in search of any sympathy, but you should understand that the skeleton staff is the reason we can charge £20 a year and not £20 a month. And I really am going as fast as I can.

The amount of stuff that can get done is therefore essentially limited by how fast I can work on it. And the list of tickets grows faster than I can attend to it. Which is great! It's awesome to be able to focus my efforts on just the best ideas which will make the most people happy. But it does mean that some ideas will lose out, and some will take a long time to happen.

It also means that's it quite hard to for me to predict when I'll get around to a given idea. The overall order of precedence is generally: bugs first, then performance issues, then feature requests. In practice it's a lot more liquid than that because some bugs are just not that important, and some feature requests are quite urgent. There are also certain types of ticket that tend to get de-prioritised. The most common example is variant ideas, for a couple of reasons: first, the number of variants needs to be kept under control, in order to keep the game usable; second, people need time to enjoy the existing variants before a new one comes in; third, variants are quite easy to come up with and a lot of work for me to build, so the incoming flow of ideas will always greatly exceed the outgoing flow of implementations. But broadly speaking that's how I allocate my time.

Within that basic order of precedence, I generally work through the list of tickets in approximately votes × time order. This is a refinement of the obvious "most votes" order, in which we imagine that people are not limited to voting for each ticket once, but rather can vote again every day, and continue to vote every day in the same way that they voted the first time. So, for example, if a ticket had one up-vote 100 days ago, and one down-vote 30 days ago, it would have a net score of +70. This means that popular ideas will bubble to the top very quickly, while any ticket with a positive net score will eventually amble its way to the top, so even niche ideas eventually get their day in the sun. (We also do various other Bayesian things but that's a discussion for another day.) So to give your favoured ideas the best chance of getting implemented: vote early, vote often!

Beyond that, various other considerations come into play, such as: how much work it would actually take to do something (easy crowd-pleasers are great!), whether I have any good idea of how to execute the idea, and what I feel like working on at the time. It's quite unpredictable. That's part of the fun.

So, to answer the original question head-on: I don't know when or even if your idea will happen. But most likely, as soon as I can!

PS: Don't forget, you can now follow apterous on Google+! There's a bunch of stuff there that doesn't appear anywhere else.


  1. G+ URL is wrong, is for the sandbox, should be:


    Time for a real apterous Facebook front!!

  2. Interesting insight, Charlie! :-)

    I doubt I'm alone in having thought that at least a couple of other apterites in on the ground floor gave you a hand now and then with the programming.

    Just to be clear, the message is:

    "I have to prioritise, so please understand why your ticket might take a long time to (or never) be implemented, even if it's a good idea"

    and not:

    "I'm getting snowed under, think hard before posting a ticket".

    May I take this opportunity to thank you for all your efforts. I've derived a lot of pleasure from apterous since you started it in 2008, as have many many others.