thoughtbot: how we work

26
thoughtbot: How we work one thoughtbot project: Upcase

Upload: thoughtbot

Post on 25-May-2015

736 views

Category:

Software


5 download

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

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!