Development Model

From Performous

Jump to: navigation, search

Development model: (adding a new feature)

  1. Make things work (with minimal functionality)
  2. Clean up the code (trying to minimize the amount of code)
  3. Add functionality
  4. Repeat from step 2 until the feature is done

Each step includes the necessary testing to make sure that the code works. At least one git commit should be done for each step. Atomic commits are preferred.

If you are not sufficiently familiar with C++, ask other developers to help with the cleanup phase.

Doing very rapid development also means that the git trunk may be broken at times. Bigger features that may cause breakage for more than a few hours (therefore disturbing other developers) or that may require postponing a release by several days should be done in separate branches and only merged to master once the problems have been sorted out. The separate branches should also merge master to them quite often to avoid becoming incompatible with the master branch.

If you are working on master branch, avoid pushing your changes if they break compiling or any existing functionality. As long as the commits are in your local repository, they do not disturb other developers. On the other hand, you still should push often (a partially implemented feature doesn't usually cause problems). Frequent pushing allows other developers to follow what you are doing and comment on it.

TDD hasn't been used, as it doesn't seem suitable for game developement where there are no specifications to follow (you only find out what you will be doing after implementing some of it). Writing useful tests for code dealing with graphics, threads etc. is also very difficult.

Personal tools