Tuesday, February 23, 2010

Workflow.org

As part of my attempt to become more productive, I am trying out a new system of organizing projects.


I've limited myself to a handful of projects at any time. Each is within its own vcs'd subdir within ~/code. This keeps me thinking in terms of projects rather than languages, which is how I used to organize things. Hopefully, I won't be as tempted, upon figuring out foo monad in one place, to try it out somewhere else and end up spending hours down the rabbit hole. I know I'm not the only one to be distracted by his fascination.


Upon mkdir, I create a workflow.org file. It contains, simply, my guess of how the project will break down into manageable units. Think of XP's User Stories. At the start it will be chunky with lots of magic steps:

  • TODO IO monad for communicating with X safely
  • TODO ????
  • TODO PROFIT
Don't worry. Very quickly, it will become fleshed out as more subtasks are discovered, testsuites needed, packages updated, build environments automated, etc. Soon workflow.org will be a visible reminder of what steps have yet to be done, what steps still smell of "MAGIC AHEAD", and what your progress has been. Each C-c C-t will reinforce your sense of achievement, a minor cause for celebration. Feel discouraged? Look up its version history and see a visible reminder of how far you've come in figuring out that your project is a beast of complexity: "wow. I really didn't think that making this threadsafe would be such a bitch."


Can't say it will work for anyone else, but this seems like a good way to keep a sense of momentum on a project without complicating things.

No comments:

Post a Comment