SlideShare a Scribd company logo
1 of 22
Engineering Management Framework
Building an Awesome Software Engineering Team
The Engineering Management Framework
People
Processes
Technology
Culture
+ Hiring / talent standards
+ Talent development / mentorship
+ Organization structure
Sub-areas Explanation / details
+ Eng teams live and die based on talent / tendency towards action
+ Grow eng skills internally via L&L’s, mentorship, pair prgming, etc
+ Create well-defined roles & responsibilities that fit team member
talents and aspirations
+ Roadmap Development
+ Sprint Planning & Req Gathering
+ Dev → QA → Deploy pipeline (GSD)
+ Bug / issue reporting & resolution
+ Product leads with heavy input / buy-in from Eng team
+ Crux of making sure all teams are on the same page
+ Maximize throughput while minimizing tech debt / bugs
+ Ensure we address urgent customer issues ASAP and provide
mechanism for reporting bugs
+ DevOps / infrastructure
+ Front end architecture
+ Backend languages / architecture
+ Tools
+ Ensure uptime and agility
+ Create a great customer UX that’s maintainable
+ Create maintainable backend codebases to support your UX
+ Foster productivity with “right tool for the job” approach
+ Autonomy, Mastery, Purpose
+ Psychological safety
+ Bottoms up and top down (provide a
vision / empower the team)
+ Ensures the team is engaged and minimizes turnover
+ Psychological safety is THE most important ingredient in team results
+ Culture has to come from both directions to succeed
Details to follow on each sub-area
Engineering Mgmt Framework
People
Hiring / talent standards
Talent development / mentorship
Organization structure
Process
Technology
Culture
People: Hiring / talent standards
ENGINEERING MANAGEMENT FRAMEWORK
Overview
Sourcing candidates
+ Hiring quality engineers is absolutely critical to building a successful team.
+ Hiring should be a top priority for leadership when you have open roles
+ Sourcing quality candidates can be tough; leverage platforms like Hired.com and Angelist, encourage the team to
send referrals, and use recruiters as a last resort
Interview process
+ Three rounds with a HW problem b/w 2nd and final seems to work well; keep the pre-final round screening process
the same for all candidates to ensure consistency
+ Make sure the candidate writes code!
+ Having a fairly consistent interview team is important but it’s also good to give people a “step-up” opportunity by
participating in the process; make sure to balance these competing priorities
+ Team might be on the fence about some candidates; figure out a strategy for handling this ahead of time (additional
homework, always no, etc)
Other considerations
+ Promote internally where possible - try to avoid hiring above someone unless it really makes sense
+ Culture is super-duper important so reject candidates for cultural reasons
People: Talent development / mentorship (1/2)
ENGINEERING MANAGEMENT FRAMEWORK
Overview
Review process
+ Developing talent internally is super-important and should always be a consideration when making decisions
+ Regular review processes and formal / informal mentorship are both necessary
+ Ensure some sort of x-team knowledge sharing occurs on a regular basis (iron sharpens iron)
+ Review process should take place every six months to ensure people are always getting feedback they need
+ Align on a structured framework & process ahead of time that enables a holistic approach with 360 feedback
+ Engineers should be assigned mentors who will be in charge of collecting feedback and writing a fair review
Promotions
+ Regular review process provides an easy forum to review performance and assess whether or not someone is
ready for a promotion
+ Generally, a promotion should recognize a role someone is already playing (though exceptions can be made)
+ Should generally be agreement amongst engineering leadership on the promotion; strong dissent likely means the
person isn’t quite ready yet
+ Promotion recommendations should be provided to the CEO for blessing though it’s mostly “rubber stamping”
+ Comp is a bit tricky. Let’s review in person.
Performance issues
+ Performance issues should be addressed fairly quickly by someone’s direct manager
+ If problem persists, bring it up the chain to discuss potential options; if performance is bad enough to lead to
termination if not corrected, make sure to mention it to the Management Team
+ Head of Engineering should have a very frank conversation with the person. Perf. improvement plan should be
kept relatively short, 2-4 weeks, to be fair to all parties involved. Probation period afterwards of 1-2 months to
encourage continued better performance assuming they’re not let go.
People: Talent development / mentorship (2/2)
ENGINEERING MANAGEMENT FRAMEWORK
Mentorship
+ All engineers should have a formal mentor who’s in charge of directing their development over the long term
+ It’s also useful to encourage an informal mentorship network where strong engineers can provide mentorship to any
engineer who’s interested
Knowledge sharing
+ Encourage all engineers to share their knowledge with the rest of the team through some mechanism, e.g., “Lunch
& Learn”, documentation, Slack, email, etc
Leadership training
+ Provide leadership coaching, guidance, and training to engineers who are interested
+ Consider future organizational needs and ensure internal talent will be prepared to help address them
People: Organization structure
ENGINEERING MANAGEMENT FRAMEWORK
Overview
Designing an
organization
+ Finding the right people for roles & responsibilities makes everything much easier
+ Org structure forces people into certain mindsets so design it carefully
+ First, map out what needs the team has (e.g., someone needs to own DevOps, QA, Acquisition, etc)
+ Next, try to group related stuff together where possible so that you don’t have a bunch of 1 engineer teams (e.g.,
maybe we have a team called “Strategic Tech” that does DevOps, Data, and Search stuff
+ Adjust the above if necessary for talent constraints and/or individual development needs
Other considerations
+ Make sure the org structure aligns with business needs and generally “makes sense”
+ Don’t change it too often if possible
+ Be flexible and design it so most engineers can change teams if necessary → bus factor = 1 is very scary
+ Consider development trajectories and emotions
+ Keep great teams together if at all possible → research suggests that it takes time for teams to “get in a rhythm”
and they’re much more productive when they do
Engineering Mgmt Framework
People
Process
Roadmap development
Sprint Planning & Req Gathering
Dev → QA → Deploy pipeline (GSD)
Bug / issue reporting & resolution
Technology
Process: Roadmap Development
ENGINEERING MANAGEMENT FRAMEWORK
Overview
Considerations
+ Long-term product roadmap essential to developing a great product
+ Mostly Product Management’s responsibility though Engineering should be heavily involved for input
+ Business rationale: Double check that the roadmap makes sense from a business perspective
+ Ensure that timelines are reasonable (e.g., engineering leads should do high level LOE estimations)
+ Tech debt: Ensure that it accounts for technical debt cleanup / other behind the scenes tech stuff that product may
not be as aware of
+ Think about how it might influence Engineering AMP / team morale
+ Think about how it might influence team structure
+ Consider whether or not it affects the hiring plan
Process: Sprint Planning & Req gathering (1/2)
ENGINEERING MANAGEMENT FRAMEWORK
Overview
Requirements
gathering
+ Gather requirements, estimate effort for tasks, and prioritize stuff in the short term
+ Product takes lead on the “what” though we as engineering have a heavy responsibility to help prioritize and provide
an active input where we can do things more efficiently; ideally there’s a well-groomed backlog
+ Product should take lead on pulling in other stakeholders
+ Make sure we’re getting good enough requirements
+ Ideally engineers can point out when requirements are clear enough and problem solve with Product Mgmt to
resolve the issues
Handling problems
+ Unclear requirements: It’s best not to commit to something in a Sprint when the requirements aren’t clear enough to
deliver; however, high priority situations will require that we be flexible
+ Uncertainty around an ask: If you know something could come up in the future, book Sprint time (e.g., 360/VR ask
for NAB) even if it’s a bit vague; with a well-groomed backlog we can keep chugging even if we don’t end up
executing against the vague ask
Estimation
+ Let the entire team participate in point estimation where possible; it builds buy-in and ensures that the team doesn’t
feel like it’s just taking orders as much
+ Try to keep point estimations constant over time
+ Slowly but surely increase point allocations / eng / day as long as you keep delivering though make sure this isn’t at
the expense of work/life balance; you genuinely want the team to get more efficient
Process: Sprint Planning & Req gathering (2/2)
ENGINEERING MANAGEMENT FRAMEWORK
Retrospectives
+ Make sure to do retrospectives every Sprint so the teams can continue improving
+ What went well, what can be improved
Process: Dev → QA → Deploy pipeline (GSD)
ENGINEERING MANAGEMENT FRAMEWORK
Overview
Development
+ Core engineering process that delivers new functionality
+ Where Engineers (ideally) spend most of their time!
+ Minimize meetings and distractions: Ideally, engineers should spend most of their time developing features
+ Includes Design and Code Reviews, which are crucial to building a great GSD pipeline. Otherwise you’ll leave
massive amounts of tech debt in your wake
+ Fairly tightly coupled with some tech choices (Git/GitHub for source control)
QA
+ TDD and a TDD culture are a must!
+ Unit tests, integration tests, Selenium / end-to-end tests
+ Tests should be fast!
+ Devs should do manual testing before handing it off to formal QA
+ We should have a fairly strong manual QA team
Deploy
+ Ideally our test suites are good enough for us to do Continuous Integration if we want
+ Should have push-button deploys
+ Rollbacks should be super-simple
+ Anyone should be able to deploy but there should be people available to help fix problems if they arise (e.g., no
middle-of-the-night deploys when you’re the only person awake)
Process: Bug / issue reporting
ENGINEERING MANAGEMENT FRAMEWORK
Overview
Reporting
+ Bugs and other issues are certain to occur
+ We need to have a process for fixing them and communicating appropriately with stakeholders
+ There should be as few channels for reporting bugs as possible while ensuring that urgent issues are always ID’d
and resolved quickly
+ It should be easy to report bugs / issues and the “how” should be easy to remember
+ Non-urgent issues should be kept in a backlog of some kind
Fixing issues / bugs
+ Standardize a process for addressing bugs / issues that everyone aligns on. Might be part of Sprint planning, might
be it’s own process (e.g., Dev Requests)
+ Ideally all engineers help fixing bugs / issues -- don’t create two “classes” of engineers (coders and bug-fixers).
Engineering Mgmt Framework
People
Process
Technology
DevOps / Infrastructure
Front end architecture
Backend languages / architecture
Tools
Process: DevOps / Infrastructure
ENGINEERING MANAGEMENT FRAMEWORK
Overview
DevOps
+ DevOps should enable the team to move quickly and ensure our products are available for our customers
+ DevOps is a strategic asset b/c it lets you move faster than the competition when done well
+ Ensure that most of the team can do at least some DevOps and understands the basic concepts
+ Makes sense to have a specialist or two once the team reaches a critical size
+ Docker rules!
+ Remember, the goal is to leverage DevOps to move fast!
Infrastructure
+ Our infrastructure should support our current needs and be prepared to scale to 10x our current volume
+ Make sure it’s flexible for new demands even within the 10x volume
+ Make sure it’s not slowing you down or costing too much
+ Know the architecture! Current architecture leads to a lot of business constraints that you have to be able to
communicate to the executive team.
+ Have a plan for the future! Even within the 10x volume constraint our infrastructure will need to evolve to support
future needs (e.g., OneAccount)
Process: Frontend Architecture
ENGINEERING MANAGEMENT FRAMEWORK
Overview
ReactJS / Flux
+ Our frontend architecture should support an amazing customer UX and also be maintainable
+ ReactJS / Flux combo seems to be the best option at the moment
+ The future! Easy-to-understand design pattern makes for an extremely flexible way of building web apps
+ The one downside (thanks to Kim for calling this out) seems to be CSS transitions
Everything else
+ The past
+ We should eventually migrate to ReactJS / Flux where it makes sense
Process: Backend languages / architecture
ENGINEERING MANAGEMENT FRAMEWORK
Overview
Backend languages
+ Ideally, we should use the right tool for the job
+ Transitioning backend to microservices will enable the business to move faster
+ Good options for VB: PHP, Node, Scala
+ Many other options are ok depending on the circumstances
Microservices
+ Backends for frontends with microservices
+ First build a monolith then split out services once you’ve scaled (code well initially and this is much easier)
Process: Tools
ENGINEERING MANAGEMENT FRAMEWORK
Overview
Tool selection
+ Super important to choose the right tools for the job because they dramatically affect productivity
+ Version control: Git, GitHub, and SmartGit
+ IDE: anything JetBrains
+ Use a debugger!
+ CircleCI for unit testing
+ Not sure for Selenium testing
+ Sequel Pro (Mac) for MySQL
+ Sublime Text for editing random txt docs, some code
+ BeyondCompare for FTP / file diffs
+ AWS!
+ Docker Hub
Engineering Mgmt Framework
People
Process
Technology
Culture
Autonomy, Master, Purpose
Psychological safety
Bottoms up and top down
Culture: Autonomy, Mastery, Purpose
ENGINEERING MANAGEMENT FRAMEWORK
Overview
Autonomy
+ The secret to building a happy, motivated team; HUGE for retention!
+ Straight from Daniel Pink’s “Drive”
+ The power to make impactful decisions in your day-to-day work
+ Improves autonomy: building new stuff, flexibility to select your projects
+ Decreases autonomy: processes, just following instructions
Mastery
+ Continued growth and development
+ Improves mastery: learning new technologies & skills, solving hard but tractable problems
+ Decreases mastery: simply doing the same thing over and over again
Purpose
+ Connecting work to a larger cause than yourself
+ Improves purpose: delivering value and Getting Shit Done (GSD)
+ Decreases purpose: impossible problems, working on inconsequential stuff
On all of these, what matters is how teammates feel,
not necessarily the facts of the situation
Culture: Psychological safety
ENGINEERING MANAGEMENT FRAMEWORK
Overview
Psychological safety
+ Psychological safety is THE most important aspect to succeeding as a team
+ Team bonding, building trust, and having “good” conflict that doesn’t disparage people are all important aspects
+ The shared belief that the team is safe for interpersonal risk taking. In psychologically safe teams, team members
feel accepted and respected.
+ Benefits are manifold: improves likelihood that innovation will be successful, increases amount team members
learn from mistakes, boosts employee engagement, improves team innovation
+ Two key leadership aspects help create it: participatory management and inclusive management
+ Two aspects of a team that really help improve it: well-defined team structure where team members understand
their roles; strong relationships between cohesive team members
Build strong
relationships
+ Strong relationships are key to psychological safety so it’s important to ensure they exist on the team
+ Focusing on building trust / ability to have productive conflict is crucial: consider reading “Five Dysfunctions of a
Team” together
+ Encourage team interactions outside the office such as offsites, happy hours, hanging out, etc
+ Family-like atmosphere
Encourage feedback
and growth
+ Encourage team members to seek constant personal and professional growth
+ Encourage team members to provide each other feedback on a regular basis
Culture: Bottoms up and top down
ENGINEERING MANAGEMENT FRAMEWORK
Overview
Top-down
+ Culture must come from the top-down from leadership and be strongly supported bottoms-up by team members
reinforcing the culture
+ Team leadership needs to formally establish the culture by defining principles and values for the team
+ Leadership should also vocally support Autonomy/Master/Purpose and Psychological Safety
+ Be consistent in rewarding behavior according to principles
Bottoms up
+ A lot of bottoms up culture happens through a combination of hiring the right people, rewarding behavior consistent
with cultural principles, and supporting team AMP
+ Encourage the team to “own” culture and provide an environment where that’s possible

More Related Content

What's hot

5 Tips for Presenting to Executives
5 Tips for Presenting to Executives5 Tips for Presenting to Executives
5 Tips for Presenting to Executivesspeakingppt
 
Uncertainty as a Business and Design Tool - Morgenbooster
Uncertainty as a Business and Design Tool - MorgenboosterUncertainty as a Business and Design Tool - Morgenbooster
Uncertainty as a Business and Design Tool - Morgenbooster1508 A/S
 
Customer Experience Design Talk Idris Mootee
Customer Experience Design Talk Idris MooteeCustomer Experience Design Talk Idris Mootee
Customer Experience Design Talk Idris MooteeIdris Mootee
 
The Future of Everything
The Future of EverythingThe Future of Everything
The Future of EverythingCharbel Zeaiter
 
The Chief Innovation Officer, Redefined
The Chief Innovation Officer, RedefinedThe Chief Innovation Officer, Redefined
The Chief Innovation Officer, RedefinedFahrenheit 212
 
The Three Things You Need to Know to Transform Any Size Organization Into an ...
The Three Things You Need to Know to Transform Any Size Organization Into an ...The Three Things You Need to Know to Transform Any Size Organization Into an ...
The Three Things You Need to Know to Transform Any Size Organization Into an ...Mike Cottmeyer
 
Trillion dollar-coach-eric-schmidt
Trillion dollar-coach-eric-schmidtTrillion dollar-coach-eric-schmidt
Trillion dollar-coach-eric-schmidtdjrexy
 
Visual guide to selling software as a service by @prezly
Visual guide to selling software as a service by @prezlyVisual guide to selling software as a service by @prezly
Visual guide to selling software as a service by @prezlyPrezly
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
Scaling Scrum using Lean/Kanban in Amdocs
Scaling Scrum using Lean/Kanban in AmdocsScaling Scrum using Lean/Kanban in Amdocs
Scaling Scrum using Lean/Kanban in AmdocsYuval Yeret
 
Creative Traction Methodology - For Early Stage Startups
Creative Traction Methodology - For Early Stage StartupsCreative Traction Methodology - For Early Stage Startups
Creative Traction Methodology - For Early Stage StartupsTommaso Di Bartolo
 
31+ Startup Tools, Both Online & Offline
31+ Startup Tools, Both Online & Offline31+ Startup Tools, Both Online & Offline
31+ Startup Tools, Both Online & OfflinePixc
 
The power of creative collaboration
The power of creative collaborationThe power of creative collaboration
The power of creative collaborationTable19
 
Product Strategy Simplified - Product Camp 2019
Product Strategy Simplified - Product Camp 2019Product Strategy Simplified - Product Camp 2019
Product Strategy Simplified - Product Camp 2019Zac Hays
 
Director of Product at Glassdoor Talks: How to Transition to Product Management
Director of Product at Glassdoor Talks:  How to Transition to Product ManagementDirector of Product at Glassdoor Talks:  How to Transition to Product Management
Director of Product at Glassdoor Talks: How to Transition to Product ManagementProduct School
 

What's hot (20)

Growth Hacking
Growth HackingGrowth Hacking
Growth Hacking
 
5 Tips for Presenting to Executives
5 Tips for Presenting to Executives5 Tips for Presenting to Executives
5 Tips for Presenting to Executives
 
Uncertainty as a Business and Design Tool - Morgenbooster
Uncertainty as a Business and Design Tool - MorgenboosterUncertainty as a Business and Design Tool - Morgenbooster
Uncertainty as a Business and Design Tool - Morgenbooster
 
Customer Experience Design Talk Idris Mootee
Customer Experience Design Talk Idris MooteeCustomer Experience Design Talk Idris Mootee
Customer Experience Design Talk Idris Mootee
 
Agile
AgileAgile
Agile
 
The Future of Everything
The Future of EverythingThe Future of Everything
The Future of Everything
 
The Chief Innovation Officer, Redefined
The Chief Innovation Officer, RedefinedThe Chief Innovation Officer, Redefined
The Chief Innovation Officer, Redefined
 
The Three Things You Need to Know to Transform Any Size Organization Into an ...
The Three Things You Need to Know to Transform Any Size Organization Into an ...The Three Things You Need to Know to Transform Any Size Organization Into an ...
The Three Things You Need to Know to Transform Any Size Organization Into an ...
 
Trillion dollar-coach-eric-schmidt
Trillion dollar-coach-eric-schmidtTrillion dollar-coach-eric-schmidt
Trillion dollar-coach-eric-schmidt
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
Visual guide to selling software as a service by @prezly
Visual guide to selling software as a service by @prezlyVisual guide to selling software as a service by @prezly
Visual guide to selling software as a service by @prezly
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
Scaling Scrum using Lean/Kanban in Amdocs
Scaling Scrum using Lean/Kanban in AmdocsScaling Scrum using Lean/Kanban in Amdocs
Scaling Scrum using Lean/Kanban in Amdocs
 
Creative Traction Methodology - For Early Stage Startups
Creative Traction Methodology - For Early Stage StartupsCreative Traction Methodology - For Early Stage Startups
Creative Traction Methodology - For Early Stage Startups
 
The Ultimate Freebies Guide for Presentations by @damonify
The Ultimate Freebies Guide for Presentations by @damonifyThe Ultimate Freebies Guide for Presentations by @damonify
The Ultimate Freebies Guide for Presentations by @damonify
 
31+ Startup Tools, Both Online & Offline
31+ Startup Tools, Both Online & Offline31+ Startup Tools, Both Online & Offline
31+ Startup Tools, Both Online & Offline
 
chatgpt dalle.pptx
chatgpt dalle.pptxchatgpt dalle.pptx
chatgpt dalle.pptx
 
The power of creative collaboration
The power of creative collaborationThe power of creative collaboration
The power of creative collaboration
 
Product Strategy Simplified - Product Camp 2019
Product Strategy Simplified - Product Camp 2019Product Strategy Simplified - Product Camp 2019
Product Strategy Simplified - Product Camp 2019
 
Director of Product at Glassdoor Talks: How to Transition to Product Management
Director of Product at Glassdoor Talks:  How to Transition to Product ManagementDirector of Product at Glassdoor Talks:  How to Transition to Product Management
Director of Product at Glassdoor Talks: How to Transition to Product Management
 

Similar to Eng Mgmt Fw People Processes Tech Culture

Postmortemanalysis 120520033844-phpapp02
Postmortemanalysis 120520033844-phpapp02Postmortemanalysis 120520033844-phpapp02
Postmortemanalysis 120520033844-phpapp02Loriebel Manabat
 
DOES15 - Damon Edwards - DevOps Kaizen Practical Steps to Start & Sustain a T...
DOES15 - Damon Edwards - DevOps Kaizen Practical Steps to Start & Sustain a T...DOES15 - Damon Edwards - DevOps Kaizen Practical Steps to Start & Sustain a T...
DOES15 - Damon Edwards - DevOps Kaizen Practical Steps to Start & Sustain a T...Gene Kim
 
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a TransformationDevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a Transformationdev2ops
 
Agile Experience In Complex Projects
Agile Experience In Complex ProjectsAgile Experience In Complex Projects
Agile Experience In Complex ProjectsBorys Lebeda
 
Andrew Lukianenko: Role of Project Manager in tech startups (UA)
Andrew Lukianenko: Role of Project Manager in tech startups (UA)Andrew Lukianenko: Role of Project Manager in tech startups (UA)
Andrew Lukianenko: Role of Project Manager in tech startups (UA)Lviv Startup Club
 
Agile Metrics Meetup: What to Measure and How?
Agile Metrics Meetup: What to Measure and How?Agile Metrics Meetup: What to Measure and How?
Agile Metrics Meetup: What to Measure and How?Hugo Messer
 
Agile Metrics Meetup: What to Measure and How?
Agile Metrics Meetup: What to Measure and How?Agile Metrics Meetup: What to Measure and How?
Agile Metrics Meetup: What to Measure and How?Agile Circles Indonesia
 
Tom - Scrum
Tom - ScrumTom - Scrum
Tom - Scrumd0nn9n
 
Susan Clarke - The practicalities of adopting scaled agile methodologies
Susan Clarke - The practicalities of adopting scaled agile methodologiesSusan Clarke - The practicalities of adopting scaled agile methodologies
Susan Clarke - The practicalities of adopting scaled agile methodologiesAssociation for Project Management
 
LeSS-Intro - Scrum Meetup Berlin
LeSS-Intro - Scrum Meetup BerlinLeSS-Intro - Scrum Meetup Berlin
LeSS-Intro - Scrum Meetup BerlinAnton Skornyakov
 
Agile Team Performance Appraisal
Agile Team Performance AppraisalAgile Team Performance Appraisal
Agile Team Performance AppraisalAshutosh Rai
 
Best Practices When Moving To Agile Project Management
Best Practices When Moving To Agile Project ManagementBest Practices When Moving To Agile Project Management
Best Practices When Moving To Agile Project ManagementRobert McGeachy
 
DOES15 - Heather Mickman & Ross Clanton - (Re)building an Engineering Culture...
DOES15 - Heather Mickman & Ross Clanton - (Re)building an Engineering Culture...DOES15 - Heather Mickman & Ross Clanton - (Re)building an Engineering Culture...
DOES15 - Heather Mickman & Ross Clanton - (Re)building an Engineering Culture...Gene Kim
 
DOES15 DevOps@TGT (re)building an engineering culture
DOES15 DevOps@TGT (re)building an engineering culture DOES15 DevOps@TGT (re)building an engineering culture
DOES15 DevOps@TGT (re)building an engineering culture Ross Clanton
 
Scrum. Beginning Your Agile Transformation
Scrum. Beginning Your Agile TransformationScrum. Beginning Your Agile Transformation
Scrum. Beginning Your Agile TransformationAndreea Visanoiu
 
Brief introduction to project management and project management tools
Brief introduction to project management and project management toolsBrief introduction to project management and project management tools
Brief introduction to project management and project management toolsNathan Petralia
 

Similar to Eng Mgmt Fw People Processes Tech Culture (20)

Introducing techsharp
Introducing techsharpIntroducing techsharp
Introducing techsharp
 
Postmortemanalysis 120520033844-phpapp02
Postmortemanalysis 120520033844-phpapp02Postmortemanalysis 120520033844-phpapp02
Postmortemanalysis 120520033844-phpapp02
 
DOES15 - Damon Edwards - DevOps Kaizen Practical Steps to Start & Sustain a T...
DOES15 - Damon Edwards - DevOps Kaizen Practical Steps to Start & Sustain a T...DOES15 - Damon Edwards - DevOps Kaizen Practical Steps to Start & Sustain a T...
DOES15 - Damon Edwards - DevOps Kaizen Practical Steps to Start & Sustain a T...
 
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a TransformationDevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
 
Agile Experience In Complex Projects
Agile Experience In Complex ProjectsAgile Experience In Complex Projects
Agile Experience In Complex Projects
 
Andrew Lukianenko: Role of Project Manager in tech startups (UA)
Andrew Lukianenko: Role of Project Manager in tech startups (UA)Andrew Lukianenko: Role of Project Manager in tech startups (UA)
Andrew Lukianenko: Role of Project Manager in tech startups (UA)
 
Agile Metrics Meetup: What to Measure and How?
Agile Metrics Meetup: What to Measure and How?Agile Metrics Meetup: What to Measure and How?
Agile Metrics Meetup: What to Measure and How?
 
Agile Metrics Meetup: What to Measure and How?
Agile Metrics Meetup: What to Measure and How?Agile Metrics Meetup: What to Measure and How?
Agile Metrics Meetup: What to Measure and How?
 
Tom - Scrum
Tom - ScrumTom - Scrum
Tom - Scrum
 
Susan Clarke - The practicalities of adopting scaled agile methodologies
Susan Clarke - The practicalities of adopting scaled agile methodologiesSusan Clarke - The practicalities of adopting scaled agile methodologies
Susan Clarke - The practicalities of adopting scaled agile methodologies
 
LeSS-Intro - Scrum Meetup Berlin
LeSS-Intro - Scrum Meetup BerlinLeSS-Intro - Scrum Meetup Berlin
LeSS-Intro - Scrum Meetup Berlin
 
Agile Team Performance Appraisal
Agile Team Performance AppraisalAgile Team Performance Appraisal
Agile Team Performance Appraisal
 
Project Management
Project ManagementProject Management
Project Management
 
Best Practices When Moving To Agile Project Management
Best Practices When Moving To Agile Project ManagementBest Practices When Moving To Agile Project Management
Best Practices When Moving To Agile Project Management
 
DOES15 - Heather Mickman & Ross Clanton - (Re)building an Engineering Culture...
DOES15 - Heather Mickman & Ross Clanton - (Re)building an Engineering Culture...DOES15 - Heather Mickman & Ross Clanton - (Re)building an Engineering Culture...
DOES15 - Heather Mickman & Ross Clanton - (Re)building an Engineering Culture...
 
DOES15 DevOps@TGT (re)building an engineering culture
DOES15 DevOps@TGT (re)building an engineering culture DOES15 DevOps@TGT (re)building an engineering culture
DOES15 DevOps@TGT (re)building an engineering culture
 
Feb Apln OC Shawna C
Feb Apln OC  Shawna CFeb Apln OC  Shawna C
Feb Apln OC Shawna C
 
Scrum. Beginning Your Agile Transformation
Scrum. Beginning Your Agile TransformationScrum. Beginning Your Agile Transformation
Scrum. Beginning Your Agile Transformation
 
Brief introduction to project management and project management tools
Brief introduction to project management and project management toolsBrief introduction to project management and project management tools
Brief introduction to project management and project management tools
 
First fare 2011 project-management
First fare 2011 project-managementFirst fare 2011 project-management
First fare 2011 project-management
 

Recently uploaded

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Eng Mgmt Fw People Processes Tech Culture

  • 1. Engineering Management Framework Building an Awesome Software Engineering Team
  • 2. The Engineering Management Framework People Processes Technology Culture + Hiring / talent standards + Talent development / mentorship + Organization structure Sub-areas Explanation / details + Eng teams live and die based on talent / tendency towards action + Grow eng skills internally via L&L’s, mentorship, pair prgming, etc + Create well-defined roles & responsibilities that fit team member talents and aspirations + Roadmap Development + Sprint Planning & Req Gathering + Dev → QA → Deploy pipeline (GSD) + Bug / issue reporting & resolution + Product leads with heavy input / buy-in from Eng team + Crux of making sure all teams are on the same page + Maximize throughput while minimizing tech debt / bugs + Ensure we address urgent customer issues ASAP and provide mechanism for reporting bugs + DevOps / infrastructure + Front end architecture + Backend languages / architecture + Tools + Ensure uptime and agility + Create a great customer UX that’s maintainable + Create maintainable backend codebases to support your UX + Foster productivity with “right tool for the job” approach + Autonomy, Mastery, Purpose + Psychological safety + Bottoms up and top down (provide a vision / empower the team) + Ensures the team is engaged and minimizes turnover + Psychological safety is THE most important ingredient in team results + Culture has to come from both directions to succeed Details to follow on each sub-area
  • 3. Engineering Mgmt Framework People Hiring / talent standards Talent development / mentorship Organization structure Process Technology Culture
  • 4. People: Hiring / talent standards ENGINEERING MANAGEMENT FRAMEWORK Overview Sourcing candidates + Hiring quality engineers is absolutely critical to building a successful team. + Hiring should be a top priority for leadership when you have open roles + Sourcing quality candidates can be tough; leverage platforms like Hired.com and Angelist, encourage the team to send referrals, and use recruiters as a last resort Interview process + Three rounds with a HW problem b/w 2nd and final seems to work well; keep the pre-final round screening process the same for all candidates to ensure consistency + Make sure the candidate writes code! + Having a fairly consistent interview team is important but it’s also good to give people a “step-up” opportunity by participating in the process; make sure to balance these competing priorities + Team might be on the fence about some candidates; figure out a strategy for handling this ahead of time (additional homework, always no, etc) Other considerations + Promote internally where possible - try to avoid hiring above someone unless it really makes sense + Culture is super-duper important so reject candidates for cultural reasons
  • 5. People: Talent development / mentorship (1/2) ENGINEERING MANAGEMENT FRAMEWORK Overview Review process + Developing talent internally is super-important and should always be a consideration when making decisions + Regular review processes and formal / informal mentorship are both necessary + Ensure some sort of x-team knowledge sharing occurs on a regular basis (iron sharpens iron) + Review process should take place every six months to ensure people are always getting feedback they need + Align on a structured framework & process ahead of time that enables a holistic approach with 360 feedback + Engineers should be assigned mentors who will be in charge of collecting feedback and writing a fair review Promotions + Regular review process provides an easy forum to review performance and assess whether or not someone is ready for a promotion + Generally, a promotion should recognize a role someone is already playing (though exceptions can be made) + Should generally be agreement amongst engineering leadership on the promotion; strong dissent likely means the person isn’t quite ready yet + Promotion recommendations should be provided to the CEO for blessing though it’s mostly “rubber stamping” + Comp is a bit tricky. Let’s review in person. Performance issues + Performance issues should be addressed fairly quickly by someone’s direct manager + If problem persists, bring it up the chain to discuss potential options; if performance is bad enough to lead to termination if not corrected, make sure to mention it to the Management Team + Head of Engineering should have a very frank conversation with the person. Perf. improvement plan should be kept relatively short, 2-4 weeks, to be fair to all parties involved. Probation period afterwards of 1-2 months to encourage continued better performance assuming they’re not let go.
  • 6. People: Talent development / mentorship (2/2) ENGINEERING MANAGEMENT FRAMEWORK Mentorship + All engineers should have a formal mentor who’s in charge of directing their development over the long term + It’s also useful to encourage an informal mentorship network where strong engineers can provide mentorship to any engineer who’s interested Knowledge sharing + Encourage all engineers to share their knowledge with the rest of the team through some mechanism, e.g., “Lunch & Learn”, documentation, Slack, email, etc Leadership training + Provide leadership coaching, guidance, and training to engineers who are interested + Consider future organizational needs and ensure internal talent will be prepared to help address them
  • 7. People: Organization structure ENGINEERING MANAGEMENT FRAMEWORK Overview Designing an organization + Finding the right people for roles & responsibilities makes everything much easier + Org structure forces people into certain mindsets so design it carefully + First, map out what needs the team has (e.g., someone needs to own DevOps, QA, Acquisition, etc) + Next, try to group related stuff together where possible so that you don’t have a bunch of 1 engineer teams (e.g., maybe we have a team called “Strategic Tech” that does DevOps, Data, and Search stuff + Adjust the above if necessary for talent constraints and/or individual development needs Other considerations + Make sure the org structure aligns with business needs and generally “makes sense” + Don’t change it too often if possible + Be flexible and design it so most engineers can change teams if necessary → bus factor = 1 is very scary + Consider development trajectories and emotions + Keep great teams together if at all possible → research suggests that it takes time for teams to “get in a rhythm” and they’re much more productive when they do
  • 8. Engineering Mgmt Framework People Process Roadmap development Sprint Planning & Req Gathering Dev → QA → Deploy pipeline (GSD) Bug / issue reporting & resolution Technology
  • 9. Process: Roadmap Development ENGINEERING MANAGEMENT FRAMEWORK Overview Considerations + Long-term product roadmap essential to developing a great product + Mostly Product Management’s responsibility though Engineering should be heavily involved for input + Business rationale: Double check that the roadmap makes sense from a business perspective + Ensure that timelines are reasonable (e.g., engineering leads should do high level LOE estimations) + Tech debt: Ensure that it accounts for technical debt cleanup / other behind the scenes tech stuff that product may not be as aware of + Think about how it might influence Engineering AMP / team morale + Think about how it might influence team structure + Consider whether or not it affects the hiring plan
  • 10. Process: Sprint Planning & Req gathering (1/2) ENGINEERING MANAGEMENT FRAMEWORK Overview Requirements gathering + Gather requirements, estimate effort for tasks, and prioritize stuff in the short term + Product takes lead on the “what” though we as engineering have a heavy responsibility to help prioritize and provide an active input where we can do things more efficiently; ideally there’s a well-groomed backlog + Product should take lead on pulling in other stakeholders + Make sure we’re getting good enough requirements + Ideally engineers can point out when requirements are clear enough and problem solve with Product Mgmt to resolve the issues Handling problems + Unclear requirements: It’s best not to commit to something in a Sprint when the requirements aren’t clear enough to deliver; however, high priority situations will require that we be flexible + Uncertainty around an ask: If you know something could come up in the future, book Sprint time (e.g., 360/VR ask for NAB) even if it’s a bit vague; with a well-groomed backlog we can keep chugging even if we don’t end up executing against the vague ask Estimation + Let the entire team participate in point estimation where possible; it builds buy-in and ensures that the team doesn’t feel like it’s just taking orders as much + Try to keep point estimations constant over time + Slowly but surely increase point allocations / eng / day as long as you keep delivering though make sure this isn’t at the expense of work/life balance; you genuinely want the team to get more efficient
  • 11. Process: Sprint Planning & Req gathering (2/2) ENGINEERING MANAGEMENT FRAMEWORK Retrospectives + Make sure to do retrospectives every Sprint so the teams can continue improving + What went well, what can be improved
  • 12. Process: Dev → QA → Deploy pipeline (GSD) ENGINEERING MANAGEMENT FRAMEWORK Overview Development + Core engineering process that delivers new functionality + Where Engineers (ideally) spend most of their time! + Minimize meetings and distractions: Ideally, engineers should spend most of their time developing features + Includes Design and Code Reviews, which are crucial to building a great GSD pipeline. Otherwise you’ll leave massive amounts of tech debt in your wake + Fairly tightly coupled with some tech choices (Git/GitHub for source control) QA + TDD and a TDD culture are a must! + Unit tests, integration tests, Selenium / end-to-end tests + Tests should be fast! + Devs should do manual testing before handing it off to formal QA + We should have a fairly strong manual QA team Deploy + Ideally our test suites are good enough for us to do Continuous Integration if we want + Should have push-button deploys + Rollbacks should be super-simple + Anyone should be able to deploy but there should be people available to help fix problems if they arise (e.g., no middle-of-the-night deploys when you’re the only person awake)
  • 13. Process: Bug / issue reporting ENGINEERING MANAGEMENT FRAMEWORK Overview Reporting + Bugs and other issues are certain to occur + We need to have a process for fixing them and communicating appropriately with stakeholders + There should be as few channels for reporting bugs as possible while ensuring that urgent issues are always ID’d and resolved quickly + It should be easy to report bugs / issues and the “how” should be easy to remember + Non-urgent issues should be kept in a backlog of some kind Fixing issues / bugs + Standardize a process for addressing bugs / issues that everyone aligns on. Might be part of Sprint planning, might be it’s own process (e.g., Dev Requests) + Ideally all engineers help fixing bugs / issues -- don’t create two “classes” of engineers (coders and bug-fixers).
  • 14. Engineering Mgmt Framework People Process Technology DevOps / Infrastructure Front end architecture Backend languages / architecture Tools
  • 15. Process: DevOps / Infrastructure ENGINEERING MANAGEMENT FRAMEWORK Overview DevOps + DevOps should enable the team to move quickly and ensure our products are available for our customers + DevOps is a strategic asset b/c it lets you move faster than the competition when done well + Ensure that most of the team can do at least some DevOps and understands the basic concepts + Makes sense to have a specialist or two once the team reaches a critical size + Docker rules! + Remember, the goal is to leverage DevOps to move fast! Infrastructure + Our infrastructure should support our current needs and be prepared to scale to 10x our current volume + Make sure it’s flexible for new demands even within the 10x volume + Make sure it’s not slowing you down or costing too much + Know the architecture! Current architecture leads to a lot of business constraints that you have to be able to communicate to the executive team. + Have a plan for the future! Even within the 10x volume constraint our infrastructure will need to evolve to support future needs (e.g., OneAccount)
  • 16. Process: Frontend Architecture ENGINEERING MANAGEMENT FRAMEWORK Overview ReactJS / Flux + Our frontend architecture should support an amazing customer UX and also be maintainable + ReactJS / Flux combo seems to be the best option at the moment + The future! Easy-to-understand design pattern makes for an extremely flexible way of building web apps + The one downside (thanks to Kim for calling this out) seems to be CSS transitions Everything else + The past + We should eventually migrate to ReactJS / Flux where it makes sense
  • 17. Process: Backend languages / architecture ENGINEERING MANAGEMENT FRAMEWORK Overview Backend languages + Ideally, we should use the right tool for the job + Transitioning backend to microservices will enable the business to move faster + Good options for VB: PHP, Node, Scala + Many other options are ok depending on the circumstances Microservices + Backends for frontends with microservices + First build a monolith then split out services once you’ve scaled (code well initially and this is much easier)
  • 18. Process: Tools ENGINEERING MANAGEMENT FRAMEWORK Overview Tool selection + Super important to choose the right tools for the job because they dramatically affect productivity + Version control: Git, GitHub, and SmartGit + IDE: anything JetBrains + Use a debugger! + CircleCI for unit testing + Not sure for Selenium testing + Sequel Pro (Mac) for MySQL + Sublime Text for editing random txt docs, some code + BeyondCompare for FTP / file diffs + AWS! + Docker Hub
  • 19. Engineering Mgmt Framework People Process Technology Culture Autonomy, Master, Purpose Psychological safety Bottoms up and top down
  • 20. Culture: Autonomy, Mastery, Purpose ENGINEERING MANAGEMENT FRAMEWORK Overview Autonomy + The secret to building a happy, motivated team; HUGE for retention! + Straight from Daniel Pink’s “Drive” + The power to make impactful decisions in your day-to-day work + Improves autonomy: building new stuff, flexibility to select your projects + Decreases autonomy: processes, just following instructions Mastery + Continued growth and development + Improves mastery: learning new technologies & skills, solving hard but tractable problems + Decreases mastery: simply doing the same thing over and over again Purpose + Connecting work to a larger cause than yourself + Improves purpose: delivering value and Getting Shit Done (GSD) + Decreases purpose: impossible problems, working on inconsequential stuff On all of these, what matters is how teammates feel, not necessarily the facts of the situation
  • 21. Culture: Psychological safety ENGINEERING MANAGEMENT FRAMEWORK Overview Psychological safety + Psychological safety is THE most important aspect to succeeding as a team + Team bonding, building trust, and having “good” conflict that doesn’t disparage people are all important aspects + The shared belief that the team is safe for interpersonal risk taking. In psychologically safe teams, team members feel accepted and respected. + Benefits are manifold: improves likelihood that innovation will be successful, increases amount team members learn from mistakes, boosts employee engagement, improves team innovation + Two key leadership aspects help create it: participatory management and inclusive management + Two aspects of a team that really help improve it: well-defined team structure where team members understand their roles; strong relationships between cohesive team members Build strong relationships + Strong relationships are key to psychological safety so it’s important to ensure they exist on the team + Focusing on building trust / ability to have productive conflict is crucial: consider reading “Five Dysfunctions of a Team” together + Encourage team interactions outside the office such as offsites, happy hours, hanging out, etc + Family-like atmosphere Encourage feedback and growth + Encourage team members to seek constant personal and professional growth + Encourage team members to provide each other feedback on a regular basis
  • 22. Culture: Bottoms up and top down ENGINEERING MANAGEMENT FRAMEWORK Overview Top-down + Culture must come from the top-down from leadership and be strongly supported bottoms-up by team members reinforcing the culture + Team leadership needs to formally establish the culture by defining principles and values for the team + Leadership should also vocally support Autonomy/Master/Purpose and Psychological Safety + Be consistent in rewarding behavior according to principles Bottoms up + A lot of bottoms up culture happens through a combination of hiring the right people, rewarding behavior consistent with cultural principles, and supporting team AMP + Encourage the team to “own” culture and provide an environment where that’s possible