When you start as a developer there is one thing you lack a lot: Experience. There are patterns you implement, but not fully understand the thoughts behind it. It can be frustrating to implement something in a way it has been dictated by the “Tech Lead”.
It’s not because you have 10+ years experience in software that you are the guru that has to dictate how to implement. Sometimes you miss out on new tech in companies. This because your are “rusted” in your old fashioned (dictated) why of working.
This illustrates the two extremes of “The Senior Tech Lead” and “The Junior Developer”. If we can find a great mixture between both extremes we can build a great culture in the company. One that is based on 1 common value: “Craftsmanship”.
Craftsmanship in software is rather new (see http://manifesto.softwarecraftsmanship.org/). It’s about raising the bar for yourself and your co-workers, it’s about adding value to the software you write every day, it’s about partnerships, sharing knowledge and learning from each other.
It’s one of the values I try to explain and live by in the software teams I’m part of or was. Because I believe the whole team will benefit from it.