Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Being a Lead Software Developer

Being a Lead Software Developer

You worked hard. Solving problems and coding smart solutions is your thing. And then there is a day when the bomb is dropped. "Would you like to be promoted to the team's lead developer?" This was my reality a few years ago. I did not know much about being a lead developer. I worked with many great ones over the years. But now I had to become one. I had to learn new skills, consider factors outside of my comfort zone. But… I had to learn. On a number of topical areas I will go into details about the lessons I learned when growing into my role as a lead software developer. Everybody's environment is different, but I think there is something useful in this presentation for everyone.

https://techorama.be/agenda/session/being-a-lead-software-developer/

More Decks by Jeroen Leenarts (AppForce1)

Other Decks in Programming

Transcript

  1. G E T S T R E A M .

    I O Being a Lead Software Developer
  2. G E T S T R E A M .

    I O Jeroen Leenarts • iOS Developer Relations Lead • Podcast: AppForce1 • Book: Being a Lead Developer • Over 20 years of experience
  3. G E T S T R E A M .

    I O Why do I get to talk about Being a Lead Software Developer?
  4. G E T S T R E A M .

    I O Why do I get to talk about Being a Lead Software Developer?
  5. G E T S T R E A M .

    I O Stream Chat • The #1 Chat API for Custom Messaging Apps. • Add fast, real-time messaging to your application in days • Free trial available, no credit card required .N ET SD K too
  6. G E T S T R E A M .

    I O Trusted by many companies
  7. G E T S T R E A M .

    I O We’re Hiring We’re a passionate and supportive group of professionals from around the word striving for excellence in everything we do. Please visit: https://getstream.io/team
  8. G E T S T R E A M .

    I O What is a Lead Software Developer?
  9. G E T S T R E A M .

    I O •Makes sure the developers are growing professionaly What is a Lead Software Developer
  10. G E T S T R E A M .

    I O •Hard decisions when needed What is a Lead Software Developer
  11. G E T S T R E A M .

    I O •Supports the business in achieving its goals What is a Lead Software Developer
  12. G E T S T R E A M .

    I O •Protect the team against impossible expectations and death marches What is a Lead Software Developer
  13. G E T S T R E A M .

    I O •As a lead you make sure… ◦ …everyone adheres to agreed upon quality standards What is a Lead Software Developer
  14. G E T S T R E A M .

    I O •As a lead you make sure… ◦ …you can speak about and explain principles of good software design What is a Lead Software Developer
  15. G E T S T R E A M .

    I O •As a lead you make sure… ◦ …you can explain why and how any practices done by the team What is a Lead Software Developer
  16. G E T S T R E A M .

    I O •As a lead you make sure… ◦ …to guard the quality of work and end result What is a Lead Software Developer
  17. G E T S T R E A M .

    I O •As a lead you make sure… ◦ …to act as an example for your team What is a Lead Software Developer
  18. G E T S T R E A M .

    I O What is a Lead Software Developer
  19. G E T S T R E A M .

    I O •Developers think in terms of the product and him/herself What is a Lead Software Developer
  20. G E T S T R E A M .

    I O •A lead thinks in terms of the product in a long term growth perspective, the team, and the business What is a Lead Software Developer
  21. G E T S T R E A M .

    I O •Notice the difference? What is a Lead Software Developer
  22. G E T S T R E A M .

    I O •Developers think in terms of the product and him/herself •A lead thinks in terms of the product in a long term growth perspective, the team, and the business What is a Lead Software Developer
  23. G E T S T R E A M .

    I O •When a developer leaves my team ◦ They look back on their accomplishments with pride ◦ Fond memories of challenging work ◦ Missing a team of unique individuals What is a Lead Software Developer
  24. G E T S T R E A M .

    I O •Lead is not Senior++ ◦ It is often the case, but not a guarantee ◦ Experience does not indicate potential success as a lead ◦ A junior developer can often be an amazing lead ▪ They are often much more open to input What is a Lead Software Developer
  25. G E T S T R E A M .

    I O Should you want to be a Lead Software Developer?
  26. G E T S T R E A M .

    I O Three Focus Areas
  27. G E T S T R E A M .

    I O Three Focus Areas Your team The Business You
  28. G E T S T R E A M .

    I O •You have to care ◦ About yourself ◦ About your work ◦ About your team ◦ About the business Your Team
  29. G E T S T R E A M .

    I O •As a lead you make sure… ◦ …everyone adheres to agreed upon quality standards ◦ …you can speak about and explain principles of good software design ◦ …you can explain why and how any practices done by the team ◦ …to guard the quality of work and end result ◦ …to act as an example for your team Your Team
  30. G E T S T R E A M .

    I O •Regular engagement with all team members ◦ Formal ▪ Scheduled ◦ Informal ▪ Just talk to people • Sometimes even mentorship or coaching • Always respect boundaries and confidentiality • Every sprint/weekly Keep tabs on your peers and surroundings
  31. G E T S T R E A M .

    I O •Informal == not part of the papertrail ◦ Make it very clear it is about improvement • Connect as human beings first, not as colleagues ◦ Get a general life update • The only thing leaving this room is the two of you and practical steps or plans. NOTHING else • Always respect boundaries and confidentiality • Every 3 to 6 months Informal peer reviews
  32. G E T S T R E A M .

    I O Formal/performance reviews
  33. G E T S T R E A M .

    I O •Same as an informal review, but now there is a paper trail ◦ Make it very clear this is required by the company • Be sure both parties are fully aware of the proces ◦ If not, go over the proces together • Formal reviews are ceremony ◦ Provided you did the informal reviews right • A negative review is very hard, but should not be a surprise • Whenever the company so desires Formal/performance reviews
  34. G E T S T R E A M .

    I O •I think everybody should do this ◦ But in case team members don’t, nudge them to improve • Make training a regular topic with your business sponsor/ manager ◦ Ask what budgets are available • Keep an eye out for knowledge gaps ◦ Send people on training on those topics • Monthly Finding training
  35. G E T S T R E A M .

    I O • Present early project design documentation • Mob programming session • Code) Review session • Brainstorm on harder topics ◦ Future directions for the product ◦ How to deal with technical debt ◦ Etc… • Anyone is welcome • Every week/sprint Actively share knowledge
  36. G E T S T R E A M .

    I O Three Focus Areas Your team The Business You
  37. G E T S T R E A M .

    I O •Is about achieving a goal through, in part, your efforts The Business
  38. G E T S T R E A M .

    I O •The basics for most ◦ You get paid / You provide time and effort ◦ Revenue good == things are good The Business
  39. G E T S T R E A M .

    I O •Don’t be a yes-person ◦ You are there to provide input Managing expectations
  40. G E T S T R E A M .

    I O • Mind the gap ◦ Business think in market share, conversion, the next big idea… ◦ You think in systems and lines of code Managing expectations
  41. G E T S T R E A M .

    I O •A plan requires feedback ◦ Voice your concerns ◦ Talk about risks ◦ Unseen dependencies ◦ What ifs… Managing expectations
  42. G E T S T R E A M .

    I O •Software development is not a finite task ◦ Things happen ◦ A plan is just that, a plan • Never accept an imposed duration of a plan Managing expectations
  43. G E T S T R E A M .

    I O •Advocate for your team ◦ Software, hardware, training, time to learn, time… Managing expectations
  44. G E T S T R E A M .

    I O • Make sure you understand the effects getting off track ◦ Having to work harder or even overtime is on you as the lead ▪ You let it happen ▪ Educate the business better Managing expectations
  45. G E T S T R E A M .

    I O •Specifications are for all developers ◦ But understanding them is hard Translating
  46. G E T S T R E A M .

    I O •Discussing specifications with business sponsors is different ◦ Explain implications == gaining acceptance on durations ◦ Talk in terms of costs and benefits Translating
  47. G E T S T R E A M .

    I O • Talk with the people supporting the software ◦ Late-night support is avoidable by talking and listening to the right people Translating
  48. G E T S T R E A M .

    I O •Business run on budgets and value ◦ Rework on existing functionality sounds like a really bad business case ◦ Why touch something that is working today? Fight for technical progress
  49. G E T S T R E A M .

    I O • Keep explaining why paying down tech-debt is so important Fight for technical progress
  50. G E T S T R E A M .

    I O •Discussing specifications with business sponsors is different ◦ Explain implications == gaining acceptance on durations ◦ Talk in terms of costs and benefits Fight for technical progress
  51. G E T S T R E A M .

    I O • Businesses need numbers • Preferably in a nice graph • Just make sure you don’t lie too much.) Fight for technical progress
  52. G E T S T R E A M .

    I O Three Focus Areas Your team The Business You
  53. G E T S T R E A M .

    I O • You take care of your team • You work hard to keep business sponsors happy • What are some tips to keep yourself happy and healthy? ◦ Being a lead developer overwhelming ▪ People want your input, advice, help or work ▪ Being able to delegate is your biggest asset • Let’s discus a few things usefull practices ◦ I think any lead needs them ◦ And they are just smart things to do for anyone You
  54. G E T S T R E A M .

    I O • Under-appreciated skill • Pencil and a block note ◦ Don’t go too fancy Note taking
  55. G E T S T R E A M .

    I O • External storage to get ideas out of your head ◦ More focus • Proces notes regularly Note taking
  56. G E T S T R E A M .

    I O • Track what you spend your time on in a typical week • Try optimizing things. ◦ Cluster meetings on single days ◦ Group meetings in 1 part of the day Scheduling your own time
  57. G E T S T R E A M .

    I O • Schedule blocks of focus time in your own schedule ◦ If you do not do this, this will change your life Scheduling your own time
  58. G E T S T R E A M .

    I O • You might spend less time coding ◦ But stay up to date • Find a nice aggregated source for you niche and a more generic one ◦ Like a Podcast and a digest Newsletter Learning
  59. G E T S T R E A M .

    I O • Find your weaknesses in your current and future role ◦ Develop those ◦ Ask your surroundings, you got informal peer reviews going right? ◦ Think coaching, mentoring, presenting, negotiating. Skills to better deal with business type behaviors Learning
  60. G E T S T R E A M .

    I O • Email ◦ Only check it this 2 or 3 times a day ◦ Leave something in email for a few hours, often it will resolve itself ◦ Turn off inbox notifications, appointment reminders are fine Communicating
  61. G E T S T R E A M .

    I O • Slack or other team comms platform ◦ Treat it like email, but shorter ◦ If there are specific people you have to respond to quickly, Slack allows you to mark those. Communicating
  62. G E T S T R E A M .

    I O • Big message? ◦ Put it in a WIKI, or similar repository Communicating
  63. G E T S T R E A M .

    I O • Expect everyone to be prepared ◦ ALL meeting require an agenda ◦ Otherwise, why are you meeting? Meetings
  64. G E T S T R E A M .

    I O • Keep the meeting on topic ◦ If some big tangent props up, that’s another meeting Meetings
  65. G E T S T R E A M .

    I O • Good meetings start on time and end with plenty time to spare Meetings
  66. G E T S T R E A M .

    I O • Face to face is very powerful Meetings
  67. G E T S T R E A M .

    I O • Never forget the power of silence ◦ It is ok if nobody says anything for 10 or even 20 seconds ◦ You will be surprised what you can achieve by actively staying silent Meetings
  68. G E T S T R E A M .

    I O • Social chit-chat is for when the meeting is over ◦ Because you got time to spare, right? Meetings
  69. G E T S T R E A M .

    I O You were expecting a gif or image
  70. G E T S T R E A M .

    I O You were expecting a gif or image
  71. G E T S T R E A M .

    I O Three Focus Areas
  72. G E T S T R E A M .

    I O Sounds great, but how to become one?
  73. G E T S T R E A M .

    I O •Recap ◦ I wrote all this down in my book ▪ It contains a more detail ◦ Be aware of the three focus areas: Team, Business and you ▪ Support all three ◦ Schedule focus time in your calendar today Conclusion
  74. G E T S T R E A M .

    I O Questions?
  75. G E T S T R E A M .

    I O Thank You.
  76. G E T S T R E A M .

    I O Discount code and follow me on Twitter https://appforce1.net/techorama/