thoughtbot: How we work
-
Upload
thoughtbot -
Category
Software
-
view
736 -
download
5
description
Transcript of thoughtbot: How we work
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
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 != Simpler
How we work
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: 1 / 2.2
• rubocop,sandi_meter,buzzword compliant
• Easy (and a pleasure) to work with
How we work
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
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
“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
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
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 brains uplift projects
How we work
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
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 Source”
Daily life
Sustainable pace
• Unlimited Paid Time Off
• Clients will alway have developers and designers soaked in their projects
• Employees don’t burn out
Daily life
“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
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
Use Your Own JudgmentOur One True Policy
Do What Makes You HappyOur happiness, and by extension, our clients’
This is how we work. !
Questions time!