Fast and Loose or Premature Stabilisation

Recently I have been trying to push ahead with designing new features which require data formats and conventions to be specified for the Atlas protocol used to communicate between clients and servers. Progress has been a little slow because I have been forcing myself to write a full spec for the changes and additions to the protocol before I start writing code, and I am never quite happy I have the design right. It always seems to be a little too inflexible, or not general purpose enough. The result is that weeks go by and nothing really happens.

So I thought it would be interesting to try a new approach. Rather than try and design everything perfectly from scratch, why not hack the necessary features into the protocol in the simplest way possible, and get it working quickly. When design flaws inevitably emerge, modify the design to deal with those flaws, and don’t worry about the fact that all current client releases might be broken. Instead focus on getting the clients updated, and release a new version as soon as is practical. The hope is that this will lead to new features getting into the code much faster, with the same opportunities for getting the design right in the long term.

Given the rate of progress in overall features recently, I think there is a strong case to be made for trying something different, and I would like to venture that this is the way we should go. I have already experimented with this approach by hacking in an Atlas representation for expressing what Mercator terrain layers are being used, and in what order by a world. Simon has managed to implement something roughly compatible with the format I hacked up, without any documented spec within a couple of days, and it seems to work in the common cases. I have now re-thought the data format I submitted, and plan to break it within the next few days. If this experiment works, then with any luck the necessary client changes to keep up with the new hack will be available shortly after.

6 Responses to “Fast and Loose or Premature Stabilisation”

  1. The Chronicles of Riddoch Says:

    You are unprepared…

    I wrote an article about WorldForge development strategy over on the WorldForge Developnment Journal. Basically I am trying to come up with a new way of approaching changes to client server interaction that mean we have a well designed protocol without…

  2. Malkyne Says:

    “No battle plan survives contact with the enemy.”
    – Colin Powell

  3. Administrator Says:

    Harr!

    Welcome back! Good to see you ’round these parts again.

  4. alriddoch Says:

    That would be me again. :(

  5. Simon Says:

    I think this is a good idea, as long as such changes are publicised somewhere (such as here for example). I tend to skim read cvs commit messages and may miss any important comments there.

  6. alriddoch Says:

    Ok, noted. Erik has pushed for blueprints on launchpad, but I suspect it may be important to link these from the main site (as painful as that may still be to edit). Might also be useful to post links here to highlight new or updated blueprints.

Leave a Reply

You must be logged in to post a comment.


UA-925252-3