DEVELOPING IN PUBLIC
STORY TIME
▸ navigation team couldn't drive▸ system engineering checks were weak▸ informal communication channels
some communications channels among project engineering groups were too informal
too informal
NOT A SOFTWARE PROBLEM?
A HUMAN PROBLEM
HOW CAN WE DO BETTER?
SOFTWARE ARCHAEOLOGY
commit 9e3ce0965868f1e9af385951cf1e22960d0edf0dAuthor: Kevin Sawicki & Nathan Sobo <[email protected]>Date: Wed May 21 18:04:44 2014 -0600
Add thruster input
We need to take the thrust input from the propulsion bus and fire the thrusters accordingly
OK, maybe we've mostly solved this for code.
▸ Use version control▸ write good commit messages▸ use feature branches▸ the list goes on...
I GUESS MY TALK CAN BE OVER?
/NOPE
HERE'S A CLICHÉ
It's better to work together than to work alone
What if “together” is miles and hours apart?
What did she do yesterday?
What did I do yesterday?"
SOFTWARE!=
SOFTWARE DEVELOPMENT
SOFTWARE⊆
SOFTWARE DEVELOPMENT
[********] Coding [***] Communicating / coordinating [**] Reviewing code / PRs to merge [**] Runtime / CI / infrastructure [*] Long term project planning
SO
WHAT'S THE WORK?
(Here come some dirty words)
MANAGEMENT
POLITICS
Other people are your allies, in other words, but that alliance takes sustained effort to build. And you should
be prepared for that, not irritated by it.
Ed Catmull
DOCUMENTATION
TRANSCRIPTION
STARING OFF INTO SPACE DESIGN
Oh, and just one more thing...
CODING
SOME TOOLS
WIP PRS
ALWAYS BE PAIRING
CHATOPS
/ci status <repo>/<branch>/deploy team to stg
/graph me -10min @app-perf (or something)/procs unicorn/resque critical
/conns fe1/who's on call
WHY IS THIS STUPID CHAT BOT SO IMPORTANT?
What if we don't have a Hubot?
A SELF-REPORTING CULTURE
EMBRACE GOOD TOOLS
YOUR TOOLS=
YOUR OFFICE
BE PREDICTABLE
prefer communication
DON'T BLOCK
TELL ME WHY
TRULY PRODUCTIVE REMOTE WORK
FAST ONBOARDING
TRANSPARENT STRATEGIES
&#REALTALK
NO ONE GETS LOST
DEVELOP IN PUBLIC BECAUSE..
▸ it enables remote work▸ gets new people started fast
▸ teaches your teammates how your brain works▸ Exposes failure early enough to fix it
Daniel HengeveldSoftwaresman, GitHub
@thedanielthedaniel.github.io