Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

thoughtbot: How we work


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
  • Be the first to comment

thoughtbot: How we work

  1. 1. thoughtbot: How we work ! one thoughtbot project: Upcase
  2. 2. How we work At a high level: Playbook
  3. 3. How we work In more detail: guides
  4. 4. How we work All the gory details !
  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: • 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 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!