--- tags: management, people --- Dev Lead Overview === ### Promote good culture - Interteam communication - Develop responsibility of getting tasks from dev to production - Don't blame people for "bad code" or "wrong approaches" - We can always do better - "That's how we've always done it" is not good enough ### Delegate and share responsibility - You won't get the work done your team members will - Ensure engagement of developers in a task from planning to production - Find people to help you take care of infrastructure that your team owns - Jenkins - AWS - Build scripts - Webpack - Jenkinsfile ### Individuals - Look for people who are bored - Why are they bored? - Ask them what they want to do about it? - Make suggestions based on the individual developer's feedback - Look for people who are struggling - Is it due to tooling? - Is it due to process? - Is it due to interactions with others? - Internal to team - External to team - Solicit feedback on how you are supporting them - Don't assume you know what people are thinking - Don't assume you know what people need - Empathise - People don't do bad things because they want to be bad - Are they going through something in their personal lives? - Is someone fit for their role? - Has the way the team works evolved in a way that they no longer have the skills to share developer responsibilities? ### Track work and progress - How many things is an individual developer responsible for? - Are they taking on too much - Are too many things **In Progress** ### Promote good practice and quality - There should be enough time to provide good test coverage - What is good test coverage? - Write code for readability - Be conscious of introducing complexity - Modular code is more maintainable and/or easier to replace - Look after your team - Everyone's success and failure are your own - Making mistakes is ok - Get better awareness of things by doing good logging and monitoring in production ### Encourage involvement in strategic initiatives - Think about how we will code, build, test and deploy in the future - What could be improved with current code, build, test and deploy - Manage versions of any libraries and frameworks we are dependant on ### Monitor - Gain awareness of things: - Technical debt - Document it - Plan to deal with it - "Pay for it now or pay for it later" - Do some testing in production - Manual - Automated - Log things - Just do it! ### Processes - Monitor processes - What works - What is a pain point - Change processes - Don't be afraid to try something new to improve processes that are painpoints - Look at dropping processes that are causing: - Time wastage - Developer frustration ### Technology - Know all the technology that your team relies on - Understand historical decisions around what technology your team are using - What technology is holding back the team? - What technology is enabling the team? ### Represent your team - Don't hide how you team feels, tell someone: - Your manager - Leadership team - People you deal with in other teams - Monitor things that negatively effect your team - Monitor things that positively effect your team - Promote things that you've documented that are: - Positive - Negative