POSTED:  30/04/2020

Collaborative coding during COVID-19

During the COVID-19 period of social distancing, i3Dr has been looking at different ways to leverage technologies so we may continue to operate, design and test the equipment involved in our various projects. 

 

For many projects, multiple colleagues are required to work on different sections of a piece of software simultaneously and sometimes between companies. i3dr is working with IS-Instruments on a project which joins together the use of spectroscopy with 3D mapping using a stereo vision camera. The system is designed to take measurements at distance and a prototype is currently involved in a project in the nuclear decommissioning sector. Under normal working conditions, this project would have been carried out in our laboratory and both teams would have been able to work hands-on to join the instrumentation, test it, measure the results and carry out any debugging required. Currently, that is not possible and the logistics of shipping this type of large and expensive equipment around a variety of locations is simply impractical. A remote working solution was required. The spectrometer was set up at the home working station of one of ISI's team and one of i3dr's software engineers wrote a programme that would enable remote desktop control of the instrument's probe and subsequent testing and debugging could proceed.

 

This type of collaborative working demands tight control of versioning and easy communication - never more so than working remotely! We use a number of online tools including Slack and Asana. The functionality of Slack, being able to create multiple channels for specific projects or topics, and then being able to arrange meetings, hold those meetings and upload all files pertaining to that meeting without leaving the chat channel is useful. It also integrates with Asana, our project management tool of choice. We identified several of these types of tool but found Asana gave us the integrations we required including Slack. Asana also has a quick and easy interface – and why make life more complicated than it has to be!

 

When tracking changes made to code, we have selected a versioning system called Git. This the most common system used in the industry and allows a programmer to see and merge the changes a colleague has made whilst not interfering with the code a colleague is currently writing. The code for software development is stored in a repository that holds a clear history of the changes to files within it. Github is an online service to store Git repositories. On top of this, it provides utilities for monitoring issues and assigning personnel to solve them, making for easy project management.

 

Without access to the normal office workspace, we have had to improvise ways to continue the same work in our own homes. I3DR is currently developing its 3D mapping capabilities so testing has been required. Typically, this would have been carried out in the workshop, indeed, we have already made a couple of videos of 3d mapping of tools laid out on a bench (using Phobos, I3DR’s high-resolution stereo vision camera system) and also of the workshop itself. In ‘lockdown’, options for mapping are more limited. So, one of the software engineers has been using his own bedroom and garden as a test environment, mapping them in 3D using the I3DR Deimos stereo camera. The results of the garden mapping were impressive. Just as long as he now doesn’t venture into other people’s back gardens in search of new terrain to map! Ever the explorer!

submitting