In software development, developers use many metaphors. Metaphor is one of the practices of eXtreme Programming (XP), and we love XP!
The doctor uses his training, methods, techniques, and tools to arrive more assertively in the diagnosis of diseases. It uses a lot of information, often coming from support tools (laboratory tests, imaging diagnosis, among others).
When a doctor needs to achieve surgery, he uses tests and tools to minimize the risks and impact of the procedure on the patient.
For example, the fact that a patient has a fever (a simple metric), how many diseases have a fever as a symptom? This represents the causal relationship of medicine, i.e., against the disease and its symptoms, what are the possible treatments?
The idea came precisely because we are developers and we work with high technology, developing solutions for various knowledge areas.
However, after many years of developing and supporting software development teams, we find that they still lack the tools and practices to help the developer with his daily work.
Bringing the medicine metaphor on software development, when the developer needs to make a change in code, what is the impact of that change? What points are affected and why?
You are faced with so many code problems, how to filter and prioritize them? What is an effective way to treat these problems?
Another aspect we considered when using this metaphor was when we have some symptoms in the code (known as smells), we often have more than one approach to treatment (cleansing heuristics, refactorings).
And for developers to make a more informed decision, they need the support of quality tools.
In addition to what was exposed, two curiosities also contributed to the use of metaphor. First, DR is a used acronym that also represents a Ph.D. in Portuguese. It served as inspiration for the community-leading developer who is doing a Ph.D. in computer science, studying smells and refactoring. Second, DR also represents Detector and Refactor.
We have simplicity as a premise (one of XP's values), we are creating an open community for creating and maintaining developer tools that aim to do professional work.
DR-Tools Suite is a set of open-source tools that provide resources and information to improve source code quality, supporting the developers in his daily work.
We intend to create an open developers community engaged in to improve your software development skills, reducing the gap between academic research and industry.
Researchers can use the DR-Tools Suite in your research activities, empirical experiments, and studies about Software Engineering.
Instructors can use the DR-Tools Suite to teaching classes about software quality, software maintenance/evolution, technical debt management, code smell detection, refactoring opportunities, among others.
Finally, professional developers can use the DR-Tools Suite to plan and execute your software development activities (analysis of problematic pieces of code, refactorings, code review, among others).