Changing the Company: Between Sincere Intentions and On-the-Ground Reality
To bring about lasting change, it’s better to persuade than to order. However, this change takes time and requires self-directed individuals.
To bring about lasting change, it’s better to persuade than to order. However, this change takes time and requires self-directed individuals.
Even though every project is unique, it’s still possible to identify common types, starting with the “firefighter” project: “Help, everything’s on fire!”
Software quality isn’t just about code: it’s a matter of product, agility, organization, and people, before it is a matter of technical expertise.
While a consultant provides specific answers, a coach helps their client find their own answers. These are different yet complementary approaches.
There is always a risk of doing harm while trying to do good. A coach, like other support professionals, should be supervised.
"Clean Code" is a reference book: reading it linearly, from A to Z, would make little sense. You need to read it, experiment with the concepts, and revisit it frequently.
Working on software quality means working on architectures, paradigms, and methodologies—particularly clean code. The programming language doesn’t matter.
Whatever your exact role (Lead Dev, Tech Lead, VP of Engineering, CTO…), be demanding but know how to be considerate of your team.
Reinvent your development tools: Jest, Redux, React, or even TypeScript. This exercise will take your skills to the next level.
Beyond the cost, bringing in a full-time coach can prove counterproductive, as your teams need time to process the changes.
Now, let’s hear from one of my clients, Ovrsea. Antoine, the CTO, explains how the idea to bring in coaching for his teams came about and what it has changed.
As agility has become more widespread, it has been misused, becoming synonymous with micromanagement and absurd practices. Yet we need agility now more than ever.
Clean Code is a good starting point, followed by TDD and Functional Programming. Wait a bit before diving into DDD and refactoring!
Trying to support a company or an individual who doesn’t want to change is counterproductive. It’s better to rely on the corporate culture.
Error as a pedagogical principle: it is necessary for a deep understanding of problems and gives meaning to best practices.
Training is, at best, a spark. Without ongoing support, putting what you’ve learned into practice is often difficult.
When the organization is dysfunctional, you call in an agile coach. When the codebase stops evolving, you call in a code doctor: a technical coach.