Share
Embed
Transcript
66 slides
-
THE MEMOIRS OF A TECHNICAL TEAM LEAD LEADING THE DROIDS:
@thedancercodes -
ABOUT ME ▸ Software Engineer. ▸ Python, JS, Android ▸
Dance Choreographer. ▸ MC/ Hypeman. ▸ DIY Hobbyist. ▸ Traveling. ▸ Community Development. ▸ Technical Team Lead - Andela -
HIGH LEVEL TAKEAWAYS FROM THIS TALK ▸ Your Role as
a Technical Team Lead. ▸ What success looks like. ▸ Communication. ▸ Ingredients that make up a great engineering team culture ▸ Mentorship ▸ Engineering management and leadership skills -
MY DEFINITION TECHNICAL TEAM LEAD ▸ Software Engineer with strong
technical chops. ▸ Have reached some level of competency in various areas of software development: ▸ System Design - to architect your software and validate all the risks on early stages. ▸ Operations - to keep your systems up and running. ▸ Quality engineering - to prevent loss of your company's reputation. ▸ Engineering management - to delegate implementation to your team or even other teams. ▸ Lead with company values. (Andela “EPIC” Values) ▸ Understand the business ▸ Deliver value to customers -
TTL’S ARE… THE ULTIMATE CHESS MASTERS Be the chess master
that provides Vision and Coordination while allowing pieces to move themselves. -
TEAM STRUCTURE THE DIFFERENT TEAMS ▸ Backend ▸ Frontend ▸
Mobile (Android) * ▸ Mobile (React Native) * ▸ DevOps ▸ Product & Design ▸ IT ▸ Operations (Main Stakeholders) The teams with the * are the teams I currently lead -
THE TEAM IS DISTRIBUTED ACROSS # $ % & Kenya
Uganda Nigeria Rwanda -
PROBLEM ▸ Tight on space with a growing population. ▸
Need analytics to understand how conference & meeting rooms are being used at the office. ▸ A system that enables the company gets insights needed to refine space to fit changing needs. ▸ System that enables users to give feedback about the state of the different conference/ meeting rooms. SOLUTION -
MANAGING MEETING ROOM AVAILABILITY TO ENSURE OPTIMIZED AND BENEFICIAL USE
BY AND FOR ALL ANDELANS Converge Vision PRODUCT VISION -
TEXT ARCHITECTURE, INFRASTRUCTURE & TOOLS ▸ Java and Kotlin ▸
MVP & PBF(Package By Feature) ▸ RxJava2 ▸ Glide ▸ OkHttp (Apollo GraphQL) ▸ Timber ▸ Mockito ▸ Espresso ▸ Static Analysis Tools: ▸ PMD, Checkstyle, Spotbugs, Android Lint, Ktlint ▸ Gradle - Build Scans ▸ Firebase (Test Lab & Cloud Messaging) ▸ Google Cloud Platform (GCP) ▸ Kubernetes ▸ Design System ▸ Invision ▸ Github ▸ Code Climate ▸ Circle CI/ Jenkins ▸ GraphQL & Flask (Backend) ▸ Fastlane ▸ Beta by Crashlytics ▸ Google Playstore -
CHALLENGES WE FACED IN THE EARLY DAYS ▸ Technology Knowledge
gap. ▸ Some engineers had never done Android or GraphQL ▸ Communication Breakdown because of team size. ▸ Lack of proper product support: ▸ Slow turn around time for designs. ▸ No full time Product Manager. ▸ No backend. ▸ Slow builds. -
MORE CHALLENGES… ▸ Lack of access to crucial systems: ▸
Admin access to Google Calendar API. ▸ A strong competitor: Robin App ▸ Building out certain complex features: ▸ Notification System ▸ Custom Views ▸ Fragments. ▸ Deeply Nested UIs affecting performance. ▸ Bureaucracy and Company Policies: ▸ Okta & HelpDesk ▸ Remote Teams & Cultural Nuances. -
CHALLENGES TEST YOUR LEADERSHIP ABILITY & AS A RESULT YOU
WILL MAKE MISTAKES TheDancerCodes QUOTE -
MISTAKE #1 WRITING CODE ALL THE TIME ▸ Don’t fall
into the trap of writing code all the time and leaving other responsibilities behind. ▸ You are no longer an individual contributor but a multiplier. ▸ You are to multiply the productivity and impact of your team. -
MISTAKE #2 THINKING PEOPLE ARE SOMEONE ELSE’S PROBLEM ▸ They
are your responsibility. ▸ Be aware of the mood of the team and how that affects your team. ▸ Be an emotional outlet for the people’s problems. ▸ You are to remove any obstacles in their way that they may be experiencing. ▸ Practice empathy and create psychological safety in your team. -
MISTAKE #3 MAKING ALL THE TECHNICAL DECISIONS ▸ Think about
impact to team: If you take on all the interesting challenges, what is left for everyone else? ▸ You don’t want to take all the hard decisions on, bcoz you won’t have all the tech information your team will have. ▸ Involve you team in the process of decision making. They will own the problem solving process more if you do this. ▸ It empowers them to think critically and allows the team to come up with the best solution for the challenge. -
MISTAKE #4 THEY WILL RESOLVE ARGUMENTS ON THEIR OWN ▸
Engineers can be strong willed and very opinionated. ▸ As a result, arguments are bound to happen from time to time. ▸ Think about how you resolve arguments in the team. ▸ Help the team come to a consensus. -
MISTAKE #5 THE TEAM KNOW WHAT THEY ARE DOING ▸
Don’t make the assumption that the team knows what they are doing. ▸ You need to strike a balance between stamping your authority and not doing anything at all. ▸ As a TL you need to ensure everyone is aligned rather than pulling in different directions. ▸ Think about time for different initiatives: ▸ Time for playing with new tools ▸ Time to solve technical debt built over time ▸ Time to churn out features. -
KEY LEARNING FROM MY MISTAKES VULNERABILITY IN LEADERSHIP ▸ It's
OK to say: I don’t know. Let's ask someone or find someone who knows. ▸ Side Effect: You have exposed a place of vulnerability and vulnerability give you a really strong place of being a leader. ▸ It shows we can never be perfect and that we can give other people an opportunity to learn and grow. -
WHAT DOES ENGINEERING LEADERSHIP LOOK LIKE? ▸ Hands-on expertise is
what gives you credibility and what helps you make decisions and lead your team effectively. ▸ This doesn’t mean that you have to know everything. ▸ You have a team behind you, leverage their knowledge. ▸ Create career ladders for your engineers. ▸ Not everyone wants to get into management. ▸ Create opportunities for growth ▸ Leverage these ladders for feedback and performance reviews. ▸ Feedback loops that enhance career growth. Timely useful feedback. ▸ You depend on your team to meet your KPI/ OKRs ▸ Ensure knowledge is evenly distributed to prevent bottlenecks & empower the team to continue producing quality output as you go. ▸ S-Curves of development is your responsibility. -
THE 3 DISTINCT PHASES OF DISRUPTION IN THE S-CURVE OF
DEVELOPMENT ▸ The low end, involving a challenging and sometimes slow push for competence. ▸ The up-swinging back of the curve, where competence is achieved and progress is rapid. ▸ The high end of the curve, where competence has evolved into mastery and can quickly devolve into boredom and disengagement. TIME LEARNING -
S CURVE FRAMEWORK The S Curve is a framework you
can use to determine which level your engineers are at and the kind of support to afford at each level. -
WHAT KIND OF ENGINEERS ARE ON YOUR TEAM? ▸ In
addition to understanding the competence level of your engineers, you should also understand the kind of engineers on your team: ▸ RnD engineers. ▸ 20% time would work great for them ▸ Gurus working on the bleeding edge. ▸ Routine Engineers: ▸ Love routine and writing maintainable & bug free code ▸ Understand the personalities of people on your team. ▸ People are complex. ▸ Think about each person individually instead of generalising them. -
CHANGE MANAGEMENT LEADING ENGINEERS THROUGH MASSIVE CHANGE ▸ The constant
thing in our field is change ▸ Types of change: ▸ Technical & Architecture ▸ Cultural ▸ Business ▸ Organizational -
CHANGE MANAGEMENT FRAMEWORK BY YVETTE PASQUA Time Leadership Qualities Acute
Rapid Change New Normal Focus Motivation Communication In person 2 way Empathy In person 1 way Context Written 1 way Transparency Values Vision Product Strategy & Roadmap Empower vs Direction balance Inspiration Clear Goals Investment (in the important company priorities) Prioritization Biz Model Profit Execution and Delivery (on Key initiatives) Investment -
MENTORSHIP MENTORSHIP IS A RELATIONSHIP ▸ You need define clear
expectations. ▸ Accountability is key (for both mentor & mentee). ▸ Regular Meetings and Measurable Goals. ▸ Track Progress. ▸ Acknowledge Success. -
WHAT DOES MENTORSHIP LOOK LIKE? MENTORING ACTIVITIES INCLUDE EVERYTHING FROM:
▸ Reviewing code. ▸ Outlining technical skills to learn - level up project & curriculum. ▸ Pair programming. ▸ Discussing engineering tradeoffs. ▸ Explaining how to prioritize better. ▸ Offering guidance on how to work well with different team members. ▸ Leverage an engineering growth framework. ▸ How an engineer can grow from one level to the next. -
CULTURE TAKE AWAYS THE PEOPLE ARE THE CULTURE ▸ What
you reward grows and what you “punish” dies. ▸ If you don’t speak up about the wrong, your are responsible for it spreading. ▸ Culture evolves and changes over time. -
OUR CULTURE CONVERGE TEAM CULTURE ▸ Enforcing development best practices.
(Andela Engineering Playbook) ▸ Open Source Contributions. ▸ Announcing a promotion is one of the most engaging cultural events that can happen on our team/ company. ▸ Spot Check Sessions. Midweek team syncs to catch any crucial things that may affect the demo. ▸ Building Trust. (Trust Banks) ▸ Feedback. (ASK Feedback) ▸ Celebrating wins. ▸ We speak Emoji. ▸ Humour: ▸ Makes the tough days bearable. ▸ Growth Mindset. -
COMMUNICATION ▸ As a TTL your communication should contain: ▸
Transparency ▸ Context ▸ Empathy ▸ Listening ▸ Tools: ▸ Email ▸ Zoom ▸ Slack ▸ Github: ▸ Pull Requests ▸ Jira - Project Management -
COMMUNICATION ▸ Processes: ▸ Rule Of Thumb: If there’s a
back and forth on a matter more than 3 times on slack, jump on a call. ▸ Daily Slack Threads. ▸ Github Wiki Info: ▸ Contains videos of our spot check sessions and core pairing sessions. ▸ Helps with knowledge distribution in the team. -
WINS WE HAVE BEEN ABLE TO ACHIEVE SOME GREAT WINS
▸ Rolled out to 3 locations. Currently rolling out in % ▸ Major Backend refactor that resulted in an Android v2 ▸ Currently saving the company money. $20,000 annually. ▸ Working on a companion application in React Native. ▸ Operations team can make data informed decisions around optimal room usage and they can get feedback about the room from users. ▸ Currently exploring the idea of open sourcing this solution to help other companies solve the meeting room management problem. ▸ Automation of Google Play Store Deployment ▸ Happy Developers. ▸ Slack Notifications for room statuses. -
TEXT KEY TAKEAWAYS ▸ YOU are a multiplier ▸ No
size fits all, you will have to experiment a lot and see what leadership style works with your team. ▸ Your team culture is about the people, build it together. ▸ Grow your network and learn from other TL’s in the industry. ▸ The non-technical areas are just as important. ▸ You may get less instant gratification from the non-technical but they are just as important ▸ Time Management is critical skill you will need to develop. -
USEFUL LINKS & RESOURCES ▸ The Constant Life of a
Tech Lead: https://dev.tube/video/9jd_vpcLK50 ▸ Blog: https://dev.to/backendandbbq/what-does-a-tech-lead-do-1cpj ▸ Leading Engineers through Massive Change: https://www.youtube.com/watch? v=CnODvHsYfao ▸ Blog: https://abc.danch.me/5-signs-youre-a-tech-lead-congrats-4b89b6b9c071 ▸ Slides: https://www.slideshare.net/amitkapoor/whitney-johnson-on-disruptive- innovation