levels of development of my stuff
Posted by ark, ,
I find my projects end up going through several phases and rarely get to a polished finished product. This is somewhat related to the Capability Maturity Model, but obviously not as well tediously thought out.

  1. Will it work: this is usually where I work out what the sticking point in the project is likely to be (e.g.  can I create a google mymap with some API and then add things to it, or can I do http redirects from Google AppEngine and is it worth me learning it). From there I get a super bare bones prototype that sometimes even works
  2. Adding functionality: I work out the very bare limit of what I need to get this thing working and useable. If I'm writing some simple functions I might end up unit testing them, but likely not. In the end this thing will be usable, I'll have solved the problem I set out to solve but it might not be pretty.
  3. Using it: I'll use it a lot and find bugs and fix them.
  4. Tidying it up: I'll take a look  at the code and realize how ugly it is and how it could be cleaned up. If it has a UI I might even try and make that not look butt ugly (although I'm really awful at that). I might add a few more unit tests and fix all the bugs.
  5. Write a blog post: I'll write a blog post here about what I wrote and why it's useful
  6. Documentation: Write up some real end user (and developer) documentation on how it works and how to use it. This almost never happens.
Somewhere in there I'll have a list of features I want to implement and finally I might even get to them if something else doesn't take my interest beforehand. Right now I'm working on a short url/bookmarking/internet keyword type thing and I've been using it for months, I like it a lot, I'm really proud of it but I'm only at stage 3 and I want to add a few more features before I write it up and post about it here. So here I am writing this post about nothing rather than working on it!