thoughtbot/guides — pull request #230 by croaky (2014-09-22 02:53:24+00:00)
Title: Add "Product Review" protocol before "Code Review"

Our core workflow has been:

* Work in feature branch.
* Open GitHub pull request for code review.
* Make changes based on teammate feedback.
* Merge into master.
* Push to staging.
* Get feedback on the product in-browser from teammates.

This generally works well.

However, when something isn't quite right with the product
and the developer needs to make changes,
the feedback loop is too slow.

Fast-moving startup teams may want to blame code reviews for causing problems.
However, fewer or sloppier reviews lead to
problems like bugs and hard-to-change code.
We still highly value code reviews.

Our hypothesis is that the root problem is that the steps are out of order.
What if we performed "Product Review" before "Code Review"?

![Product before Code](http://f.cl.ly/items/1k2b2T1b3v2O1d0A0p3z/Screen%20Shot%202013-05-19%20at%204.57.03%20PM.png)

Moving "Product Review" before "Code Review" in our core workflow
can be solved in different ways.

The most effective is when [teammates are available in person.
However, that's not always feasible.

Many teams value remote work due to teammates' choices of
where they want to live and when they want to work.

In the absence of *always* having teammates
who are *always* available in person,
we have [experimented with approaches] for about 18 months.

[experimented with approaches]: http://botcave.thoughtbot.com/ssh-tunnels-for-sharing-development-branches-in-browser-development-platform-as-a-service-and-more

This pull request captures the conclusions of the successful experiments.