These are 5 statements that I have heard (also seen being lived really) over the years by enough times to think that maybe many people actually do say and live them. Here’s what they are and why I think they are not good statements.
5. “My passion is my code”
or as some developers try to sound romantic “code never lies to me”.
Emotional attachment to your work is not a bad thing per se. But you gotta be a lot more careful where you put your passion, my friend.
Good developers do not hesitate to toss their work in the trash like yesterday’s calendar.
4. “It is good because it is opinionated”
(often speaking of frameworks)
Nothing can be good just by being opinionated. Clearly, an opinionated solution/framework is a less reusable, a less flexible and a non-modular wholeness. That might be good, as long as your (understanding of the) problem plays along very well with all the opinions that have been taken in building that solution/framework. It takes only one opinion to fail the problem in order for the whole solution to quickly become a hassle that you cannot wait to replace, rather than a solution.
Good developers know their tools; where they fit and where they don’t.
3. UX, yikes. I don’t understand users.
(some even still say the same about UI or “Frontend”)
Not to understand the user, or not to want to, is equivalent to being passive and unwilling to take any transparent decisions, let alone the responsibility for them. Some developers have confrontation fear, even for their hidden technical decisions. That fear, although might be wrongly faced, is understandable given that developers cannot delude themselves into believing that their decisions have no impact on the final product.
Good developers study their domain and users. Only then they can advance with extreme programming.
2. I am not a product guy
Even when it refers only to the very end product that is brought to the end user, this statement is still dangerous.
Creating software is unique in a way that it allows us, with perspective, to view code as a product itself. So if developers take such statement seriously down to their code too, it is very likely their code will fail much sooner, functionally or non-functionally, before it is time to consider refactoring it.
Good developers are product developers by nature.
1. I am a lead developer
As we have seen it form in front of our naked eyes, “lead developer” was invented to both create and fulfill the need for a career ladder, politics and pursuit of superiority among developers, in an attempt to shape this emerging profession and fit it in the hierarchical, or worse bureaucratic cooperation, and to keep the developers in order with the execution expectations of the (micro-)managers.
Good developers do not fall for superiority, politics or micro-management.