Nowadays we see the software development more like product development. It’s more common to work in teams instead of separate rooms alone (and communicating over tools). Today the team can really affect the working methods, tools etc. (like Agile Manifesto says).
Still there’s organisations who still prefer to use the old “traditional” way of managing top to bottom style, but assuming working agile. Strict processes might be recommended or required when we are dealing with for example life-critical systems.
If we look at the picture of Evolution of Management (above), it says that management and authority and trust is moving inside of teams. That’s a good direction because especially in software development the coders really have to know what to do to write the right business logic – so they have the actual authority to build the right solution which is based even more on Lean startup approach. There’s no responsibility handovers anymore – people are taking responsibility as a team, not based on roles or hierarchical levels – e.g. It’s not a designer’s responsibility to test or code the system. Everyone must do everything they can to build a perfect solution regardless what the actual roles are – there’s only team of people, not team of roles.
About leading the people instead of commanding and controlling the resources and processes: it’s understandable hard to reborn as a leader instead of commander especially if the career has started in waterfall era. Nowadays managers are required to have a great social skills like empathy and flexibility. Today’s leadership in technology field is all about continuous improvement by making blockers or waste visible and focusing to removing them.
I see technology as a material like wood or metal. Technology can be crafted by developers. Somedays developers need to craft the tools of their own to do the things right, actually that’s pretty rare because there’s a pretty high level of standardisation of tech tools (for VCS or ALM).
The main focus of tech lead is to reduce the time between getting to know what to do and production installation:
Technology leadership is rarely evolved only in technology nowadays, because we have so much out-of-the-box tools or overall solutions for implementing the common scenarios, such as forms, wizards, web shops etc. It’s more about dealing within the team in social level (to enhance the team dynamics) – and at my point of view it’s definitely shouldn’t be related to technology at all. I see that the technology is going more high-end (naturally), but human-to-human communication should be in natural face-to-face form instead of communicating over tools. When interacting face-to-face, we have all senses in use, but if we work constantly remotely, it’s always harder to communicate over Skype – then you have only voice, maybe video, but there’s so much information you don’t see, and I see that harmful to team dynamics. It’s important to encourage the team to work as much face-to-face it’s possible – especially when the development is just started. It’s understandable not to strictly avoid remote work either – flexibility is one of the key assets of modern work culture.
Agile implementations like Scrum gives the framework to focus on the right things to answering the needs of rapidly changing world. As a tech lead it’s important to see also the social level as valuable as code – I mean how the team members support each other and really focus on the process and improving constantly.
There’s pretty effective principle for leading the tech team: If the product is broken in production, the problem is in the process – so fix the process to build the perfect product (actually it’s never perfect, or it shouldn’t be because of Kaizen).