building great software engineering teams
DESCRIPTION
Being an effective software engineering manager is a tricky job. Whether you’re hiring the engineering manager, are already one or report to one, in this session you’ll learn what makes the best engineering managers and how to build, participate in and manage great engineering teams. I provide tips and advice in five areas of focus: people, process, technology, product and execution. Topics include: hiring, building a team to complement your strengths, management style, effective communication, mentoring, virtual teams, career guidance, technical leadership, team size/structure, agile development, strategic roadmap building and delivering on-time.TRANSCRIPT
Building Great Engineering Teams
Brian LinkJan 2014
Image Credit
2
Who is this guy?
• http://BrianLink.me @blinkdaddy• Engineering Manager Experience
– Dell Software Engineering Director of 5 teams– Dell KACE Engineering Manager for ITNinja.com– CTO and Engineering Manager at ShapeUp.com– CTO and Engineering Manager at Toobla.com (dead)– CTO and Engineering Manager at Digg.com– CTO and Technology Advocate at NSB Group– 13 years in software development consulting at Cambridge Technology Partners– VP of Engineering at other startups and companies
• Just a guy passionate about technology glorifying a hobby into a career
3
What will I get out of this?
• If you are an engineering manager or aspiring to be one– How to be better at what you do– How to hire and manage great development teams– How not to screw it up
• If you’re a software developer– Learn how to participate and contribute to your team– Learn what you should expect from your manager – Learn how to support your manager
• Every great engineering manager was once a great software developer
What Makes a Great Engineering Manager?
5
What is an Engineering Manager?
People
Staff Mgt
Recruiter
Career Guide
Mentor
Facilitator
Culture Cultivator
Technology
Architecture
Strategy
Problem Solver
Instigator
Programmer
Product
Lean Thinker
Vision
End-user Advocate
SME
Roadmap Planner
Execution
Budget
Risk Mitigation
On-Time
Expectation Setter
Operations
Process
Change Agent
Scrum Master
Obstacle Remover
Coordinator
6
Process
Change Agent
Scrum Master
Obstacle Remover
Coordinator
People
Staff Mgt
Recruiter
Career Guide
Mentor
Facilitator
Culture Cultivator
Do You Need to Be Good at All of These?
Technology
Architecture
Strategy
Problem Solver
Instigator
Programmer
Product
Lean Thinker
Vision
End-user Advocate
SME
Roadmap Planner
Execution
Budget
Risk Mitigation
On-Time
Expectation Setter
Operations
Process
Change Agent
Scrum Master
Obstacle Remover
Coordinator
People
Staff Mgt
Recruiter
Career Guide
Mentor
Facilitator
Culture Cultivator
Do You Need to Be Good at All of These?
7
Technology
Architecture
Strategy
Problem Solver
Instigator
Programmer
Product
Lean Thinker
Vision
End-user Advocate
SME
Roadmap Planner
Execution
Budget
Risk Mitigation
On-Time
Expectation Setter
Operations
Process
Change Agent
Scrum Master
Obstacle Remover
Coordinator
Do You Need to Be Good at All of These?
8
Technology
Architecture
Strategy
Problem Solver
Instigator
Programmer
Product
Lean Thinker
Vision
End-user Advocate
SME
Roadmap Planner
Execution
Budget
Risk Mitigation
On-Time
Expectation Setter
Operations
People
Staff Mgt
Recruiter
Career Guide
Mentor
Facilitator
Culture Cultivator
Do You Need to Be Good at All of These?
9
Process
Change Agent
Scrum Master
Obstacle Remover
Coordinator
Technology
Architecture
Strategy
Problem Solver
Instigator
Programmer
Product
Lean Thinker
Vision
End-user Advocate
SME
Roadmap Planner
Execution
Budget
Risk Mitigation
On-Time
Expectation Setter
Operations
People
Staff Mgt
Recruiter
Career Guide
Mentor
Facilitator
Culture Cultivator
Do You Need to Be Good at All of These?
10
Process
Change Agent
Scrum Master
Obstacle Remover
Coordinator
Technology
Architecture
Strategy
Problem Solver
Instigator
Programmer
Product
Lean Thinker
Vision
End-user Advocate
SME
Roadmap Planner
Execution
Budget
Risk Mitigation
On-Time
Expectation Setter
Operations
People
Staff Mgt
Recruiter
Career Guide
Mentor
Facilitator
Culture Cultivator
11
12
The Ideal Engineering Manager Scores High in All Areas
Manager (People)
Leader (Execution)
Architect (Technology)
Programmer (Technology)
Scrum Master (Process)
Strategist (Product)
0
5
If You Don’t: Share Responsibility and Delegate
• Manager: Great (4)• Strategist: Great (4)• Scrum Master: Awesome (5)• Leader: Awesome (5)
13
• Architect: Awesome (5)• Programmer: Awesome (5)
You Someone else on your team
Manager (People)
Leader (Execution)
Architect (Technology)
Programmer (Technology)
Scrum Master (Process)
Strategist (Product)
0
5
YouIdeal
Manager (People)
Leader (Execution)
Architect (Technology)
Programmer (Technology)
Scrum Master (Process)
Strategist (Product)
0
5
Tech LeadIdeal
14
Horrible Engineering Managers
Obvious
• Not technical enough
• Arrogant
• Stubborn
• Indecisive
• Poor Communicator
Not so obvious
• Coding full time
• Overprotective of team
• Too nice
• Jumps to conclusions
• Talks too much
15
Essential attributes of an Engineering Manager
– Build trust– Earn respect– Ask good questions about challenges and technical details– Contribute code and insightful ideas– Express an opinion– Know when to delegate– Be transparent, share company news, executive decisions– Protect team from unnecessary interruptions– Involve team in decisions whenever possible– Drive productivity by creating just enough process for your team size– Be an advocate for your developers– Shield developers from politics– But shine a spotlight on successes and amplify their voices
What Makes a Great Engineering Team?
17
People
Staff Mgt
Recruiter
Career Guide
Mentor
Facilitator
Culture Cultivator
Recruiting
Image Credit
18
Horrible Hiring Strategies
Bad Ideas
• Coding syntax
• Theoretical questions
• Tell me about your jobs
• Tell me about yourself
• Best/worst attributes
Good Ideas
• Coding problem
• Specific thinking Q’s
• Deep on most recent
• Ask for specific stories
• Proud/regret stories
19
Richard Branson – Founder and CEO of Virgin Group
"The first thing to look for when searching for a great employee is somebody with a personality that fits with your company culture. Most skills can be learned, but it is difficult to train people on their personality. If you can find people who are fun, friendly, caring and love helping others, you are on to a winner."
Credit: LinkedIn “How I Hire” series
20
Jack Welch – Successful Executive from GE
Must haves: Integrity and IQ.
Should haves: Energy (lasting enthusiasm), Energize (infect others), Edge (make hard decisions quickly), Execution and Passion (work and life).
Game changer: “Generosity Gene" (passion for people, rewarding/positive manager)
Credit: LinkedIn “How I Hire” series
21
Steve Blank – Retired Serial Entrepreneur and Author
Senior executive: “Searching For” or “Executing”… a business model?
Greatly affects characteristics.
Make pie chart of desired attributes - change size, measure candidates by how well they cover each pie slice.Compare visually.
Credit: LinkedIn “How I Hire” series
22
Randi Zuckerberg – Zuckerberg Media, Facebook Marketing
Excited about your specific company. Knowledgeable of interviewer.
Could I see myself ever working for them? Learn from, be inspired, taking company to next level.
Relevant and interesting social feed.
Credit: LinkedIn “How I Hire” series
23
Eric Ries – Author of The Lean Startup
Finding great engineers: conduct good tech interview.
Requires a whiteboard.
Ask question like creating an algorithm, which forces them to show you how they think, execute collaborative problem solving.
Credit: LinkedIn “How I Hire” series
24
Elon Musk – CEO of Tesla, SpaceX, SolarCity
“It Matters Whether Someone Has A Good Heart” and Passion
Biggest mistake: Hiring the wrong people. (Don’t hire talent over kindness)
Better to balance personality and kindness with talent to find better hires. “No a**holes policy”
“I hire people in spite of an MBA”
Credit: http://read.bi/J1dBlO
25
Personality, heart, passion, culture-fit, intelligence, aptitude
• Resume– Not real important
• Experience– Think carefully about what matters– Use standard questions? Use a coding test?
• Recruiters– Don’t just trust the recruiter. Coach them.
• Personality and Culture Fit– Start here. Everything else can be learned.
• Trust your gut– Think you found an under-qualified person who might just surprise you?– Think some senior guy can learn a new language and be your tech lead?– Be open. Paint a very true picture of reality of the role and your expectations.
26
People
Staff Mgt
Recruiter
Career Guide
Mentor
Facilitator
Culture Cultivator
Culture
Photo Image Credits
27
Building a great company culture through hiring
“More than just atmosphere (great benefits, snacks and ping pong) the best developers want to be challenged, fulfilled and rewarded for doing work they love in a way they can help define.”
28
Embodying Company Values
• Netflix culture deck describes 9 company values (behaviors and skills): judgment, communication, impact, curiosity, innovation, courage, passion, honesty, and selflessness
• Facebook lists their values up front on its jobs page too: focus on impact, move fast, be bold, be open, build social value
Netflix Culture Deck Facebook Hiring
29
The Manager’s Behavior Directly Changes the Culture
• Honesty Always• Not rewarding hours worked but quality, focus• Live the work-life balance you want for your team• Groom and reward responsible people (self-
motived, self-aware, self-improving)
• The developer has an equal responsibility in maintaining the company culture
• Everyone must embody the company values
• Happy developers are loyal and hard working
“A great workplace is stunning colleagues”
“Responsible people thrive on freedom and are worthy of freedom”
-- Reed Hastings
30
People
Staff Mgt
Recruiter
Career Guide
Mentor
Facilitator
Culture Cultivator
Team Mgmt
Credit
31
Hiring Strategy
• How quickly can you ramp up a developer? 3 wks? 3 mos? Build a timeline.• What mix of senior and junior developers make sense for your team?• Do you need to hire another senior person before you can absorb more junior
ones?
J F M A M J J A S O N D
32
Team Management
• Management style should complement your hiring strategy– Are you a better disciplinarian who can coach and mentor junior team members?– Do you focus on product and process and rely on a senior self-managing team?
33
What’s the right team size?
• Agile says 5 +/- 2• Five seems to work well• But decide for yourself and experiment
• Complexity of intra-team communication increases according to Metcalfe’s Law
• As team grows, split into more teams• QA: dedicated or central?• UX: shared? how thin?
• Defining roles and structuring teams is an art. I often trust my gut instincts and commit to adjust as needed
Credit
34
What can a developer do to help the team?
• Culture of sharing vs. heroism. Demo day Fridays? • Speak up when something’s not working• Volunteer to help people in need• Understand why you’re building stuff• Contribute ideas that solve business problems• Identify risks• Keep track of technical debt• Be brave about trying new things• Be bold about trying new technology, but ask first
People
Staff Mgt
Recruiter
Career Guide
Mentor
Facilitator
Culture Cultivator
Career Guide & Mentor
35 Credit
36
Career Guidance and Performance Feedback
• What do you want to do with your life?– Don’t be selfish as you give advice about career growth
• Annual reviews– No one likes them. Why?– Be direct. Be succinct. Truly aim to help your team grow, meet their goals.
• Performance feedback. Good and bad– Be timely in sharing feedback. No surprises in annual reviews.– Praise team members. Share appropriately.
• Poor performers and culture misfits– Immediately on an improvement plan. Remove if appropriate.– PIP needs to happen right away and create an audit trail. Build path to success.
37
Mentoring• Are you the architect or are you grooming one?
– Should the engineering manager tackle all the most difficult problems?– If you help someone else solve the problem on their own it’s much more beneficial
• Mentoring is about understanding people’s goals, instigating them to explore areas they’re good at or need improvement in + coaching them on how to grow
Credit
38
Technical Leadership
• Look for opportunities for sharing and spreading knowledge– Everyone can learn something
from each other
• Ask dumb questions– “So when I run this code,
this happens… oh nevermind, I figured it out”
Credit
39
Regular Communication
• Best if manager schedules regular 1:1’s with each direct report– Weekly or every other week as needed– Two way open agenda. What’s going on? What’s on your mind?
• What do you do if your manager isn’t doing this?– Proactively send a brief status every week perhaps– Schedule a 30 minute meeting to discuss your topics– Ask for specific advice– Send short messages on achievements and successes (review fodder)
40
Process
Change Agent
Scrum Master
Obstacle Remover
Coordinator
Agile Scrum
Credit
41
Scrum Best Practices
• User stories, estimated with story points. Track and adjust velocity each sprint.
• Just in time everything: estimates and design. (Limited documentation)
• Daily standups kept brief: what’d you do, what’s next, any impediments?
• Use epics to plan a healthy yet rough roadmap for 12-18 months
• Concentrate on 1-2 month horizon in detail, some detail on next quarter and fuzzy goals beyond that
• Don’t waste time estimating a future that will change
• Software company? Consider release planning process to set expectations
Scrum Master – Obstacle Remover
• Owner of process – adjust as needed– Just enough process– Adjust process with team size as needed– Ears open for ideas in hallways– Rigor in tracking, updating ideas as they change
• Remove Obstacles– Politics or prerequisites– Dependencies on upcoming sprints
42
Success
Do
toLots
• Remove
• Protect Team
Bad Thin
g
43
Technology
Architecture
Strategy
Problem Solver
Instigator and Advocate
Programmer
Strategy
Credit
44
Technical Strategy
• What does a CTO do? [article reference?]– Vision– Future roadmap and impact on technology– Architecture– Technology selections
• Engineering manager hat– Logistics like code streams– Team structure and hiring plan (balance of skills)– Technical debt and technical backlog items– Estimation gut check and unturned rock finder– Process challenges
› Product strategy coordination – clarity on user stories› QA integration, continuous delivery model (2:1 ratio?)› UX integration, ahead of time or just in time?
45
Technology
Architecture
Strategy
Problem Solver
Instigator and Advocate
Programmer
Advocate
46
The Developer’s Advocate
• Are developers visible enough?– A good manager amplifies the voices of his or her team– The best ideas often come from the developer who’s quiet– Let everyone be heard. Encourage it.
• Focus– “Can I ask you a quick question?” 30 second interruption
can cause 30 minute delay– Communication style. Meeting window? Most productive
time? Flexible hours?– A good EM is the roadblock remover and team productivity
protector
47
Technology
Architecture
Strategy
Problem Solver
Instigator and Advocate
Programmer
Programmer
48
You’re not that slick anymore!
• The Engineering Manager is also a programmer, maybe hasn’t coded full-time in a few years but stays sharp so he can still think like a programmer.
• Good career trick: straddle the line between technology and management
• No matter how much responsibility, I think it’s important for the Engineering Manager to contribute some code occasionally
49
Product
Lean Thinker
Vision
End-user Advocate
SME
Roadmap Planner
Roadmaps
Credit
Lean Thinking
• Goal: Eliminate waste– Does this product even make sense? Can we prove it?– What’s the least we could do to validate our idea?
• Feedback: Hey, you, would you use this? Tell me why not. – People tend to give positive feedback.
50
V1 Working Product
$5 Million
MVP
$1 Million
Prototype
$50K
Paper
$5K
Product
Lean Thinker
Vision
End-user Advocate
SME
Roadmap Planner
Roadmaps
51 Credit
Product Technology
If Product Owner owns product what does Eng Mgr do?
• Should have a strong cooperative relationship• Help prioritize the future roadmap• Help define product with technology bent in mind• Add clarifying details (“don’t forget about this and that”)• Facilitate conversation between engineering and product• Ensure estimates are conducted properly using story points
52
53
Product Definition
• User stories, MRD/PRD or requirements doc
• Why create an Marketing Requirements Doc (MRD)?– Clarity, purpose– Metrics, expectations– Go back and validate, track those expectations. Teams rarely do.
• Well structured User Stories– As a <user>, I’d like to accomplish <task> because it will <benefit>– Acceptance criteria
› Must work in the following browsers, OS’es, etc.› Don’t forget to try doing this without logging in› Must prohibit two users from performing action at same time
Tactical window vs. Strategic window
• Different kinds of product roadmaps and timelines• Short term: what are you doing this month or so?• Long term: what are your goals by quarter?
54
Product Roadmaps
Release Plans
Sprint Backlogs
Execution
Budget
Risk Mitigation
On-Time
Expectation Setter
Operations
Risks & Delivery
55 Credit
56
How to delivery on-time and mitigate risks?
• Use your tools: communication, metrics, hire/fire, process changes, team changes and don’t forget about you (you are the twelfth man)
• Ultimately, you’re responsible for getting things done. Everything. – Not meeting goals? Address it. Not getting there fast enough? Hire or innovate.
• It means owning the budget. – Working with the business. Spending their money like it’s your own.
• It’s understanding, recognizing risks and knowing when to take them. – Also, knowing how to build mitigation strategies.
• Execution is the intersection of process, technology and people. – Your job is to craft the recipe just right.
Summary
57
People
Staff Mgt
Recruiter
Career Guide
Mentor
Facilitator
Culture Cultivator
Process
Change Agent
Scrum Master
Obstacle Remover
Coordinator
Technology
Architecture
Strategy
Problem Solver
Instigator
Programmer
Product
Lean Thinker
Vision
End-user Advocate
SME
Roadmap Planner
Execution
Budget
Risk Mitigation
On-Time
Expectation Setter
Operations
58
Summary
• People: Great engineering teams are built first on great people
• Process: Agile drives success through predictability
• Technology (Architect): Steer the ship but amplify the team’s voices.
• Technology (Programmer): Must earn respect to lead a great team.
• Product: Do the bare minimum, then iterate. Stay lean my friends.
• Execution: Requires style (rope vs. whip). Heavily depends on culture.
Thanks!
Questions?
Contact Infohttp://brianlink.me
Twitter@blinkdaddy
Linked Inlinkedin.com/in/brianwlink
Presentation:bitly.com/greatsoftwareteamsslideshare.net/blink21
Download