People at conferences and meetups often ask me what I would recommend learning X or Y. And I’m always happy to give some suggestions depending on the experience level of the person that asked. Unfortunately, this doesn’t scale very much, so here are my general recommendations on learning something very effective. This time: Software Analytics.
Software Analytics is one of my pet issues as a software consultant. I cannot define Software Analytics better than two of the field’s best experts Tim Menzies and Thomas Zimmermann:
Software Analytics is analytics on software data for managers and software engineers with the aim of empowering software development individuals and teams to gain and share insight from their data to make better decisions.
Here is my personal recommendation when you want to deep dive into this topic:
TOP 1: Software Analytics: So What? (Article)
Link: https://www.researchgate.net/publication/260649759_Software_Analytics_So_What
A nice introductory article to the field of Software Analytics. But be aware: IMHO this article was published during the “peak of inflated expectations”. So make sure that you also read the follow-up article “Software Analytics: What’s Next?”: http://menzies.us/pdf/18analytics.pdf
TOP 2: Software Design X-Rays (Book)
Link: https://pragprog.com/book/atevol/software-design-x-rays
Albeit the author of this book doesn’t mention “Software Analytics” at all, the book it full of great applications of it. There are many examples that might have an actual impact on how we develop our software system.
Disclaimer: I was one of the book’s reviewers, so it might contain some of my views as well 🙂
TOP 3: Perspectives on Data Science for Software Engineering (Book)
A collection of short articles in the area of Software Analytics. Good and neutral discussion of the advances in the field and the limits of data-driven approaches. There is also a repository with some early drafts available online.
TOP 4: Fix Your Microservice Architecture Using Graph Analysis (Talk)
Link: https://jqassistant.org/fix-your-microservice-architecture-using-graph-analysis/
In this talk, graph-based software analysis is used to analyze a distributed system. I find this talk very interesting because it shows how developers can use graph databases for analyzing software systems.
TOP 5: Software Analytics Workshop (Code)
Link: https://github.com/feststelltaste/software-analytics-workshop
In the best case, you are now highly motivated to execute your first data analysis in software development. For this, I’ve created a repository with some exercises and hands-on tutorials. Feel free to take your own first steps in Software Analytics!
Additional resources
I’m gathering resources about Software Analytics in this awesome list: https://github.com/feststelltaste/awesome-software-analytics
There is an older article on my blog with some other “nice to know” resources: https://www.feststelltaste.de/some-resources-for-the-software-analytics-curious/
Advertisement: From time to time, I also give talks or conduct workshops in this area. Feel free to contact me if you’re interested via my employer: https://www.innoq.com/en/staff/markus-harrer/