When it comes to software development and leadership, the phrase “knowledge is power” can be a tad misleading. While it’s essential to continuously learn and stay updated with the latest trends, it’s often more crucial to master the execution of what we already know.
Allure of the New
It’s human nature to be drawn to the new - be it a fresh framework, a novel development approach, or a trending programming language. However, in the rush to embrace the latest, many software developers overlook the wealth of knowledge they’ve already amassed. It’s common for developers to be aware of essential concepts like the single responsibility principle but fail to implement them in practice. Many organizations suffer from software that has abstractions with over 1k lines in them (the most I’ve seen in the wild is a ~50k line file). Instead of always seeking new solutions, take the time to introspect, ask the hard questions, and focus on applying what you already know in varying contexts.
Introspection Over Instruction
Instead of solely focusing on introducing teams to a new way of working, leaders should encourage introspection. One powerful question to have teams consider is: “What do we know we’re not doing that we should be doing?” Such introspection can lead to substantial improvement without the need to chase after the latest trends or technologies.
Retrospectives are designed to perform this function. However, oftentimes they devolve into a partially useful ceremony where people avoid discussing real issues in depth, instead of favoring oversimplifying, justifying, or externalizing problems. It takes a great facilitator to get the most out of these meetings (see Retrospectives Antipatterns Book for more).
The Power of Review
How often have we read a book or watched a conference talk and gleaned something new from it on the second or third review? Just like these resources, the knowledge we’ve acquired in our careers also deserves revisiting. Encourage your teams to document what they know and rate themselves on how well they’ve done at applying this knowledge to their project and process.
Final Thoughts
While continuous learning is a cornerstone of personal and professional growth, mastering the execution of known principles is equally important. It’s about shifting focus from always looking outside for solutions to meaningfully introspecting and leveraging the vast reservoir of knowledge we already possess.
By striving for mastery in execution, software development leaders can inspire their teams to produce quality software, reduce technical debt, and foster a culture of excellence that transcends the latest trends.