Code Sprints

Over the past few months we have undertaken a couple of sprint days with a team of developers from CSIRO. The sprints were an opportunity to work with a different team as well as gaining some familiarity with each other’s products – namely our Biological Data Recording System (BDRS) and the Spatial Information Services Stack (SISS).

Android Sprint

The first sprint day was held at CSIRO on the 5th of February. We weren’t sure about what we were going to build before we arrived but that was quickly resolved when news of our sprint spread through the CSIRO grapevine. Here was a team of developers with time to do something – and all they needed was an idea.  Very quickly one of the CSIRO Hydrogeochemists volunteered the idea to build a mobile tool to record hydrogeological data.

There were 6 developers in total on this first day, three from CSIRO and three from Gaia Resources and we quickly sized up our skill set and divided up the work.  CSIRO had a great system of easily deployable virtual machines so they got to work spinning up a new instance and designing the database that we were going to store the data.  Our team had more experience when it came to mobile development, so we took the lead in building the collection tool.

Unfortunately we had no idea we were going to be building a mobile tool when we arrived so none of us had the appropriate software development environments installed. This meant that the four of us working on the collection tool ended up spending most of the morning installing software so that we could begin writing code for a mobile device. Things were starting to gain momentum after lunch once the downloads were finished and everything was installed but by this time we were racing the clock to get a prototype up and running.


Android prototype screen from the first sprint day

In the end, we did quite well with a functional Android application that could collect and save data to a database on the mobile device and the beginnings of the data upload capability. You can check out our code on GitHub.


The second sprint day was held at our office in Leederville on the 3rd of April and was focused on getting the BDRS to output Darwin Core records which could then be consumed by SISS. The BDRS has had DarwinCoreArchive output built in since October 2011, and the public data from BDRS instances can be made available for download by visiting the URL exposed by the java controller. For the purpose of this sprint we left this as a semi manual process, but it wouldn’t have taken much extra work to fully automate.

Once we had the data pulled across into SISS we experimented with a few different visualisation options to see what we could produce.


Heatmap from Geoserver

This heatmap is produced on the fly from BDRS species point data (primarily Piers’ bird data) by GeoServer using WPS and Rendering Transformations. Because the heatmaps are produced on the fly they are automatically rebuilt every time the layer is requested, so you can watch the heatmap split apart as you zoom in which is pretty neat.

We also experimented with creating heatmaps using the Google Maps api and also a new javascript visualisation library called D3 to try out some non-map visualisations of the data.

BDRS_ Report_Maps

Google Maps Api Heatmap

BDRS_ Report_D3

D3 species visualisation

It is really fun doing these sprints as we get to play with something outside of what we do on a day to day basis and this one was extra enjoyable because we got to work with a different group of developers and a different product. Thanks to Ben and Kehan from Gaia Resources and Josh, Adam, Victor and Tannu from CSIRO as well as Piers and Ryan for setting it up.

Email me directly here or find me on Twitter

Comments are closed.