Sustaining your Team Growth
Fred de Villamil
Aircall, Oct 26th 2018
About me
● 15 years doing the fireman in
(hyper)growing startups
● Working on both technical and
organisational levels
● Passionate about leadership and scaling
large infrastructures
● Open source contributor since 1996
● Author, speaker and startup advisor
Fred de Villamil
Twitter: @fdevillamil
LACK OF TRUST
Trust Breakers
● Poorly delivered release, outages
● Unexpected delays
● Lack of communication inside and outside
the engineering teams
● Interpersonal problems
● Losing your culture by hiring too fast
● Product VS dev VS design VS QA
● Lack of visibility inside the company
● Opportunity roadmap
● Tech VS business
● Lack of roadmap / strategy visibility
● Create defined, publicly available
processes
● Help your Engineering Managers scale
● Be lazy, automate
● Create the right communication channels
● Provide visibility
Restoring Trust, Step by
Step
Engineering Managers
● I'm a para-shit, taking every problem that
might prevent the team to achieve the
company's goals
● Success are the team's, failure are my
responsibilities
● Engineering teams works for the company,
I work for the team
● Fixing people problems before they
become a team problem
How Can I Help you?
The Clear Contract
Define your leadership / working style
● What I will do for you
● What I won't do for you
● What you can do with me
● What you can't do with me
Share with your team members, 1:1
● Ask them to do the same exercise
● Listen to their vision, share yours
● Find trade offs so you can work together
Working with Remote Teams
● Don't treat remote teams as a whole unless necessary
● Communicate! Communication should not be one sided
● Include remote colleagues into existing projects
● Ask remote colleagues to review your code, even if it takes time
● Have remote colleagues do your code review
● Setup communication tools: video chat, Alice Standup Slack bot…
● Have at least 2 hours of overlapping work time
Solving Team Members Problems
● Solve problems as they arise, don't wait
for a people issue to become a team
issue
● If things get personal, escalate or delegate
● Empathy is the key but you're not
Mother Theresa
● Meet your leads at least once a week
● Use neutral places as much as possible,
keep closed meeting rooms for the big
thing
● Talk, then write, for what's not written
does not exist
● Ask advice from the HR early enough,
that's their job
Track your Team Fatigue
● Started when I was managing an ops
team after 2 burnouts
● Different KPIs for developers, ops,
designers…
● Sometimes, you need to force people to
take a break
● This is not rocket science
KPIs
● Interruptions and context switching
● Ops: incident and oncall hours
● Calculated weekly and on a sliding month
Tools
● Jira: what has no ticket does not exist
Improving processes
● Too many processes lower productivity,
no processes kill it
● Processes must be written, known and
accepted
● "Old timers" have more difficulties to
adapt to new processes
The Process Paradox
● Adapt state of the art processes to your
reality, not the other way around
● Processes should have a purpose, not
become a purpose
● A good process is an automated process
● A mix of Scrum and Kanban
● Give time to the unexpected
● Accept that a sprint is not immutable
● Include all the stakeholders
Daily Organization
● 2 weeks sprints
● Demo at the end of sprint: invite the
whole company, include the design
progresses
● Daily standups including Design, PO, Ops
& QA
● Sprint retrospectives: what can be
improved?
● Sprint planning on Friday so we know
what we'll do on Monday
Improving Code Reviews
● Code reviews should not be code validation
● Do the review next to the developer, or by video call
● Have the juniors review senior engineers code, they'll learn a lot
● Ask different (random) people to review your code
● Take your time and be patient
Building a QA that Works
● The QA team should not belong to the tech / product department (CFO /
CEO)
● Hire QA engineers, not testers: former developers or ops, to build the
CI/CD toolchain
● Build from the bottom: engineers first, managers second
QA for everybody to everybody
● Automate, automate and automate again! (Jenkins, CircleCi, Slackbots…)
● Unit tests → developers (runit…)
● Functional tests → PO / PM (cucumber), they are the product specs
● Integration tests → QA + Ops: test the whole chain
● Manual tests → outsource!
From Dev to Production
● Developers write the deployment recipes
● Developers write the monitoring probes
● API should have an endpoint with version, deps, build info and self
documentation
● No deployment on Friday!
● 2-3 hours to discuss a new architecture, refactoring...
● Open to everyone interested in the topic
● Leave the door open: people can join anytime and leave anytime
● Finish with a deliverable
Open Brainstorming Rooms
Hiring and onboarding
An Effective Hiring Process
The process
1. Screening call with the candidate
2. The candidate meets 2 random people
from the team
3. A 2-3 hours technical whiteboard session
with an engineer + lead
4. A leadership / organisation meeting with
the CTO
5. For senior / leads, start with meeting the
CTO
Goals
● Keep it short
● Do the team members want to work with
the candidate?
● Cultural fit > technical skills
● Average: 9 days between the screening
and go
● From simple to extremely complex
questions until they can't answer
anymore
● Not used to write off a candidate but
know them better
● Help a new joiner overcome their
weaknesses
● Build homogeneous teams where people
can learn from each other
The Skill Set Assessment
Onboarding New Colleagues
● The best place to learn about the company is at the customer support
● Give every newcomer a "mate" from a different service who help them
navigating in the company
● Have every engineer work in 2-3 different teams or product for a month
each, then choose what they love the most
Thanks!
Question?

Scaling your Engineering Team

  • 1.
    Sustaining your TeamGrowth Fred de Villamil Aircall, Oct 26th 2018
  • 2.
    About me ● 15years doing the fireman in (hyper)growing startups ● Working on both technical and organisational levels ● Passionate about leadership and scaling large infrastructures ● Open source contributor since 1996 ● Author, speaker and startup advisor Fred de Villamil Twitter: @fdevillamil
  • 3.
  • 4.
    Trust Breakers ● Poorlydelivered release, outages ● Unexpected delays ● Lack of communication inside and outside the engineering teams ● Interpersonal problems ● Losing your culture by hiring too fast ● Product VS dev VS design VS QA ● Lack of visibility inside the company ● Opportunity roadmap ● Tech VS business ● Lack of roadmap / strategy visibility
  • 5.
    ● Create defined,publicly available processes ● Help your Engineering Managers scale ● Be lazy, automate ● Create the right communication channels ● Provide visibility Restoring Trust, Step by Step
  • 6.
  • 7.
    ● I'm apara-shit, taking every problem that might prevent the team to achieve the company's goals ● Success are the team's, failure are my responsibilities ● Engineering teams works for the company, I work for the team ● Fixing people problems before they become a team problem How Can I Help you?
  • 8.
    The Clear Contract Defineyour leadership / working style ● What I will do for you ● What I won't do for you ● What you can do with me ● What you can't do with me Share with your team members, 1:1 ● Ask them to do the same exercise ● Listen to their vision, share yours ● Find trade offs so you can work together
  • 9.
    Working with RemoteTeams ● Don't treat remote teams as a whole unless necessary ● Communicate! Communication should not be one sided ● Include remote colleagues into existing projects ● Ask remote colleagues to review your code, even if it takes time ● Have remote colleagues do your code review ● Setup communication tools: video chat, Alice Standup Slack bot… ● Have at least 2 hours of overlapping work time
  • 10.
    Solving Team MembersProblems ● Solve problems as they arise, don't wait for a people issue to become a team issue ● If things get personal, escalate or delegate ● Empathy is the key but you're not Mother Theresa ● Meet your leads at least once a week ● Use neutral places as much as possible, keep closed meeting rooms for the big thing ● Talk, then write, for what's not written does not exist ● Ask advice from the HR early enough, that's their job
  • 11.
    Track your TeamFatigue ● Started when I was managing an ops team after 2 burnouts ● Different KPIs for developers, ops, designers… ● Sometimes, you need to force people to take a break ● This is not rocket science KPIs ● Interruptions and context switching ● Ops: incident and oncall hours ● Calculated weekly and on a sliding month Tools ● Jira: what has no ticket does not exist
  • 12.
  • 13.
    ● Too manyprocesses lower productivity, no processes kill it ● Processes must be written, known and accepted ● "Old timers" have more difficulties to adapt to new processes The Process Paradox ● Adapt state of the art processes to your reality, not the other way around ● Processes should have a purpose, not become a purpose ● A good process is an automated process
  • 14.
    ● A mixof Scrum and Kanban ● Give time to the unexpected ● Accept that a sprint is not immutable ● Include all the stakeholders Daily Organization ● 2 weeks sprints ● Demo at the end of sprint: invite the whole company, include the design progresses ● Daily standups including Design, PO, Ops & QA ● Sprint retrospectives: what can be improved? ● Sprint planning on Friday so we know what we'll do on Monday
  • 15.
    Improving Code Reviews ●Code reviews should not be code validation ● Do the review next to the developer, or by video call ● Have the juniors review senior engineers code, they'll learn a lot ● Ask different (random) people to review your code ● Take your time and be patient
  • 16.
    Building a QAthat Works ● The QA team should not belong to the tech / product department (CFO / CEO) ● Hire QA engineers, not testers: former developers or ops, to build the CI/CD toolchain ● Build from the bottom: engineers first, managers second
  • 17.
    QA for everybodyto everybody ● Automate, automate and automate again! (Jenkins, CircleCi, Slackbots…) ● Unit tests → developers (runit…) ● Functional tests → PO / PM (cucumber), they are the product specs ● Integration tests → QA + Ops: test the whole chain ● Manual tests → outsource!
  • 18.
    From Dev toProduction ● Developers write the deployment recipes ● Developers write the monitoring probes ● API should have an endpoint with version, deps, build info and self documentation ● No deployment on Friday!
  • 19.
    ● 2-3 hoursto discuss a new architecture, refactoring... ● Open to everyone interested in the topic ● Leave the door open: people can join anytime and leave anytime ● Finish with a deliverable Open Brainstorming Rooms
  • 20.
  • 21.
    An Effective HiringProcess The process 1. Screening call with the candidate 2. The candidate meets 2 random people from the team 3. A 2-3 hours technical whiteboard session with an engineer + lead 4. A leadership / organisation meeting with the CTO 5. For senior / leads, start with meeting the CTO Goals ● Keep it short ● Do the team members want to work with the candidate? ● Cultural fit > technical skills ● Average: 9 days between the screening and go
  • 22.
    ● From simpleto extremely complex questions until they can't answer anymore ● Not used to write off a candidate but know them better ● Help a new joiner overcome their weaknesses ● Build homogeneous teams where people can learn from each other The Skill Set Assessment
  • 23.
    Onboarding New Colleagues ●The best place to learn about the company is at the customer support ● Give every newcomer a "mate" from a different service who help them navigating in the company ● Have every engineer work in 2-3 different teams or product for a month each, then choose what they love the most
  • 24.