Excerpts from Ryan McKay's message of 2015-08-02 19:59:14 -0500:
Hi Ryan,
I tried using the comments on your blog, but got frustrated by the interface.
The login lost whatever I wrote there; I'll try again here.
I think you're solving for a problem that's really bad in our industry. We're
not reviewing our designs early enough. I attribute this to a culture of
over-celebrating the power of pull requests. The interfaces of these tools
(GitHub, Stash) too often enable anti-social behaviors of engineers. A lot of
important social connections either don't happen at all or happen too late.
On the other hand, pair programming swings too far in the other extreme. Most
pairing I see has a nervous energy in which the pair is too focused on
short-term productivity. What results is often shallow hill-climbing and local
optimizations. It doesn't have to be this way; it just often is. I think this
is because a lot times programming just requires a bit of research and thinking
hard -- activities that don't always fit well into the pairing format.
The solution for me is what I think we all end up doing anyway, which is pair
designing rather than pair programming. The typing part of programming isn't
that interesting anyway. What's most important is types and invariants.
I'm guessing everyone will agree with all this, and perhaps I'm re-echoing
sentiments from your post.
I did have two nits:
1. I think you're perhaps getting too caught up in the 1-week sprint. Once a
problem is decomposed into small tasks, it's not that productive to force a
synchronization with weekly boundaries. It just creates an artificial process
that's not got a high chance of success. It's much more powerful for a
technical leader to set an expectation that work is reviewed early and often
without drowning the sentiment in process. Even better is to just lead by
example and hire towards the discipline.
2. You hinted at the idea that "architects" are a separate role from other
engineers. We have to tear down this false dichotomy. All engineers are
architects. I know you only mentioned it briefly, but it's a big problem I see
in a lot of non-small companies.
Hope this helps,
Sukant