What to do next?

Written by David Frampton @ 6:38 am, March 19, 2009

Late in a project’s development cycle, ‘what to do next?’ is a very easy question to answer. It’s whatever is next on the list of bugs or missing features.

But for a substantial portion of the development process, the answer to ‘what to do next?’ is very fuzzy. You have a nearly infinite number of missing features, and a bunch of bugs you’re not sure if you care about yet. So what do you work on? When do you draw a line and say ‘it’s time to make some levels now’ or ‘it’s time to overhaul the physics system’?

I have four main goals in mind when trying to make this decision:

  • I want to enjoy the whole development project, spread the nasty tasks evenly with the fun ones, so I don’t get bogged down with any one job
  • I want to tackle any potential road blocks early on, make sure that everything I am aiming for is technically possible
  • I want to create a good, clean code base on which to build and expand on later
  • I want solid prototypes continually so I can get a good feel for what the end result will be, and easily change the direction before the code base gets prohibitively large

Every one of these goals conflicts with all of the others. So when deciding between 100+ different things I could do next – each achieving some part of one or two of these goals, while usually negating the rest… It’s a difficult decision.

How a developer decides what to work on next has to be the single biggest factor separating success from failure. A developer who spends forever deciding on the best path to take will waste time, and still not necessarily pick the right route. Randomly picking a task will just continuously create more tasks, with no direction. Focusing too much on one particular goal will suck time away until all that is left is a beautifully coded piece of nothing.

I’m hoping that experience has taught me how to solve this impossible problem. There isn’t an answer to it written down anywhere, and there never will be. But when faced with hundreds of options and many goals, the human mind can do amazing things. With practice, your ‘what to do next?’ solution must get more and more correct.

I’m not really sure what my point is. Perhaps that software projects are hard, and that the decisions that need to be made are impossibly difficult. Maybe that is what makes it so fun.

Back to the Mac

Written by David Frampton @ 4:07 am, March 13, 2009

There have been a lot of posts around with developers (including myself) talking about the App Store price war and various other problems with the current sustainability of developing for the iPhone.

To put things into perspective, 4 months ago, the App Store was looking pretty damn attractive to developers. But now with over 25,000 apps to compete with, the average price being much lower, and the same old top 100 based store front making it near impossible to get noticed, it’s just not quite the same. As a result, I am focusing more on Mac development again.

So my space alligator game has been put on hold indefinitely. I have already put a month or so of development time into this, as well as paying for some artwork to be created, but my estimations for completion cost now exceed any likely profits from the App Store.

The game was completely feasible 4 months ago, but now not so much. I do also wonder how the larger studios are feeling about investing large amounts of time and money into longer term projects. If I can’t risk 4 months of time for a good quality game, I’m not so sure that a large studio would risk hundreds of thousands of dollars either.

I suspect that a lot of the higher quality games and applications we are seeing coming out right now were started back when the odds looked good, and that 6 months from now such releases will be less common. But the App Store is a constantly changing beast, so who knows.

I’m not writing the App Store off completely, and in fact I still have some projects/ideas that I will be working on for the iPhone, but they are safer bets, notably including a sequel to Chopper.