thoughtbot: How we work 
! 
one thoughtbot project: Upcase
How we work 
At a high level: Playbook 
http://playbook.thoughtbot.com/
How we work 
In more detail: guides 
https://github.com/thoughtbot/guides
How we work 
All the gory details 
https://github.com/thoughtbot/laptop 
! 
https://github.com/thoughtbot/dotfiles
Computer Setup 
• Mac OS (or Linux) 
• vim (or emacs or SublimeText) 
• tmux (or not) 
• homebrew, rbenv, PostgreSQL, etc....
How we work 
Quick & easy on boarding 
Strong Opinions, Loosely Held
Little to no Technical Debt 
• Refactor when needed 
• Software Design == Domain Models 
• Easier to understand 
• Easier ...
We don’t allow debt 
Daily life
Not even in migration scripts 
Daily life
Example: upcase.com 
• Started in 2008 (rails 2.1.1) 
• Now rails 4.1, perfect score in Code Climate 
• Code to Test Ratio...
Github PRs >> Chat 
• History and context preserved 
• # reviewers as we see fit (0 to >3) 
• When not “perfect”, discuss ...
TDD 
• No tests in spikes (that’s the point) 
• Otherwise Red, Green, Refactor 
• Suite should run in ~1 minute, each file...
“Typical” git workflow 
• Create a feature branch, open a Github PR, 
rebase frequently 
• Write good commit messages 
• S...
Automate allthethings! 
• Automated tests and code linters 
• Created houndci.com for coding standards 
• Automated deploy...
We have time to do it right 
Daily life
Projects/teams rotations 
• Every 2-6 months 
• Spreads knowledge 
• Diminishes tolerance to below-par solutions 
• Fresh ...
Flat Structure 
• A company by makers and for makers 
• No titles, more than designer/developer 
• Designers and developer...
When things go wrong… 
Daily life
We keep the right attitude 
Daily life
Sustainable hours 
• ~8 hour work days 
• No late timers in the office/social pressure 
• “If you want more, do Open Sourc...
Sustainable pace 
• Unlimited Paid Time Off 
• Clients will alway have developers and 
designers soaked in their projects ...
“Investment Fridays” 
• For yourself, the company, and the community 
• We widely share the work and what we learn 
• Non-...
We team up with our Customers 
• Don’t just write code and send bills 
• Help them polish business models 
• What do their...
Use Your Own Judgment 
Our One True Policy
Do What Makes You Happy 
Our happiness, and by extension, our clients’
This is how we work. 
! 
Questions time!
Upcoming SlideShare
Loading in …5
×

thoughtbot: How we work

1,571 views

Published on

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.

Published in: Software
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,571
On SlideShare
0
From Embeds
0
Number of Embeds
41
Actions
Shares
0
Downloads
8
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

thoughtbot: How we work

  1. 1. thoughtbot: How we work ! one thoughtbot project: Upcase
  2. 2. How we work At a high level: Playbook http://playbook.thoughtbot.com/
  3. 3. How we work In more detail: guides https://github.com/thoughtbot/guides
  4. 4. How we work All the gory details https://github.com/thoughtbot/laptop ! https://github.com/thoughtbot/dotfiles
  5. 5. Computer Setup • Mac OS (or Linux) • vim (or emacs or SublimeText) • tmux (or not) • homebrew, rbenv, PostgreSQL, etc. How we work
  6. 6. How we work Quick & easy on boarding Strong Opinions, Loosely Held
  7. 7. Little to no Technical Debt • Refactor when needed • Software Design == Domain Models • Easier to understand • Easier != Simpler How we work
  8. 8. We don’t allow debt Daily life
  9. 9. Not even in migration scripts Daily life
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. “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
  14. 14. 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
  15. 15. We have time to do it right Daily life
  16. 16. Projects/teams rotations • Every 2-6 months • Spreads knowledge • Diminishes tolerance to below-par solutions • Fresh brains uplift projects How we work
  17. 17. 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
  18. 18. When things go wrong… Daily life
  19. 19. We keep the right attitude Daily life
  20. 20. Sustainable hours • ~8 hour work days • No late timers in the office/social pressure • “If you want more, do Open Source” Daily life
  21. 21. Sustainable pace • Unlimited Paid Time Off • Clients will alway have developers and designers soaked in their projects • Employees don’t burn out Daily life
  22. 22. “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
  23. 23. 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
  24. 24. Use Your Own Judgment Our One True Policy
  25. 25. Do What Makes You Happy Our happiness, and by extension, our clients’
  26. 26. This is how we work. ! Questions time!

×