Development

Methodology

As previously mentioned, we adopted an agile development methodology – rather than strictly defined user requirements and many, many design documents, we decided to just get stuck in. We did some planning, and then got to work on the project.

In particular, development took place in roughly 2-week sprints. At the start of each sprint, we would define what we wanted to achieve in that sprint – e.g. a couple features and some refactoring. Then, we would meet with our supervisor and sponsor and show them the progress we have made so far, and note down any tips or thoughts they had. This would feed into the next sprint, so we would know what to do.

Workflow

For development of the Missing Maps Project, we used GitHub as our code repository, and a particular Git workflow. We all already had experience with Git, some more than others, so Git was the logical conclusion to develop the project with.

We followed the workflow detailed at:
https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow

Related image
Pretty simple image that captures what the workflow is all about – without the pull requests and merge conflicts

Essentially, development is encapsulated in development branches. Any time we want to add new features, we create a dedicated branch for that feature, which uses a copy of the current version of the master branch. Then, we work on that branch, test it, and refactor it, to ensure that the feature works AND is in line with the standards of the master branch – i.e. it is efficient, clean, and well structured.

Then, we merge the development branch with the master branch, and the new feature is added. The workflow also allows multiple people to work at the same time – each person checks out a new branch and works on their own branch, then merges with master when done. Of course, this may create conflicts – so rather than merging with master, the person creates a pull request, asking if they can merge with master. Everyone reviews the pull request, and if everything is good, the person can merge with master.

This is what we followed during development of our project – and worked well. This kind of workflow is pretty easy to follow, and effective, so was a great choice.

Leave a comment