The difficulty of promoting better practice
September 27, 2024
As a senior developer, I am stuck endlessly religitating ideas. It should not feel so difficult as I have experienced.
- Teams continue to spend little time and effort building mentoring programs.
- Developers often think they are following agile practices, except they lack autonomy and never meet their users, among other evidence proving otherwise.
- Projects are frequently led by developers who are ignorant of history, arrogant, and heedless. Technologies are often chosen for the benefit it will make on the resume rather than the project.
- The impact of "influencers" on our industry has been profound. For example, it is common to hear about the importance of "hexagonal architecture", which would have remained obscure as an early 2000's consulting neologism if not for Netflix's laundering of the phrase. This is an unnecessary term re-definition that obscures rather than clarifies. "Use code encapsulation and stay organized" did not require a new term to be coined.
- It is table manners that all new projects will benefit from microservices. Despite a great number of articles describing the alternatives, this damagingly wrong-headed idea will not stay squashed. The resulting complexity causes undue cost and pain, all but ensuring a death march ending.
- For too many developers, shiny complexity is more tempting than the less-exciting professionalism. In many teams, leaders will candidly reveal that the objective is to follow the latest trends, rather than focus on user needs.
- Developers continue to believe that software systems can be self-documenting solely by method and variable names, and view comments and documentation as not worth their time.
- Teams continue to discount the value of testing for their systems, with automated tests taking too long and often being written without a proper testing mindset.
- Developers continue to drown in the consequences of all this, hating their jobs. A tragedy considering how many joined the field for love of programming.
If everything is considered "just fine", there is no motivation for change. We have to understand our situation and the stakes in order to take the next step.