Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Using XP for offsite development

 
Varun Narula
Ranch Hand
Posts: 90
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
How would one use XP for offsite development. XP gives a lot of emphasises on client interaction, but in offsite development, this interaction is rather restricted.
 
Ilja Preuss
author
Sheriff
Posts: 14112
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well, you simply can't do "pure XP" (whatever that would be) with a distributed team. You will have to replace much of the "hot" face to face communication happening in a colocated team (as recommended by XP) by less hot communication channels.
There is some material on how to preserve as much "XP-feeling" as possible in such disadvantageous circumstances available on the net: http://www.google.de/search?q=distributed+XP
Good luck! (And don't hesitate to ask further questions.)
 
Mark Herschberg
Sheriff
Posts: 6037
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well, couldn't you do offsite development so long as you had a customer out there with you? I agree that the team needs to be colocated, but they could be physically outside the parent company, right?
--Mark
 
Ilja Preuss
author
Sheriff
Posts: 14112
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Mark Herschberg:
Well, couldn't you do offsite development so long as you had a customer out there with you? I agree that the team needs to be colocated, but they could be physically outside the parent company, right?

Oh, yes, of course! :roll:
Two additional thoughts, though:
- the Customer also needs to be in regular contact to the actual users of the system, and
- the other stakeholders of the project (on customer and development side) need to stay informed.
Remember, C3, the original XP project, was cancelled because the projects investor and the Customer weren't aligned anymore.
 
dave sag
Ranch Hand
Posts: 47
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am an XP advocate who, for reasons too complex to go into here, is currently working out of their home office in Bulgaria for clients in Amsterdam. My co-workers are also in Amsterdam. This raises obvious challenges, many of which are addressed by the use of Instant Messengers and strict use of CVS, but Paired Programming has had to go out the window.
Having previously become quite used to working very closely with other developers the sense of isolation is the most extreme part of my programming. I feel like a character in a Philip Pullman book who has lost their daemon.
I feel that shared text editors, VNC, video chat could go a long way to addressing some of the issues I face. That would be easy if we were all working on the same platform, but I work on Mac, the other developers work on Linux and Windoze, and the client Windoze. I guess there is still no substitute for getting on a plane and thrashing out development issues face to face. If only for the higher bandwidth afforded by physical interaction.
So with no opportunity for paired programming, nor an onsite client, all I have left out of XP is the story game, which my clients don't like because it takes up their time. So in the absence of any aspects of XP, I am thinking of a totally new paradigm - which I call Directed Programming. DP attempts to draw on the lessons from XP but is more for solo developers working in isolation from their clients.
 
dave sag
Ranch Hand
Posts: 47
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I should add that JUnit testing is the crucial part of XP that holds up brilliantly under isolated conditions.
 
Gavin Bong
Ranch Hand
Posts: 56
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Dave,
.. but Paired Programming has had to go out the window.

Not so if your team use eclipse. Sangam is an eclipse plugin that allows you to pair program over the internet. I've never used it though.
I guess there is still no substitute for getting on a plane and thrashing out development issues face to face

Absolutely! For example, when we do reviews of our process at the end of projects; I hate it when the lead architect sends a list of good/bad points (and improvement suggestions) via email and then asks us to give our comments. I'd rather like it if people can just get together in a meeting room and thrash it out. Email is very impersonal in my opinion.
Cheers,
Gavin
 
Ilja Preuss
author
Sheriff
Posts: 14112
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by dave sag:
[...] but Paired Programming has had to go out the window.
[...]
I feel that shared text editors, VNC, video chat could go a long way to addressing some of the issues I face.

Yes. I've heard of teams doing so reporting "distributed pair programming" being still more productive than solo programming, though far from as productive as sitting at the same computer.
That would be easy if we were all working on the same platform, but I work on Mac, the other developers work on Linux and Windoze, and the client Windoze.

Well, *there are* crossplatform solutions for this - for example there is an eclipse plugin for pair programming: http://sangam.sourceforge.net/

I guess there is still no substitute for getting on a plane and thrashing out development issues face to face. If only for the higher bandwidth afforded by physical interaction.

Certainly...
I have left out of XP is the story game, which my clients don't like because it takes up their time.

Well, are they awake to the fact that the costs of the projects will increase significantly (respectively the value of the software decrease) because of this?
So in the absence of any aspects of XP, I am thinking of a totally new paradigm - which I call Directed Programming. DP attempts to draw on the lessons from XP but is more for solo developers working in isolation from their clients.

You might want to take a look at http://xp.c2.com/ExtremeProgrammingForOne.html
 
Varun Narula
Ranch Hand
Posts: 90
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A Customer Proxy - someone from the team who acts on behalf of the actual customer. He may be located anywhere when the entire team is distributed, but would have the same connectivity - VNC, video chat etc. as the rest of the team. The actual customer obviously would not be so tech savvy to get into all this.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic