Enhancing Code Quality and Development Efficiency: The Interplay of IDP and Software Craftsmanship October 6, 2023 | 5 min Read

Enhancing Code Quality and Development Efficiency: The Interplay of IDP and Software Craftsmanship

Introduction

In today’s dynamic and competitive software development landscape, achieving a balance between speed and code quality has become a critical challenge. The term “Internal Development Platform” (IDP) has gained prominence as a potential solution, promising to accelerate software delivery. However, it is crucial to recognize that prioritizing speed at the expense of code quality can lead to suboptimal outcomes in the long run. This essay explores the intricate relationship between IDPs and code quality and highlights the pivotal role of the SW Craftsmanship Dojo® in addressing this challenge. Furthermore, it sets the stage for the upcoming presentation at the Italian Agile Days 2023, where the insights from this analysis will be shared to the whole community.

What is an IDP?

An Internal Developer Platform (IDP) is built by a platform team to build golden paths and enable developer self-service. An IDP consists of many different techs and tools, glued together in a way that lowers cognitive load on developers without abstracting away context and underlying technologies. Following best practices, platform teams treat their platform as a product and build it based on user research, maintain and continuously improve it.

From internaldeveloperplatform.org

IDPs and Code Quality: A Complex Relationship

The Internal Development Platform (IDP) is designed to streamline workflows and provide developers with tools to enhance efficiency and collaboration. While IDPs offer benefits such as standardized processes, infrastructure support, and automation, they typically fall short in directly improving code quality. Code quality encompasses various aspects, including architecture, design, maintainability, test coverage, and adherence to coding standards. IDPs, while effective in improving delivery speed and security scans, do not inherently address these fundamental elements.

One of the key limitations of IDPs in the context of code quality is the absence of substantial research demonstrating a clear correlation between IDP adoption and code quality improvement. Several reports and studies have shown that IDP adoption primarily aims to increase speed and control infrastructure spending, but they do not explicitly link it to enhanced code quality. For instance, reports from Puppet & CircleCI’s State of DevOps in 2020 and 2021 emphasize IDP adoption for speed and infrastructure control but do not highlight code quality improvements resulting from these platforms.

Furthermore, an essential source of information on IDPs outlines The 5 Core Components of an Internal Developer Platform (IDP) as follow:

  1. Application Configuration Management: Manage application configuration in a dynamic, scalable and reliable way.
  2. Infrastructure Orchestration: Orchestrate your infrastructure in a dynamic and intelligent way depending on the context.
  3. Environment Management: Enable developers to create new and fully provisioned environments whenever needed.
  4. Deployment Management: Implement a delivery pipeline for Continuous Delivery or even Continuous Deployment (CD).
  5. Role-Based Access Control: Manage who can do what in a scalable way.

However, there is a notable absence of elements between Continuous Deployment (CD) and Infrastructure as Code (IaC). This gap raises concerns regarding how to ensure essential aspects such as testability, code quality, and adherence to standards, particularly in the Continuous Integration (CI) phase. The missing link between CD and IaC necessitates addressing crucial factors pivotal for maintaining high code quality and streamlined development processes.

To bridge the gap between IDP adoption and code quality, organizations need to embrace a strong software craftsmanship culture. Software Craftsmanship involves practices like code reviews, Test-Driven Development (in all its flavors TDD, ATDD, BDD), pair programming, and collaboration, which are pivotal in driving code quality improvements. The SW Craftsmanship Dojo® serves as a crucial tool in fostering and promoting software craftsmanship principles within an organization.

SW Craftsmanship Dojo®: Fostering Code Quality Excellence

The SW Craftsmanship Dojo® is a continuous learning platform enriched with neuroscience and behavioral psychology principles. It acts as a catalyst for cultivating a software craftsmanship culture within an organization. The dojo’s design, incorporating the concept of judo belts, helps break down the wide array of software craftsmanship disciplines into manageable learning units. This structured approach allows learners to engage in hands-on activities aligned with these disciplines, promoting continuous improvement.

Moreover, the dojo’s curriculum and learning activities are centered around specific milestones, enabling ongoing assessment of students’ progress. These assessments, based on industry frameworks like DORA and DASA, offer insights into the maturity of DevOps practices and agile skills. Additionally, the quality of crafts produced during the learning journey is assessed, ensuring a focus on both delivery speed and craft quality.

One distinctive advantage of the SW Craftsmanship Dojo® is its emphasis on real codebases during learning activities. By leveraging practice exercises and katas based on real codebases, learners can concentrate more on maximizing their learning potential without the inherent complexity of actual business problems. This practice, along with careful tracking of indicators related to code quality, provides tangible evidence of enhanced delivery speed and craft quality achieved through the dojo.

Conclusion: Preparing for the Italian Agile Days Presentation

In conclusion, this essay sheds light on the complex relationship between IDPs and code quality. It emphasizes the importance of integrating a strong software craftsmanship culture to achieve optimal code quality while benefiting from the advantages of IDPs. The SW Craftsmanship Dojo®, a registered trademark, serves as a powerful tool in promoting software craftsmanship principles and enhancing code quality within an organization.

With the upcoming Italian Agile Days presentation in November, the insights and findings presented in this essay will be shared with a wider audience. The presentation will delve deeper into the role of SW Craftsmanship Dojo® in fostering a culture of software craftsmanship and will highlight the importance of a holistic approach that combines IDP adoption with software craftsmanship principles to optimize software development processes and achieve exceptional code quality. Ultimately, this integration will help organizations strike a balance between speed and quality, resulting in the delivery of reliable and high-performing software products.

Michele Brissoni

Michele Brissoni

🌟 Crafting Elite SW Development Organizations 🌟

With over 20 years of experience, Mike, orchestrates digital transformations like a …