I have written this in my notes since October last year.

Key to high quality, sustainable software development:

  1. Functional specification
  2. Revision control
  3. Test case
  4. Bug tracking
  5. Code review
  6. Automated build server

Now, after around 8 months, I think I did the first two quite well. For every project that I did, I will discuss, prepare a functional specification and review it with my client before starting to code. I use Mercurial as a revision control and collaboration tool.

So, what’s next?

  • I will force myself into writing test case for every function or code which I am going to develop.
  • Since I have been pushing my code to Bitbucket, I shall utilize the bug tracker to record the feedbacks from my clients and testers.
  • Hmm…we don’t have the capacity to review every code yet.
  • Currently we code, build and debug our code in our own laptops, as we mostly work in isolated projects. Eventually, we will have a team of programmers working on the same project; every now and then someone will break the build, and therefore automated builds will ensure that our project is in good state. Till then, we will work it out on our laptop first.

Final note: If you need some guidelines on writing a good functional specification, you can refer to Joel Spolsky’s blog post here.