Clean Code (part I): serenity and economy

This series of articles is mainly aimed at software developers, but the form remains readable for business analysts and management actors, they will understand the importance of quality code at the company level as well as their role as quality agents or influencers.

Digital accelerator

Software code is a fundamental element in the functioning of a modern company. Business processes have become definitively dependent on software components that automate all or part of manual activities. Software is an important part of the company’s success and must meet expectations by being an accelerator and not a digital retarder. Finally, the software works with software code produced by one or more software development teams.

The truth

In an agile environment, the documentation of a feature is usually non-exhaustive and reduced to the essentials. Indeed, collaborative analysis of requirements is facilitated by focusing on interactions between stakeholders: domain experts and software technicians. As the pace of change does not allow for regular maintenance of this even light documentation, the software code naturally becomes the holder of the truth about the behavior of the system concerned, eventually constituting the most reliable source of information.

In motion

The reality of the digital market implies an acceleration in the pace of demand and the need to be able to continuously deliver value or increments of value-added digital products. Software code must, therefore, have intrinsic qualities to adapt and evolve. Clarity and organization of software code are important levers to reduce change inertia or the magnitude of change during maintenance.

Advantage or burden

For a software development team, for a digital company, software code is usually experienced as an advantage or a burden, an asset or debt, a sustainable base of opportunities or a cost center. Quality software code is a recognized ingredient to combine serenity and economy.

Social

Software code is the result of a joint analysis, design and implementation work between several responsible business and technical actors.

It is also an important emotional source; a well-designed code creates a positive, stimulating and reassuring feeling when reading or reviewing it, because the author’s intentions are quickly understood and future extension work can be considered calmly; a feeling of excitement when the effects of change are minimal, which naturally induces an additional motivation to sustain the acquired quality.

When writing software code, the author’s empathy towards receivers and future writers is a sign of kindness and professionalism.

Sustainable software development

Optimizing writing time, developing more calmly and ensuring constant productivity are the effects of the desired evolution in the way software code is designed. Do no longer develop simply to deliver but opt for sustainable development. Favor collaborative practices of analysis, design, and writing. These are accessible and adapted solutions to address this objective.

Well-crafted code and interactivity

Clean Code refers to quality software code and editorial practice that are entirely under the control of the software developers and can be configured as desired. It is a question of collectively defining some principles of writing and software design, of thinking before coding, of sharing the reflection and of asking for feedback. The code does not belong to anyone but to the company. We must now think “community”.

Clean Code can be read and enhanced by a developer other than its original author – Robert C. Martin

Well-crafted code can be defined by the following intrinsic qualities:

  • Readability (see part two)
  • Maintainability (see part three)
  • Self-documentation (see part four)
  • Testability (see part four)

These quality criteria are treated in the next parts of this article.

About the author

Software engineer and crafts lover, more than 20 years of experience in an enterprise environment as a software developer, architect, and technical leader.