Advantages of code review
Advantages of pre-deploy code review, over post-deploy audit:
- Authors have a strong incentive to craft small, well-formed changes that will be readily understood, to explain them adequately, and to provide appropriate test plans, test coverage and context.
- Reviewers have a real opportunity to make significant suggestions about architecture or approach in review. These suggestions are less attractive to adopt from audit, and may be much more difficult to adopt if significant time has passed between push and audit.
- Authors have a strong incentive to fix problems and respond to feedback received during review, because it blocks them. Authors have a much weaker incentive to address problems raised during audit.
- Authors can ask reviewers to apply and verify fixes before they are pushed.
- Authors can easily pursue feedback early, and get course corrections on approach or direction.
- Reviewers are better prepared to support a given change once it is in production, having already had a chance to become familiar with and reason through the code.
- Reviewers are able to catch problems which automated tests may have difficulty detecting. For example, human reviewers are able to reason about performance problems that tests can easily miss because they run on small datasets and stub out service calls.
- Communicating about changes before they happen generally leads to better preparation for their effects.
WordCamp Portland 2013 Call for Speakers. Git yer video applications in.
Mind is bursting with ideas of what the product could be, how we can identify and match the needs of users, and how to build it out. Loving the new challenge.
Automattic’s hidden tricks
Automattic has been particularly good at building an effective distributed company. Some pieces (e.g. P2) are obvious. Others are hard won and don’t get the limelight they deserve.
Matt’s Global Search (MGS). Now that I’m on the outside, MGS is the piece I miss most. MGS searches all Automattic P2s of all time. Ever wonder why something was done a certain way? Just search. You’ll likely find a thread from three years ago discussing the pros and cons of a half dozen approaches, and an explanation of why the fourth approach was picked. For the unacquainted, it takes some retraining to avoid asking a colleague every time you have a question. When you learn to search first, you become infinitely more capable (and ultimately end up in Barry’s good graces).
IRC for everything. IRC — you know, that really old technology like bulletin boards no one uses anymore? Yeah, it’s still really cool. It’s lightweight, you can use it on your desktop or phone, and it’s super hackable. You can pipe all sorts of things to IRC rooms. Like such as fatal errors… server load alerts… down notifications… When you couple your monitoring with IRC, it becomes a realtime health indicator of your platform, and an immediate point of collaboration for your team.
As I transition to my new role with Human Made’s increasingly distributed team, these tricks are at the forefront of my mind.
Markdown for P2. Simple implementation, and does exactly what you need it to. Content is saved to the database as Markdown for better or for worse.
Intercom. Super slick way to keep track of and talk with your users. Everything I envisioned for SupportFlow plus more. Human Made is using for WP Remote.
ircBot. Written in PHP with the hook and filters system ripped out of WordPress.
Interactive Vim tutorial. Even if you know the commands (of which I only have some memorized), this is a useful way to build muscle memory.
Sign I’m growing up: I was kicked out of the condo this evening for Leah’s book group.
I say it’s an excuse to drink wine. She says I’m being sexist, but she didn’t explain why having an excuse to drink wine is a bad thing.