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:
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.
Agile main 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 the 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.
Beatriz von der Esch¶
PhD candidate at LMU München (Germany) - Computational Chemistry
The workshop gives insight into useful tools that are not part of the usual university curriculum. The practical introduction to agile project management, version control, and test-driven development has shaped and improved my day-to-day work, research, and leadership style. I would definitely recommend the seminar to PhD students and young professionals.
PhD candidate at Massey University (New Zealand) - Computational Physics
Showing my code repos with CI, docs and well-written tests put me on the top of my work applications as a computational biophysics developer. A great course to take your python knowledge to the next level. Munchkins means be a professional developer. Francesco and Eiji guide is quite fun and certainly prepare you for the real scientific world of software production.
Post-doc at ESPCI Paris (France) - Computational Physics
The lectures are amazingly clear and carefully built. Eiji and Francesco manage to explain and put into context code-development and project-management tools which will intrigue and be useful to any computational scientist. A must for computational physicists.
Former post-doc at the University of Vienna (Austria) - Computational Chemistry -, now Software Engineer at QSimulate, Inc. (Ghent, Belgium)
The workshop teaches agile project management, test-driven development and clean code -- all of these skills are usually not taught in standard university courses, but are very useful both in the industry and in academic career. The tutors are very enthusiastic and explain the material in a very clear manner. The practical side of the workshop with mini-project round the experience up by allowing to put the newly-learned concepts immediately into practice. I very much enjoyed the workshop, and the skills learned in this workshop have made me more organised and helped me land a new job.
Full-time researcher at CNRS/ONERA (France) - Theoretical Spectroscopy
Thanks to Francesco’s and Eiji’s very enjoyable lectures I learned good practices and inspiring guidelines to enhance my skills in programming, in handling software, in managing collaborations. Inspired by the agile programming philosophy and thanks to the skills I acquired with specific tools (Git in particular), I got my research organised in terms of short-term well-focused objectives. This improved my productivity and enhanced the quality of my collaborations thus increasing my satisfaction in doing research. Even though most attenders were Ph.D. students and young post-docs, I definitely recommend the workshop also to full-time researchers, supervisors and collaboration leaders who may learn really a lot on managing teams and resources.
Look at our Offer page.