PRESENTED BY
Matt Stauffer
@stauffermatt
How to build a productive
Laravel team
Slide 2
Slide 2 text
• The context
• The constraints
• The suggestions
• The summary
Agenda
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
We build & rescue
web apps & dev teams
Slide 5
Slide 5 text
Three types of clients:
1. Healthy team
2. No team
3. Unhealthy team
Slide 6
Slide 6 text
Three types of clients:
1. Healthy team
2. No team
3. Unhealthy team
Write code, help them code better
… & help them hire & build process
… & help them fix process & relationships
Slide 7
Slide 7 text
How do we build healthy and
productive teams?
Slide 8
Slide 8 text
The context
1
Slide 9
Slide 9 text
THE CONTEXT
1
What is a team?
Slide 10
Slide 10 text
THE CONTEXT
1
What is a team?
The team (in this context) is the group of people
responsible for building Laravel apps.
Slide 11
Slide 11 text
THE CONTEXT
1
Who’s in our team?
Business Design
Product
Development Dev-ops/IT
QA
Slide 12
Slide 12 text
THE CONTEXT
1
Who’s in our team?
Business Design
Product
Development Dev-ops/IT
QA
BUSINESS
ENGINEERING
Slide 13
Slide 13 text
THE CONTEXT
1
What’s in a team?
• “Business" & “Engineering”
• … and their relationships with each other
• … and their relationships with senior leadership
• … and their relationships with customers
• … and the processes (or lack thereof)
that make it all happen
Slide 14
Slide 14 text
THE CONTEXT
1
What’s in a team?
💡 💻
Slide 15
Slide 15 text
The constraints
2
Slide 16
Slide 16 text
THE CONSTRAINTS
2
• Team size
• Project scale
• Existing tech and structures
• Existing team’s capabilities
• Cost to hire in your market
• Unique constraints of your domain
• Deadlines
What impacts the decisions you make
Slide 17
Slide 17 text
THE CONSTRAINTS
2
What impacts the decisions you make
People.
Slide 18
Slide 18 text
THE CONSTRAINTS
2
• Fear
• Ego
• Emulation
• Consultants
• Probably other stu
f
People are why we get in bad shape
Slide 19
Slide 19 text
The suggestions
3
Slide 20
Slide 20 text
Caveat
If you hate my advice…
Slide 21
Slide 21 text
THE SUGGESTIONS
3
• How to build a healthy culture
• How to structure a dev team
• How to hire developers
• How to build product process
• How to build development process
Our agenda
Slide 22
Slide 22 text
How to build a healthy culture
3a
Slide 23
Slide 23 text
THE SUGGESTIONS: How to Build Product Process
3c
• Healthy culture is based on trust, respect, and
communication
• Lack of trust will turn any organization unhealthy
• Engineering leadership: believe in your devs and go
to bat for them
• Involve devs in feature planning
• Engineering leadership and product leadership:
trust each other’s priorities and values
How to build healthy culture
Slide 24
Slide 24 text
How to structure a dev team
3b
Slide 25
Slide 25 text
THE SUGGESTIONS: How to Structure a Dev Team
3a
• Full stack dev teams, preferably 2-4 devs
• Max of one junior to every two non-juniors
• Each team needs a technical leader (senior dev)
and a process leader (PM or senior dev)
• Technical ability != Interpersonal leadership skills
Dev team shape
Slide 26
Slide 26 text
THE SUGGESTIONS: How to Structure a Dev Team
3a
• De
fi
ne your roles
• De
fi
ne a global quality standard
• Senior dev = capable of holding code to your global
quality standard
• Need someone at the company to de
fi
ne the global
quality standard; or bring in Tighten/etc.
Technical Seniority
Slide 27
Slide 27 text
• Junior code has to be reviewed before deploying
• Mid code doesn’t need to be reviewed often, but
their architecture should be guided
• Senior code doesn’t need to be reviewed and their
architecture is trusted
Tighten’s roles, simplified
Slide 28
Slide 28 text
THE SUGGESTIONS: How to Structure a Dev Team
3a
• You run a software company now
• Most senior technical person should have:
• programming experience
• equal power to the leaders of business
Structuring the engineering organization
Slide 29
Slide 29 text
How to hire developers
3c
Slide 30
Slide 30 text
THE SUGGESTIONS: How to Hire Developers
3b
• Hire full-stack devs
• What position are you hiring for?
• Seniors need real Laravel experience
What to look for
Slide 31
Slide 31 text
THE SUGGESTIONS: How to Hire Developers
3b
• Post on Larajobs
• Test for real practical things, not linked lists
• People can’t always write code on the spot but they
can read it!
• More than one interviewer at a time 🔑
How to find and interview candidates
Slide 32
Slide 32 text
How to build
product process
3d
Slide 33
Slide 33 text
THE SUGGESTIONS: How to Build Product Process
3c
• Use “epics” instead of massive spec docs
• De
fi
ne features collaboratively
• Give developers
fl
eshed-out tasks, immediate
access to business for clari
fi
cation, or leeway to
interpret tasks themselves
How to define and hand off feature specs
Slide 34
Slide 34 text
How to build
development process
3e
Slide 35
Slide 35 text
The goal
The goal of any development process
is to enable developers to write and
deploy good code.
Slide 36
Slide 36 text
Therefore…
If the process isn’t enabling
developers to write and deploy good
code, it’s not good process.
Slide 37
Slide 37 text
THE SUGGESTIONS: How to Build Development Process
3d
• Protect
fl
ow state
• Allow fewer interruptions
• Hold fewer meetings
• Empower devs to write and ship code
• Work iteratively; ship early and often
Build an environment conducive to coding
Slide 38
Slide 38 text
THE SUGGESTIONS: How to Build Development Process
3d
• Speed up tests (less than a minute locally)
• Upgrade dependencies
• Speed up CI/CD (less than ten minutes)
• Merge PRs quickly
• Allocate time for code quality improvements
(technical debt)
Avoid death by 1,000 cuts
Slide 39
Slide 39 text
THE SUGGESTIONS: How to Build Development Process
3d
• Watch out for Shiny Object Syndrome ™
• Your dev doesn’t know better than the framework
• Beware the brilliant asshole
• Code should not be a special snow
fl
ake
Protect against devs’ bad habits
Slide 40
Slide 40 text
THE SUGGESTIONS: How to Build Development Process
3d
• Automate code linting
• Automate deploys and ensure they can run in less
than 15 minutes
• Trigger deploys by code merges
• Deploy weekly, at least
Simplify pushing to production
Slide 41
Slide 41 text
The summary
4
Slide 42
Slide 42 text
How do we build healthy and
productive teams?
Slide 43
Slide 43 text
By working for it.
It takes active, empathetic, informed,
fl
exible, communicative leadership to build a
productive team of any size. There’s no
magic bullet.
It’s up to you.
Slide 44
Slide 44 text
Need help?
tighten.com
Want to learn more?
mattstauffer.com/newsletter