To me, it's actually about:
🧠 Developer mindset (empathy, craftsmanship)
⚙️ Coding conventions (formatting, style, naming)
🤹🏻 Skill & knowledge (refactoring, testing, patterns, best practices)
Developers with an empathy mindset seek to write code so clear and clean that it empowers their peers, themselves, and their future maintainers to continue to contribute in meaningful ways.
- care about the problem domain
- care to learn about the business
- face their social anxieties to ask important questions before writing code
- try to avoid being clever
- push back on impossible deadlines
- Detect code smells
- Avoid anti-patterns
- Familiarize themselves with best practices
Conventions are a consistent set of rules that make code easy to read and maintain.
Craftspeople usually have their own opinions.
Empathetic craftspeople work with the team to come up with a consistent strategy that works for everyone.
- Do we like comments?
- Semi-colons?
- Should we start with failing tests?
The strategy y'all choose doesn't matter as much. Being on the same page as your team is what really matters.
Craftspeople understand that their problems are not unique.
They understand that common patterns & approaches emerged for a good reason.
We have problems to solve, and we've found ways to solve them.
Naming things is hard. As a best practice, we have the 7 principles of naming
Consistency, understandability, specificity, brevity, searchability, pronounceability, austerity.
namingthings.co/naming-things-…
Code incapable of change is dangerous. To remedy this, craftspeople research these topics:
- Dependency Inversion
- Composability
- Packaging Principles
- Boundaries
- Separation of Concerns
- Cross-cutting Concerns
If an old feature breaks every time you add a new one, that can make it very hard to keep your code afloat.
To solve this, craftspeople invest into learning how to write testable code & tests.
They push new code with confidence.
It isn't as glamourous as pioneering a new tech stack or writing your own library- it's being a team player.
It's surprising how fulfilling writing boring code can be.
Clean code is the start of the journey.
Here's a roadmap that shows you where the road leads, from Clean Code to Programming Languages, to Design Patterns, and full-on architectural approaches like DDD and Event Sourcing.
khalilstemmler.com/articles/softw…
🧠 Get your mindset right. Focus on being empowering your team with the code you write. Have conversations, ask questions, **care** about the problem you're solving.
But you need to know the rules first to know if you can break 'em.
Clean code is about empathy for those who work with our code.
Design with empathy for your team & future maintainers.