Hello and welcome to my first blog post, after graduating from Plymouth University in Computer Science I happily accepted a full time software developer job to assist in developing applications for the UK National Health Service (NHS) hospitals. Ironically for this article, one of the main goals was to help hospitals transition from pen and clipboards to digital solutions. But what digital tools were we using as a software development team?

Software development has come a long way since Margeret Hamilton lead an incredible and vastly complex feat of engineering that allowed human to land on the moon, Margeret’s remarkable story is well worth reading. https://www.wired.com/2015/10/margaret-hamilton-nasa-apollo/
Ever since then software development has remained a complex process with a large number of modules worked on in parallel with many people working on the same problem at the same time (Pijetlović et al., 2016). Development teams have been quick to adopt digital tools to make the whole software development process simpler and more efficient. Here are some of the tools that are commonly used.

Arguably the most important tool in a software project is Github and the underlying technology Git, these technologies solve the complexity of a multi person, multi modules development project allowing individuals to work on there own code while allowing them to seamlessly branch into the main code base when required. Using Git or some kind of distributed version control system is almost mandatory in any multi person team.
Slack or any other type of communication tool is fundamental to a team especially in modern times when often developers are co-located. Jira is also vital part of the communication and coordination of the team, Jira allows individuals to view what other members are working on and to view outstanding tasks and issues.
Gradle and Genkins are examples that once set up correctly, save huge amounts of time running build tasks and deployment. While Docker is a useful tool that allows every developer to run code in the same environment solving the often heard “Well it works on my machine!” problem. We can see these tools can get some what complicated and add to the already demanding technical burden on a developer (some of these tools require a book or a course by themselves) so how could this be improved?
Pijetlović et al. demonstrate a conceptual solution to the problem of using multiple digital tools by adding a layer of abstraction between developers and software development tools. The idea is have one application whereby existing tools can be configured (for example by someone in IT), the developer gets a pleasant interface to all the tools the development team are using without worrying about the technical setup, therefore allowing them to concentrate more time applying their technical prowess on what they were hired to do in the first place, code!
References
[1] Robert McMillan. (2015). Her code got humans on the Moon – and invented software itself. Available at: https://www.wired.com/2015/10/margaret-hamilton-nasa-apollo/
[2] S. Pijetlović, P. Jovanović, N. Teslić and S. Prljević, 2016. “An approach to software development tools unification,” 2016 24th Telecommunications Forum (TELFOR), Belgrade, pp. 1-4.