lightweight chaos - aras'...

43
Lightweight Chaos For Distributed Teams Aras Pranckevičius at BuildStuffLT 2013

Upload: others

Post on 05-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Lightweight Chaos For Distributed Teams

Aras Pranckevičius at BuildStuffLT 2013

Page 2: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

What process?

• I don’t know!

• Use whatever makes sense!

!

• well that’s it, kthxbye

Page 3: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

srsly tho

• Here’s what has (and has not) worked

• At Unity Technologies

• Where many are allergic to “process”

Page 4: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

/me• Coding since 1996, paid to do that since 2000.

• Mostly a computer graphics programmer.

• Employee #4 at Unity Technologies, since 2006.

• @aras_p

• http://aras-p.info

Page 5: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Unity• Game development engine & toolset.

• http://unity3d.com

• 2.5 million users.

• Thousands of games.

• Games on 1 billion mobiles, 250 million PCs.

Page 6: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Distributed

• 17 offices

• ~20 more random one-person places

Page 7: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Why distributed?

• Happened by accident

• Easier to find talent w/o relocation

• Smaller offices can be more productive

• Specialize based on location

Page 8: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Specifics

• 120..150 engineers (depending on how you count)

• Mostly one product

• 1.4 MLOC codebase, mostly C++ & C#

• Some code is 12 years old

Page 9: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Specifics

• No written specification

• Close to zero design docs

Page 10: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Product / Project• We’re making product, not project

• We decide what we build*

• We decide when we build it*

!

• Makes many things easier

* mostly

Page 11: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Process TL;DR

• What process?

• Everyone hates “The Man”

• Depends on situation

• Let teams & people decide what to use

Page 12: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Caveats

• Can only work if people care about what you build

• Someone will step up to do boring tasks since the result is worth it

Page 13: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Fancy quotes!• Guidelines, not rules

• Only add process when not having it becomes unbearable

• Be suspicious of silver bullets

• The only constant is change

• Most approaches are overhyped, but probably have one good idea in them

Page 14: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Heretic quotes?

• Processes are for managing mediocre people

• In a group of people, stupidity adds up, but intelligence multiplies*

• To maintain intelligence level, only hire people who are better than current average!

* in 0..1 range

Page 15: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

3 person company• Zero process

• Zero hierarchy

• Everyone knows everything

• Everyone decides everything

• Everyone does everything

Page 16: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

15 person company

• More specialization

• Still everyone knows everything

• Still zero hierarchy & process

Page 17: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

40 person company

• Teams forming

• We got one “manager”!

Page 18: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

150 person company

• Dunbar’s number

• “this will kill your startup”

!

• …it did not

Page 19: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

~320 in company now• 120-150 engineers

• Can’t know everyone

• Not a single person knows everything

• Have to have some hierarchy

• 5 engineer managers right now

Page 20: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

How we work?

• Parts of “how” might change at any time

• Quite chaotic

• Barely any “rules”

Page 21: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Teams

• 2..10 people

• Usually has a “lead”

• Lead is main point of contact

• Workflow completely up to each team

Page 22: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Team process

• Some use Scrum, Kanban, …

• Some don’t use anything in particular

• Some things are quite common among teams now…

Page 23: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Common things

• “bugfix week” - whole team only fixes bugs for a week

• “technical debt week” - refactoring, cleanups etc.

• “fridays are for fun” - on Fridays everyone does whatever they want

Page 24: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Common things• Major feature releases each 2 months (wish)… 4-5

months (reality)

• Feature work before alpha

• Tweaking, feedback, polish, fixes during alpha

• Final small tweaks, majority of fixes during beta

• Final shipstopper fixes during RC

Page 25: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Who does decisions?

• Whoever wants to

• Talk with others

• Persuade others

• Argue with others

Page 26: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Who’s responsible?

• Everyone is

• Can not say “they told me to do this stupid shit”

• Should have said “this is stupid shit”!

Page 27: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Responsibility is hard

• Takes a while to accept that you are responsible

• “Why is this still broken?!”

• Because you did not fix it

• …or did not convince others to fix it ;)

Page 28: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

What does a lead do?

• First point of contact for the team

• Direction if things turn bad

• Has to be respected by the team!

Page 29: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Tech vs people lead

• Technical lead != people lead

• Very different skill sets!

• Too often career path for great coders is “be a people manager”

Page 30: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Can this really work?!• So far it does!

• github sounds similar

• http://zachholman.com/talk/how-github-no-longer-works/

• Valve sounds similar

• http://media.steampowered.com/apps/valve/Valve_NewEmployeeHandbook.pdf

Page 31: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Will this work?• We thought it would break down at

• 20

• 50

• 100

• …

• Some change happened, but not essence

Page 32: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Will this work at 1000?

• Who knows

• 1000 engineers probably too much for 1 product?

• But then, we thought 100 would be too much as well…

Page 33: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

But it’s unpredictable!

• Yes

• You can still guesstimate

• Our deadlines are self-imposed anyway

Page 34: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Tools: IM

• Skype right now

• Not ideal, but kind of works

• Good: sending files around

• Bad: discovery

• Alternatives: Hangouts, Hipchat, Campfire, IRC, …

Page 35: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Tools: Wiki

• Confluence

• It’s pretty good

• Google docs

• Excellent for realtime editing

• Guidelines, plans, status, docs, …

Page 36: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Tools: pairing

• TeamViewer

• Alternatives: Hangouts, Skype, RDP, …

Page 37: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Tools: planning

• Trello

• Asana, Greenhopper, Pivotal Tracker, Basecamp, MS Project (!)

Page 38: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

What did not work

• Mandatory Monday Meetings

• Supposed to be quick info & status updates

• Does not work at 15 offices

• Found them useless

Page 39: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

What did not work

• Trying to force everyone to “work harder”

• At some point progress felt slow

• Maybe people aren’t working hard enough?

• Was one of biggest fuckups we made

Page 40: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

People do work hard!• The slowdowns are due to inefficiency

• Automate

• Reduce duplication

• Better communication

• Better teaching & learning

• Get better HW/SW :)

Page 41: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

What did not work

• Trying same process for all teams

• “Everyone do Scrum from now on”

• Team sizes & composition is different

• Teams work on different things & schedules

Page 42: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Recap

• Do not force process

• Just let people do work

• You do give up some control

• It was an illusion anyway

Page 43: Lightweight Chaos - Aras' websitearas-p.info/texts/files/201312-BuildStuffLightweightChaos.pdfCommon things • Major feature releases each 2 months (wish)… 4-5 months (reality)

Well that’s it!Questions?