in
Forums
Blogs
DevExpress.com
Client Center
Support Center
DevExpress Channel

Gary's Blog

XAF – Distributed Pair Programming and Fast Prototyping

Using XAF recently reminded me of my Smalltalk days in the early ‘90s, more on why that was at the end of the post, but for now let’s talk about pair programming. You know about pair programming right? It’s a practice in eXtreme Programming whereby two programmers sit at the same keyboard and work on the same programming task. One concentrates on the strategic purpose of the task, the other (normally the ‘driver’) concentrates on the tactical aspects of getting the task done. Working this way, the theory goes, both together can be more productive than two programmers working separately and, to be fair, this is generally true.

I’ve been involved with agile since back in the mid ‘90s when I worked with DSDM at IBM and I’ve tried most agile practices, some I like and they work for me others, not so much. With paired programming however I’ve always managed to get the sort of productivity gains that have been advertised, I guess I’m just one of those types who works better collaboratively.  There is one area however, where paired programming can be a bit of a PITA and that is if the guy playing the “strategic role” can’t keep his mitts off of the “tactical role”, those are fun days.

The solution for this, I’ve found, is to pair with a subject matter expert. They have no problem keeping their mind fixed on the strategic goals, as it’s all they know, and they are happy to let you bash away on the keyboard and handle all the “tedious” tactical stuff. Okay, now I know that this is not the way paired programming is supposed to work and I know that doing this will mean that I lose some of the benefits of pairing, but it works for me and it gets the job done; which, at the end of the day, is what the Agile Manifesto is all about, right?

So, in general, that’s worked well for me in the past, back when I had a proper job cutting code. Now of course, I’m an evangelist for an American company and I work from home on the banks of the Tay in Scotland. How can I pair program now? Well, as it happens, there are tools that will help you do that if distributed paired programming is your thing. I found this out earlier this week when I had a conversation that went something like this…

Her: This sucks!
Me: Something in particular, or just everything in general?
Her: We have this information and it’s all locked up in places I don’t need it to be and that sucks!
Me: (Knowing what’s coming) Yeah, that certainly sounds sucky.
Her: What I really need is an app to handle all this…
Me: (Wincing) Hmmm…
Her: How long would it take you to work your XAF magic on this problem?
Me: Longer than I have to spend on it.
Her: Oh puuuleeeeeeeese! Besides, coding stuff is fun, you know it is.
Me: (damn she found my week spot) Okay, let’s do it!

Now as we don’t work together in an office “doing it” is a little more complex than her just moving her chair over to my desk, but there are tools that help. So we got on Skype so we could talk, and we started up SharedView so she could see my desktop and I fired up XAF so we could hack away and in under an hour we had a working prototype of an app that solved her problem.

So what’s my point? Twofold really, firstly, just because you are not co-located does not mean that you can’t work in an agile manor. Secondly, XAF is a cracking prototyping tool! So if you have XAF, even if you have no intention of using it to build your finished product for whatever reason, don’t forget that you can use it to build a prototype, in real time, whilst you sit down with your subject matter expert.

A fact, that brings us full circle. Remember I said, at the top of this post, that I’d been reminded of my Smalltalk days when using XAF? Well this is why. One of the first jobs I had as a Smalltalker was in a C++ shop, prototyping work that was to be carried out by the C++ devs? Why? well because with Smalltalk we calculated that I could get code up and running in around a fifth of the time that they could. You can get similar productivity gains by using XAF, so why not check it out?

Published Jul 02 2009, 01:09 PM by Gary Short (Developer Express)
Filed under:
Technorati tags: XAF

Comments

 

XAF – Distributed Pair Programming and Fast Prototyping « garyshort.org said:

Pingback from  XAF – Distributed Pair Programming and Fast Prototyping «  garyshort.org

July 2, 2009 9:58 AM
 

Richard Morris (Developer Express) said:

We used to get a five-fold productivity increases over C++ using Object Pascal back in the late eighties - with significantly less shooting of oneself in the foot.

July 2, 2009 12:33 PM
 

XAF ??? Distributed Pair Programming and Fast Prototyping – Gary's Blog | Fast 2 Learn Calling Cards said:

Pingback from  XAF ??? Distributed Pair Programming and Fast Prototyping – Gary's Blog | Fast 2 Learn Calling Cards

July 3, 2009 4:38 AM
 

Posts about Programming from google blogs as of July 3, 2009 « tryfly.com said:

Pingback from  Posts about Programming from google blogs as of July 3, 2009 «  tryfly.com

July 3, 2009 7:58 PM
 

Steve Sharkey said:

I know it makes me generally unpopular but I find that MS Access is an excellent prototyping tool - the only problem in this approach is that people want to pay for and use the prototype rather than the industrial strength (and more costly) dot net application. Then they will bemoan its unreliability and that becomes a "support issue" ie something the developer has to finance.

The problem with all prototyping tools is managing the "customers" expectations and getting them to understand that the first 80% of a project takes 80% of the time, the next 15% takes another 80% and the final 5% will take the next 80% of the time.... Oh and then of course you have to persuade them that the prototype hasn't even covered the first 80% of the project!

July 8, 2009 3:39 AM

Leave a Comment

(required)  
(optional)
(required)  
Verification code: Required
   
Add
Copyright © 1998-2010 Developer Express Inc.
ALL RIGHTS RESERVED