Empathy - The Unsung Hero of Development
- Who do we write code for? Do we satisfy the product managers? Do we write features for the company's clients, who pay our salaries? Perhaps for the CEO?
At least when considering code, we - developers - are our own most loyal clients. Hence, the code we write is primarily for future us.
A code is like a tradition, passed among generations of developers. It's continuously evolving, but the basis always consists of older (if not ancient) strata. Unlike every other person - from PMs, through senior management and up to end users - only developers read code; and it actually takes a significant chunk of our time.
The common (software) engineer is portrayed as a socially awkward nerd, where the good engineers are also smart. The thing is that intelligent people often come up with either complex verbose solutions, or they use very specific terms that require deep knowledge of their domain.
Every developer had come across code that requires familiarity with esoteric patterns, or just notorious single-line code snippets. How did it make you feel about yourself, or about the person who wrote it? I hated them (and was pretty vocal about it - you can ask my colleagues).
Being Empathetic Is Key
Extraordinary developers see the code they write through the eyes of others. The tactical tasks that we implement are just a part of the bigger picture - one day someone will extend our code, or will use it as a module in another complicated feature.
Legacy code that is hard to read significantly slows down companies, or worse - it halts people from changing stuff, just because they're afraid of the unknown. Hence, regardless of algorithmic skills or agility, if you're not conscious about others you often do more harm than good.
Uncle Bob claims that "Clean code always looks like it was written by someone who cares" and I'm certain that cares doesn't only imply one's high standards, but also their caring for both current and future colleagues.