Transcript
Page 1: thoughtbot: How we work

thoughtbot: How we work !

one thoughtbot project: Upcase

Page 2: thoughtbot: How we work

How we work

At a high level: Playbook

http://playbook.thoughtbot.com/

Page 3: thoughtbot: How we work

How we work

In more detail: guides

https://github.com/thoughtbot/guides

Page 4: thoughtbot: How we work

How we work

All the gory details

https://github.com/thoughtbot/laptop !

https://github.com/thoughtbot/dotfiles

Page 5: thoughtbot: How we work

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

How we work

Quick & easy on boarding

Strong Opinions, Loosely Held

Page 7: thoughtbot: How we work

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

We don’t allow debt

Daily life

Page 9: thoughtbot: How we work

Not even in migration scripts

Daily life

Page 10: thoughtbot: How we work

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

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

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

“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

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

We have time to do it right

Daily life

Page 16: thoughtbot: How we work

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

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

When things go wrong…

Daily life

Page 19: thoughtbot: How we work

We keep the right attitude

Daily life

Page 20: thoughtbot: How we work

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

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

“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

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

Use Your Own JudgmentOur One True Policy

Page 25: thoughtbot: How we work

Do What Makes You HappyOur happiness, and by extension, our clients’

Page 26: thoughtbot: How we work

This is how we work. !

Questions time!


Top Related