In software development, developers often use metaphors. Metaphor is one of the key practices of eXtreme Programming (XP), and we love XP!
A doctor uses their training, methods, techniques, and tools to make more accurate diagnoses. They rely on a wide range of information, often provided by support tools such as lab tests, imaging exams, and more.
When a doctor needs to perform surgery, they use tests and tools to minimize the risks and impact of the procedure on the patient.
For example, consider the fact that a patient has a fever—a simple metric. How many diseases list fever as a symptom? This reflects the causal reasoning used in medicine: given a disease and its symptoms, what are the possible treatments?
This idea came to us because we are developers working with high technology, creating solutions across various domains of knowledge.
However, after many years of developing software and supporting development teams, we've found that developers still lack tools and practices that truly support them in their daily work.
Bringing the medical metaphor into software development: When a developer needs to make a change in the code, what is the impact of that change? What parts are affected, and why?
Faced with so many code issues, how can we filter and prioritize them? What is the most effective way to treat these problems?
Another aspect we considered when adopting this metaphor is that when we encounter symptoms in the code (known as smells), here is often more than one possible treatment (cleansing heuristics, refactorings).
To make better-informed decisions, developers need the support of high-quality tools.
In addition to these reasons, two curiosities also inspired the use of this metaphor. First, "DR" is a commonly used acronym that also represents “Doctor” or “Ph.D.” in Portuguese. This served as a tribute to the community's leading developer, who is currently pursuing a Ph.D. in computer science, researching code smells and refactoring. Second, "DR" also stands for Detector and Refactor.
With simplicity as a core value (one of XP’s principles), we are building an open community focused on creating and maintaining tools that support developers in doing professional, high-quality work.
DR-Tools Suite is a set of open-source tools that provide resources and insights to improve source code quality, supporting developers in their daily work.
We aim to build an open developer community committed to improving software development skills and reducing the gap between academic research and industry.
Researchers can use the DR-Tools Suite in their research activities, empirical experiments, and studies in Software Engineering.
Instructors can use the DR-Tools Suite to teach topics related to software quality, software maintenance and evolution, technical debt management, code smell detection, refactoring opportunities, among others.
Finally, professional developers can use the DR-Tools Suite to plan and carry out their software development tasks, such as analyzing problematic code, applying refactorings, conducting code reviews, and more.