Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
JavaRanch.com/granny.jsp
The moose likes Agile and Other Processes and the fly likes Using XP for offsite development Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCA/OCP Java SE 7 Programmer I & II Study Guide this week in the OCPJP forum!
JavaRanch » Java Forums » Engineering » Agile and Other Processes
Bookmark "Using XP for offsite development" Watch "Using XP for offsite development" New topic
Author

Using XP for offsite development

Varun Narula
Ranch Hand

Joined: Nov 19, 2001
Posts: 90
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.


There are only 10 types of people in this world; those who understand binary and those who dont<p>Varun Narula <br />SCJP, SCWCD, IBM-486 (UML)
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
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.)


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Mark Herschberg
Sheriff

Joined: Dec 04, 2000
Posts: 6037
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

Joined: Jul 11, 2001
Posts: 14112
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

Joined: Feb 17, 2003
Posts: 47
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.


JSF / Jini / Javaspaces / JDO - all rock in my opinion.
dave sag
Ranch Hand

Joined: Feb 17, 2003
Posts: 47
I should add that JUnit testing is the crucial part of XP that holds up brilliantly under isolated conditions.
Gavin Bong
Ranch Hand

Joined: Apr 25, 2003
Posts: 56
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

Joined: Jul 11, 2001
Posts: 14112
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

Joined: Nov 19, 2001
Posts: 90
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.
 
 
subject: Using XP for offsite development