Create a learning culture to improve code quality
Tags: codequality, programming, productivity, devops
Published: 2021-12-03 10:08:18


## 🚀 DORA and Accelerate

The **DORA** (DevOps Research and Assessment), part of Google since 2018, releases a yearly report on the State of DevOps in the IT industry. The latest [2021 Accelerate State of DevOps report](https://cloud.google.com/blog/products/devops-sre/announcing-dora-2021-accelerate-state-of-devops-report) has been recently unveiled if you're interested in their new findings. The first six-year study results were the raw material for the excellent **Accelerate** book, with a growing impact in our Industry on the DevOps culture and the goal for performance. 

The DORA came with an initial set of [24 capabilities](https://www.devops-research.com/research.html) observed in companies with high performance in their **DevOps** culture (measured mainly with the [4 Key metrics](https://packmind.com/what-indicators-of-quality-improvement-of-code/)). These capabilities target technical **practices**, processes, or even the **culture**. In the latest version in December 2021, 27 capabilities are in the catalog. 

## 📚 The Learning Culture Capability

The DORA states that performant organizations have settled a culture that values **learning** and observed stronger team cohesion, increased deployment frequency, and reduced lead time for changes, time to restore services, and change failure rate.

For organizations, that implies to:

- Plan **training** budgets ;
- Make sure that everyone has access to **knowledge** ;
- Create a **climate** and spaces where knowledge can be shared among teams ;
- Ensure teams' psychological safety: try things; it's safe to fail: this is part of the learning process
- Provide **logistics** resources (e.g., physical rooms) for learning sessions.

## 👩‍🏫 A diversity of learning resources

In practice, a learning culture may have the following form: 

- Regular meetings such as **BBL** (*Brown bags lunches*) where one person (internal or external to the company) talks about a topic they recently worked on, to share their feedback and how it could be helpful for the organizations ;
- Technical meetings such as **Coding Dojo** (*Kata* or *Randori,* for instance) ;
- A shared **library** with books that everyone could borrow. Anyone can suggest new content to add to the shelves ;
- **E-learning** resources, usually a collection of short videos that developers can watch whenever they want to depend on their schedule ;

Practices such as pair/mob programming and **[code reviews](https://packmind.com/discovering-the-code-review/)** also help developers to learn from each other every day. 

## 👨🏽‍💻 Improve our technical skills to reduce technical debt

This learning culture helps developers to improve their **technical skills** on various topics: programming languages and frameworks, algorithms, clean code, testing, architecture, design, and many others. 

Improving our technical skills fosters developers' capacities to write **high-quality source code**, preventing risks of **accidental** **technical debt** and reducing time spent in code reviews and more generally on source code maintenance (a [high-consuming task](https://www.stepsize.com/report) for developers). 

This idea is summarized as follow:

> «Don't spend more time on code quality. The real powermore is growing the skills and habits that give you quality in the same timeframe » *(Mathias Verraes)*
> 

The concept is straightforward: instead of continuously spending half a day every month to refactor some *bad code*, **invest this time to teach developers how to avoid these mistakes**. 

## 💬 An efficient technical collective workshop

[Packmind](https://packmind.com) is a platform for **sharing the best coding practices** within a company. These best practices emerge from developers as they can identify some examples or counter-examples in their source code every day thanks to Packmind extensions for IDE  (Visual Studio, VS Code, JetBrains suite, and Eclipse)and Web browsers (Chrome, Firefox, Edge & Opera).

All these contributions are stacked to Packmind, and the team then gathers regularly (every two weeks, for instance) for a **Craft Workshop**. This is a one-hour session where contributions are reviewed, discussed altogether, and either accepted or discarded. If they are accepted, we ensure everyone understands the practice and configure the Packmind algorithm for its **automatic suggestions**.

![Packmind](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k2cuctzm0dezbib90yhd.png)

Interested to know more? Get started for free on [packmind.com](https://packmind.com) 😉