Categories
Uncategorized

Jeff Atwood on Pair Programming vs. Code Reviews

Guy pair programming with his cat. Cat: “You forgot a semicolon.” Guy:”Shizzle, my kizzle, I’m coding Ruby!”
Photo courtesy of Dav Yakinuma. Click to see it on its original page.

Jeff “Coding Horror” Atwood can’t help wondering if pair programming is nothing more than code review on steroids. Like me, he’s only tried code review and found it useful, but hasn’t given it a shot yet. I’ve done what you might call pair design, where another programmer and I sketched out how to tackle a problem, divvied the work between the two of us and then each went to our own machines to implement, but I haven’t done actual pair programming since Crazy Go Nuts University (and then, it was a matter of a shortage of terminals, not technique).

I understand the expounded benefits of pair programming on an intellectual level. If you view code reviews as being similar in spirit to using a compiler, then pair programming is analogous to working in an interpreting language with an interactive mode or REPL: the feedback comes at you, pronto!

It’s a harder sell on the emotional level. I consider myself a social and outgoing guy — something only reinforced by my work as a technical evangelist and from accordion busking — and even I like to “lower the cone of silence” and zone out when I’m coding. I think I could do a couple of hours’ worth of pair programming a day, but all day, day in, day out? I’ve got my doubts.

There’s also the matter of who you’d get paired up with. Would I have the patience to work with someone with less skill than me, or worse, who could code circles around me?

Jesus and secretary working together at a terminal
An unlikely pair programming team-up. But remember this: He died for your segfaults!
Click to see the site from which this image came.

Theory and practice being two different things, I should give pair programming a try.

Jeff concludes his article with a request to his readers for their experiences with both code reviews and pair programming, followed by this:

In the end, I don’t think it’s a matter of picking one over the other so much as ensuring you have more than one pair of eyes looking at the code you’ve written, however you choose to do it. When your code is reviewed by another human being — whether that person is sitting right next to you, or thousands of miles away — you will produce better software. That I can guarantee.

Links

Categories
Uncategorized

Not Yet!

Squishy cows

A number of people have been emailing me and asking when I’m going to write about my new job. If you really need to know now, feel free to ask me offline and I’ll tell you. If you can wait, I’ll start posting about it next week — my first day is Monday, November 26th.

Although tomorrow is my last day at the office (I’ve taken time off to go down to the States for Thanksgiving), I am officially Tucows‘ Tech Evangelist until 5 p.m. on Friday. I wouldn’t feel right writing about the new place until then.

Categories
Uncategorized

An MVC Framework for ASP.NET

Screenshot of example app written in the new ASP.NET-based MVC framework
Screenshot from an example app written using the upcoming MVC franework for ASP.NET.

Ruby has Rails, Python has Django and Turbo Gears and PHP has Symfony, Cake and the Zend Framework. Where is the MVC framework for ASP.NET? Scott “ScottGu” Guthrie has an answer

Two weeks ago I blogged about a new MVC (Model View Controller) framework for ASP.NET that we are going to be supporting as an optional feature soon. It provides a structured model that enforces a clear separation of concerns within applications, and makes it easier to unit test your code and support a TDD workflow. It also helps provide more control over the URLs you publish in your applications, and can optionally provide more control over the HTML that is emitted from them.

You’ll be able to start a new MVC web app in Visual Studio by selecting File -> New Project and then selecting ASP.NET MVC Web Application template to create a new web application using it. It’s compatible with any .NET unit-testing system (such as NUnit, MBUnit, MSTest and XUnit) and its deafult directory structure features three main directories named /Models, /Views and /Controllers — you get three guesses as to what goes in them. Easy setup of new projects, support for testing, a directory structure that gives you Rails deja vu — this should be an interesting project to follow.

Screenshot of example app written in the new ASP.NET-based MVC framework

Take a close look at the screenshot below and note the URL: it’s of the form /localhost/controller/action/id, an URL routing scheme that Rails coders should find very, very familiar:

Screenshot of example app written in the new ASP.NET-based MVC framework

I’m just skimming the surface here; Scott goes into considerably greater detail. I’ll be following the project with great interest and taking it for a spin once it becomes available to Visual Studio users.

Links