thoughtbot: how we work
DESCRIPTION
We presented at StackUp in NYC how we work. How does thoughtbot manage to build consistently high quality software? How does thoughtbot avoid any kind of Technical Debt? We explained how every day life looks like at thoughtbot, and linked to some of our online projects where we explain it in more detail.TRANSCRIPT
![Page 1: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/1.jpg)
thoughtbot: How we work !
one thoughtbot project: Upcase
![Page 2: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/2.jpg)
How we work
At a high level: Playbook
http://playbook.thoughtbot.com/
![Page 3: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/3.jpg)
How we work
In more detail: guides
https://github.com/thoughtbot/guides
![Page 4: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/4.jpg)
How we work
All the gory details
https://github.com/thoughtbot/laptop !
https://github.com/thoughtbot/dotfiles
![Page 5: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/5.jpg)
Computer Setup
• Mac OS (or Linux)
• vim (or emacs or SublimeText)
• tmux (or not)
• homebrew, rbenv, PostgreSQL, etc.
How we work
![Page 6: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/6.jpg)
How we work
Quick & easy on boarding
Strong Opinions, Loosely Held
![Page 7: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/7.jpg)
Little to no Technical Debt
• Refactor when needed
• Software Design == Domain Models
• Easier to understand
• Easier != Simpler
How we work
![Page 8: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/8.jpg)
We don’t allow debt
Daily life
![Page 9: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/9.jpg)
Not even in migration scripts
Daily life
![Page 10: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/10.jpg)
Example: upcase.com
• Started in 2008 (rails 2.1.1)
• Now rails 4.1, perfect score in Code Climate
• Code to Test Ratio: 1 / 2.2
• rubocop,sandi_meter,buzzword compliant
• Easy (and a pleasure) to work with
How we work
![Page 11: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/11.jpg)
Github PRs >> Chat
• History and context preserved
• # reviewers as we see fit (0 to >3)
• When not “perfect”, discuss
• If no good reason, improve
How we work
![Page 12: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/12.jpg)
TDD
• No tests in spikes (that’s the point)
• Otherwise Red, Green, Refactor
• Suite should run in ~1 minute, each file in an instant.
How we work
![Page 13: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/13.jpg)
“Typical” git workflow
• Create a feature branch, open a Github PR, rebase frequently
• Write good commit messages
• Squash / Rebase / Merge
• Delete feature branch
How we work
![Page 14: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/14.jpg)
Automate allthethings!
• Automated tests and code linters
• Created houndci.com for coding standards
• Automated deployments
• Automated scripts
• Aliases… you get the idea.
How we work
![Page 15: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/15.jpg)
We have time to do it right
Daily life
![Page 16: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/16.jpg)
Projects/teams rotations
• Every 2-6 months
• Spreads knowledge
• Diminishes tolerance to below-par solutions
• Fresh brains uplift projects
How we work
![Page 17: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/17.jpg)
Flat Structure
• A company by makers and for makers
• No titles, more than designer/developer
• Designers and developers work together
• There’s roles, we can switch as needed/preferred
How we work
![Page 18: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/18.jpg)
When things go wrong…
Daily life
![Page 19: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/19.jpg)
We keep the right attitude
Daily life
![Page 20: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/20.jpg)
Sustainable hours
• ~8 hour work days
• No late timers in the office/social pressure
• “If you want more, do Open Source”
Daily life
![Page 21: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/21.jpg)
Sustainable pace
• Unlimited Paid Time Off
• Clients will alway have developers and designers soaked in their projects
• Employees don’t burn out
Daily life
![Page 22: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/22.jpg)
“Investment Fridays”
• For yourself, the company, and the community
• We widely share the work and what we learn
• Non-billable time is investment time
Daily life
![Page 23: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/23.jpg)
We team up with our Customers
• Don’t just write code and send bills
• Help them polish business models
• What do their users want?
• How do we prioritize, then?
Daily life
![Page 24: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/24.jpg)
Use Your Own JudgmentOur One True Policy
![Page 25: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/25.jpg)
Do What Makes You HappyOur happiness, and by extension, our clients’
![Page 26: thoughtbot: How we work](https://reader031.vdocuments.us/reader031/viewer/2022020217/556243c4d8b42a3b078b5abb/html5/thumbnails/26.jpg)
This is how we work. !
Questions time!