Agile development in practice

A number of people have asked recently what development techniques have been employed in the creation of the mSpace2.0 framework, so we thought it would be best to answer these questions here!

The development team consists of just two members which facilitates a very agile, extreme programming style of development. One of the key decisions early on in the project was to have a very clear distinction as to which code each developer was responsible for.

The mSpace framework is essentially made up of two distinct tasks:

The Server: this does all the heavy lifting and data manipulation

The UI: this presents the information from the server to the user

With this distinction there was a very obvious line that could be drawn, I would be responsible for the UI and Dan for the Server. Whilst both had the technical knowledge to handle code in either department we both took responsibility for our respective parts. This separation allowed the time we spent together to be focused on developing the protocol of how the two sections interconnected instead of obsessing over the inner workings of each part. Essentially we could treat both the server and the UI as a black box facilitating much more efficient and profitable meetings.

Borrowing ideas from the SCRUM framework, we would have short weekly meetings first thing on a Monday to discuss progress since the last meeting and goals for the next week. These meetings would also be the time to discuss anything related to the interconnection between the server and UI (the API) and any extensions that were required to facilitate the weeks work.

To aid testing of the incremental builds we maintained a number of different data sources so that at anyone time we had multiple examples of the mSpace UI attached to multiple data sets. This was important as different data sets required different specialisation and provided a wider testing scope in terms of features and users.

Whilst simple, the techniques above have proved invaluable for our development! Hopefully this has been helpful to some, if people are interested, we could talk more about the techniques and technologies that aided the development of the server and UI?