Slide 1

Slide 1 text

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