BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Podcasts Patrick Kua on Growing Technical Leadership and Evolutionary Architecture

Patrick Kua on Growing Technical Leadership and Evolutionary Architecture

This is the Engineering Culture Podcast, from the people behind InfoQ.com and the QCon conferences.

In this podcast Shane Hastie, Lead Editor for Culture & Methods, spoke to Patrick Kua from ThoughtWorks on growing technical leadership and evolutionary architecture

Key Takeaways

  • There is a significant gap in technical leadership capability in teams and across the industry as a whole
  • Your experience as a developer doesn’t prepare you for a tech lead role
  • Recognize that the skills and responsibilities are very different and find ways to build the new skills – training, mentoring and support
  • Software will continue to be changed so it is important to build it for changeability from the beginning
  • Many of the big decisions which are made at the beginning of a product’s life will change over time, build the ability to change into the core architectural design

0:15 Introductions

1:00 The gap in technical leadership capability in teams and across the industry as a whole

1:20 The Retrospective Handbook – practical advice, tips and tricks on running retrospectives

1:40 Talking with Technical Leads – finding the stories, challenges and advice from technical leaders around the world

1:58 Common challenges around technical leadership

2:20 Transitioning from developer to tech lead is a big shock

2:50 Your experience as a developer doesn’t prepare you for a tech lead role

3:10 The people aspect of team leadership is complicated and difficult

3:40 Many developers have not been exposed to aspects of systems & architecture which are part of team leadership responsibilities

4:40 The unknown, unknowns that trip up first-time tech leads

4:50 The temptation to revert to writing the code and designing the solution yourself instead of delegating to your team, because that is the comfort zone

5:40 The importance of recognizing that team leadership is a very different skillset from development

6:04 The reality that trying to be “right” is wrong; delegating and letting go is how tech leads become successful

6:35 Recognize that the skills and responsibilities are very different and find ways to build the new skills – training, mentoring and support

7:05 Leadership skills include communicating vision, influencing, communicating effectively with technical and non-technical people, conflict resolution, facilitation and mediation

7:25 Tech leads need to still have a foot in writing the code, they need to understand the system and structure of the codebase and be able to empathize with the problems developers face in their work

8:05 The tech lead is in the overlap position between leadership architecture and the developers – they need to understand key aspects of the broader architecture so they can express them to the developers

8:15 The hard bit is figuring out where your own skills and experiences lie, and identifying where you need to build skill to fill the gaps

9:00 One of the challenges is finding the time to be able to reflect and understand where your skills sit in all three aspects

9:25 Many people get into the tech lead role because they are the best developer – this is often the worst choice and the wrong person for the role

9:50 Ideas about selecting the right person for the role, and helping them grow into it

10:35 Designing a program to help prepare potential tech leads for the role

10:50 One of the common challenges is recognizing that people problems don’t often have a “right” answer, which can be hard for technical people to accept because they are used to finding clear solutions to problems – tests pass or fail

11:25 Helping new tech leads by having existing tech leads share their experiences, challenges and approaches

12:20 The value of nurturing and creating a support network of peers for tech leads

12:40 Organizations should be proactively building programs to support new tech leads

13:00 These challenges are not unique to IT, the example of doctors who struggle with the same issues when they move into leadership roles.

13:25 There are a lot of resources available around leadership.  Harvard Business Review is one resource with lots of valuable content

14:05 The Mindtools website has lots of good content

14:15 There are lots of resources available around the technical development aspect of the tech lead role – grow the core competencies in techniques such as TDD and CD

14:45 There are not many credible resources for building architectural skills – identifying some

16:20 Patrick is writing a book on Evolutionary Architecture

16:35 Software will continue to be changed so it is important to build it for changeability from the beginning

17:10 Making change a key, essential element of the architecture

17:25 Change is happening at the level of tools and technology as well as around the business needs

17:42 Create as many options as possible, defer commitment and make decisions easily reversible

18:20 Ensure you have a clear understanding of the underlying problem being solved, and build for evolving needs

18:35 Striking the balance between too much up-front design and none – find the sweet spot of just enough

18:52 Define the fitness function for the architecture – some characteristics of a system are fixed, how they are implemented can be very variable, for example security in a financial system

19:50 Recognizing the importance of “non-functional” requirements, system quality attributes

20:05 Making the fitness function measurable

20:20 Example of putting performance tests into the continuous delivery platform

20:50 The ability to automate aspects of compliance and security testing, rather than waiting for manual scans

21:25 Being aware of the coupling to significant architectural choices – the industry will change, tools will change, languages will change.  Design to enable change at that layer of the architecture as well

22:15 The value of choosing lighter-weight tools vs being locked into a vendor’s proprietary technology

22:35 Evolutionary architecture brings ideas together from a variety of different disciplines, many of which have been around for quite a long time

23:25 Many of the big decisions which are made at the beginning of a product’s life will change over time, build the ability to change into the core architectural design

23:50 The shift from “I know” to “I don’t know” is hard for many architects

24:10 The evolutionary architect helps people find the information they need as rapidly as possible when they need it

24:40 The value of pushing decision making into the team and increasing the frequency of feedback cycles

24:55 The way the architect role changes from deciding everything up front to understanding that decisions need to be deferred until as late as possible, and need to be easily reversible

25:25 Design for change and recognize that the rate of change is increasing

Mentioned:

More about our podcasts

You can keep up-to-date with the podcasts via our RSS Feed, and they are available via SoundCloud, Apple Podcasts, Spotify, Overcast and YouTube. From this page you also have access to our recorded show notes. They all have clickable links that will take you directly to that part of the audio.

Previous podcasts

Rate this Article

Adoption
Style

BT