Do Research Like a Munchkin¶
We are two Computational Physicists who moved out of academia to work in Software Development. Here, we have been exposed to practices that enable us to optimize resources and to have fruitful team collaborations. Our workshop “Do Research Like a Munchkin” (a.k.a. Software Development Practices Applied To Computational Research) is our attempt to introduce computational researchers to our novel vision of how Scientific Computing can benefit from such Software Development practices. The two main keystones are:
- Clean Code
Researchers are usually well trained at reducing code running time. However, typically they are not equally trained at reducing the time spent to write and maintain the code. This is somewhat ironic, considering the constant evolution of the code used in research. There are several Software Development practices that can help to reduce the writing and maintaining time. We want to mention a few:
The Test Driven Development discipline. This helps to make the code robust and flexible. It works like magic.
The Git version control system. This gives you total control over your code evolution and, above all, enables effective development collaboration.
- Agile Project Management
It is a common belief that project management does not make sense in pure research because its development is unpredictable. Interestingly, the same condition is true in Software Development, where customers’ requirements change unexpectedly. This created considerable struggles, but eventually a working mode able to deal with it emerged: Agile. Its benefits are:
enhance the ability to respond to changes
keep under control the project with simple and lightweight techniques
boost of motivation and therefore productivity
Clean Code and Agile are two sides of the same coin. We are convinced that using them in synergy is extremely beneficial to research. With this vision in mind, we have designed a workshop for researchers that will help them build a solid foundation on these topics through plenty of interactive sessions and exercises.
I am a researcher, why should I attend this workshop?¶
This section is for PhD students and researchers, and tries to answer the following question: “What will be the benefit for me, if I attend to the workshop Do Research Like a Munchkin?”
There are many benefits and we cannot mention all of them, so we would like to pick the 3 most important ones.
- You won’t waste hours and hours debugging your code anymore
We, authors, have done a PhD in computational physics, and we estimate that we used at least 70% of our time in debugging the code we have written. “What can you do?”, you may think, “If you write complex algorithms this will always be the case”. That was what we were thinking as well, until we discovered Test Driven Development. If you follow the discipline of Test Driven Development, each single line of code that you write will be cover by a test. In this way you will not only make sure that the code you have just written is correct, but you will make sure that any further change you make in the code won’t change its behaviour as side effect. As a final result you will spend almost no time anymore in debugging. Imagine how much more productive you will be.
- Writing your PhD thesis and articles will go smoothly
During the workshop we will introduce you to the Agile principles, that promote crossing all phases and come to the final product as quickly as possible. What does it mean for you? First of all you need to understand what is the “final product” in your research project. In our opinion, the code, the publications or the PhD thesis are definitely part of the product you are making research for. So what does tell Agile? Start working on your manuscript immediately. No kidding, from the very beginning. What will be hte benefit of this approach?
you will avoid the stress and pain of the final rush to finish the manuscript in time
you won’t fall in the situation of realising too late that you miss a simulation or some data
you will avoid the loss of motivation that often comes if you spend days and days only writing
- Your CV will be much more appealing for private companies
The topics of Agile Project Management and Clean Code are very well known and appreciated in companies. Typically companies are afraid of hiring researcher because they consider them unable to work in teams and often lack the skills to bring their know-how into business value. If you will apply our teaching, you will have facts that will disprove this fear.