interact with it, which makes switching between files and different regions
very, very fast.
It also helps that CodeFlow has
essentially become ubiquitous
throughout Microsoft. That’s because we used something like a viral
marketing strategy in that the moment you were added as a reviewer,
you received a notification, which allowed you to open the review by simply clicking on a link. Then the CodeFlow client would be installed and
the review would be opened. So, soon
after the tool was introduced to a
group, it would start to permeate the
fabric of that team pretty much all on
its own. The choice not to require a
special install for CodeFlow proved
to be a really good one.
LP: Is there anything in particular
from the user’s perspective that dis-tinguishes CodeFlow from either Git
or Gerrit? How would you say it differs
from what you find with pull requests
and patch set-based tooling?
CB: It comes down to being a native app rather than a Web capability,
meaning it enables much richer interactions than you would get otherwise.
I’ve been through the Git and the pull
request stuff, and it’s absolutely the
case that you can easily jump around
from comment to comment, and you
also get things that work like score
boxes. Which is to say they feel like rich
native clients, so I realize you can accomplish this with a Web experience.
As for Git and Gerrit code reviews,
what you get there just amounts to lists
of diffs. I mean, you also can add com-
ments, but, in the end, that just makes
it more difficult to track things or navi-
gate everything effectively.
So, the fact that CodeFlow is native
and is treated like a first-class citizen
on the desktop makes it more usable.
MICHAELA GREILER: I also really like
the richness of CodeFlow’s commenting features. You can, for example,
mark just a single character within a
line instead of calling out the whole
line of code. That way, people can
immediately see exactly where the issue is. Also, to this day, very few code-review tools let you span regions, but
with CodeFlow you can attach a comment at the same time to a number of
deleted lines and inserted lines—and
then track all of that through succeeding iterations. Another feature worth
pointing out is comment threading, which lets you resolve an entire
thread of comments at the same time
rather than dealing with each comment individually.
Code reviews generally conjure up
notions of troubleshooting. More
specifically, people tend to associate
them with the never-ending search
It turns out that is not nearly as
central to the code-review process as
you might think. Which is not to say
that finding bugs is unimportant or
discouraged. And yet it seems the real
win comes in the form of improved
long-term code maintainability.
While the popular
notion is that code
reviews are mostly
about finding bugs,
only a very small
studied actually had
anything to do with
bugs at all.