Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Building Great Software Engineering Teams

11,055 views

Published on

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.

Published in: Technology, Business
  • Be the first to comment

Building Great Software Engineering Teams

  1. 1. Image Credit
  2. 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 2
  3. 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 3
  4. 4. What Makes a Great Engineering Manager?
  5. 5. What is an Engineering Manager? People Process Technology Product Execution Staff Mgt Change Agent Architecture Lean Thinker Budget Scrum Master Strategy Vision Risk Mitigation Problem Solver End-user Advocate Instigator SME Programmer Roadmap Planner Recruiter Career Guide Mentor Obstacle Remover Facilitator Culture Cultivator 5 Coordinator On-Time Expectation Setter Operations
  6. 6. Do You Need to Be Good at All of These? People Process Technology Product Execution Staff Mgt Change Agent Architecture Lean Thinker Budget Scrum Master Strategy Vision Risk Mitigation Problem Solver End-user Advocate Instigator SME Programmer Roadmap Planner Recruiter Career Guide Mentor Obstacle Remover Facilitator Culture Cultivator 6 Coordinator On-Time Expectation Setter Operations
  7. 7. Do You Need to Be Good at All of These? People Process Technology Product Execution Staff Mgt Change Agent Architecture Lean Thinker Budget Scrum Master Strategy Vision Risk Mitigation Problem Solver End-user Advocate Instigator SME Programmer Roadmap Planner Recruiter Career Guide Mentor Obstacle Remover Facilitator Culture Cultivator 7 Coordinator On-Time Expectation Setter Operations
  8. 8. Do You Need to Be Good at All of These? People Process Technology Product Execution Staff Mgt Change Agent Architecture Lean Thinker Budget Scrum Master Strategy Vision Risk Mitigation Problem Solver End-user Advocate Instigator SME Programmer Roadmap Planner Recruiter Career Guide Mentor Obstacle Remover Facilitator Culture Cultivator 8 Coordinator On-Time Expectation Setter Operations
  9. 9. Do You Need to Be Good at All of These? People Process Technology Product Execution Staff Mgt Change Agent Architecture Lean Thinker Budget Scrum Master Strategy Vision Risk Mitigation Problem Solver End-user Advocate Instigator SME Programmer Roadmap Planner Recruiter Career Guide Mentor Obstacle Remover Facilitator Culture Cultivator 9 Coordinator On-Time Expectation Setter Operations
  10. 10. Do You Need to Be Good at All of These? People Process Technology Product Execution Staff Mgt Change Agent Architecture Lean Thinker Budget Scrum Master Strategy Vision Risk Mitigation Problem Solver End-user Advocate Instigator SME Programmer Roadmap Planner Recruiter Career Guide Mentor Obstacle Remover Facilitator Culture Cultivator 10 Coordinator On-Time Expectation Setter Operations
  11. 11. 11
  12. 12. The Ideal Engineering Manager Scores High in All Areas Manager (People) Strategist (Product) 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 Scrum Master (Process) Architect (Technology) Programmer (Technology) 12 Leader (Execution)
  13. 13. If You Don’t: Share Responsibility and Delegate You • • • • Someone else on your team Manager: Strategist: Scrum Master: Leader: • Architect: • Programmer: Great (4) Great (4) Awesome (5) Awesome (5) Manager (People) Strategist (Product) 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 Scrum Master (Process) 13 Manager (People) Leader (Execution) Strategist (Product) You Ideal Architect (Technology) Programmer (Technology) Awesome (5) Awesome (5) 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 Scrum Master (Process) Leader (Execution) Tech Lead Ideal Architect (Technology) Programmer (Technology)
  14. 14. Horrible Engineering Managers Obvious • Not technical enough • Coding full time • Arrogant • Overprotective of team • Stubborn • Too nice • Indecisive • Jumps to conclusions • Poor Communicator 14 Not so obvious • Talks too much
  15. 15. Essential attributes of an Engineering Manager ‟ ‟ ‟ ‟ ‟ ‟ ‟ ‟ ‟ ‟ ‟ ‟ ‟ 15 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
  16. 16. What Makes a Great Engineering Team?
  17. 17. Recruiting People Staff Mgt Recruiter Career Guide Mentor Facilitator Culture Cultivator 17 Image
  18. 18. Horrible Hiring Strategies Bad Ideas • Coding syntax • Coding problem • Theoretical questions • Specific thinking Q’s • Tell me about your jobs • Deep on most recent • Tell me about yourself • Ask for specific stories • Best/worst attributes 18 Good Ideas • Proud/regret stories
  19. 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." 19 Credit: LinkedIn “How I Hire” series
  20. 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) 20 Credit: LinkedIn “How I Hire” series
  21. 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. 21 Credit: LinkedIn “How I Hire” series
  22. 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. 22 Credit: LinkedIn “How I Hire” series
  23. 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. 23 Credit: LinkedIn “How I Hire” series
  24. 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” 24 Credit: http://read.bi/J1dBlO
  25. 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. 25
  26. 26. Culture People Staff Mgt Recruiter Career Guide Mentor Facilitator Culture Cultivator 26 Photo Image Credits
  27. 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.” 27
  28. 28. Embodying Company Values • Netflix culture deck describes 9 company values (behaviors and skills): judgment, communication, impact, curiosity, inno vation, 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 28 Netflix Culture Deck Facebook Hiring
  29. 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 (selfmotived, 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 29 “A great workplace is stunning colleagues” “Responsible people thrive on freedom and are worthy of freedom” -- Reed Hastings
  30. 30. Team Mgmt People Staff Mgt Recruiter Career Guide Mentor Facilitator Culture Cultivator 30 Credit
  31. 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 31 F M A M J J A S O N D
  32. 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? 32
  33. 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 33 Credit
  34. 34. What can a developer do to help the team? • • • • • • • • • 34 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
  35. 35. Career Guide & Mentor People Staff Mgt Recruiter Career Guide Mentor Facilitator Culture Cultivator 35 Credit
  36. 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. 36
  37. 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 37 Credit
  38. 38. Technical Leadership • Ask dumb questions • Look for opportunities for sharing and spreading knowledge ‟ “So when I run this code, this happens… oh nevermind, I figured it out” ‟ Everyone can learn something from each other 38 Credit
  39. 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? ‟ ‟ ‟ ‟ 39 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. 40. Agile Scrum Process Change Agent Scrum Master Obstacle Remover Coordinator 40 Credit
  41. 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 41
  42. 42. 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 to Lots Do ‟ Politics or prerequisites ‟ Dependencies on upcoming sprints Bad Thing 42 „ Remove „ Protect Team Success
  43. 43. Strategy Technology Architecture Strategy Problem Solver Instigator and Advocate Programmer 43 Credit
  44. 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 › › › 44 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. 45. Advocate Technolo gy Architectur e Strategy Problem Solver Instigator and Advocate Programme r 45
  46. 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 46
  47. 47. Programmer Technology Architecture Strategy Problem Solver Instigator and Advocate Programmer 47
  48. 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 48
  49. 49. Roadmaps Product Lean Thinker Vision End-user Advocate SME Roadmap Planner 49 Credit
  50. 50. 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. V1 Working Product MVP Prototype Paper $5K $5 Million 50 $1 Million $50K
  51. 51. Roadmaps Product Lean Thinker Vision End-user Advocate SME Roadmap Planner 51 Credit
  52. 52. 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 Product 52 Technology
  53. 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 › › › 53 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
  54. 54. 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? Sprint Backlogs Release Plans Product Roadmaps 54
  55. 55. Risks & Delivery Execution Budget Risk Mitigation On-Time Expectation Setter Operations 55 Credit
  56. 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. 56
  57. 57. Summary People Process Technology Product Execution Staff Mgt Change Agent Architecture Lean Thinker Budget Scrum Master Strategy Vision Risk Mitigation Problem Solver End-user Advocate Instigator SME Programmer Roadmap Planner Recruiter Career Guide Mentor Obstacle Remover Facilitator Culture Cultivator 57 Coordinator On-Time Expectation Setter Operations
  58. 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. 58
  59. 59. Thanks! Contact Info http://brianlink.me Questions? Twitter @blinkdaddy Email brian.link@gmail.com Linked In linkedin.com/in/brianwlink Download Presentation: bitly.com/greatsoftwareteams slideshare.net/blink21

×