Extreme experience?
Author
Discussion

GreenV8S

Original Poster:

31,021 posts

314 months

Monday 20th June 2005
quotequote all
I'm being encouraged to adopt the Extreme programming approach for a project. I've got significant misgivings, but I don't want to dismiss it out of hand. Has anyone tried Extreme in a commercial environment and got any experience, good/bad, strengths and weaknesses?

bga

8,134 posts

281 months

Monday 20th June 2005
quotequote all
I'm not really involved in it much but have been on projects where it has been used. It's a cop-out to say it but the results (from a testing and OD perspective) were very dependent on the quality of the PM and resources involved, rather than the approach.

theexcession

11,669 posts

280 months

Monday 20th June 2005
quotequote all
I've been reading a bit about this recently, sounds great in theory, but I live in a different Country to my fellow employees and our customers so 'pairing' is out of the question for me.

I'd guess that if you are in an environment where the whole team is together and everyone is suitably motivated that it could yield some good benefits.

I would love the opportunity to try it out, but hey, I can't remember the last anyone in our Company had time to do a peer code review so you can imagine what it's like from my perspective.

Still, would be really interested to read other people's point of view on this, ecpeccially those that are trying to put it into practice.

best
Ex

LaurenceFrost

691 posts

282 months

Monday 20th June 2005
quotequote all
I've never tried it, but one of my lecturers was very keen on it.

I think the ground rules vary slightly, but he outlined the following:

* Set hours - you all start and leave together. Not a minute of staying late.
* Brief informal standup meeting to begin the day.
* No music, so you can quickly aid others when they come up against a problem.

Sounds great in theory. Will be interesting to hear someones views who has actually tried it.

Mark.S

473 posts

307 months

Monday 20th June 2005
quotequote all
Worth investigating some of the other 'Agile' methodologies as well as XP. Have some involvement with SCRUM at the moment which has proved very successful for several projects lately.

Personally, I'd favour applying the best practices from a variety of Agile approaches, depending on the specifics of the project.

GreenV8S

Original Poster:

31,021 posts

314 months

Monday 20th June 2005
quotequote all
The points that are being emphasized to me are:

Prioritise the requirements and work on them strictly in priority order.

Do as little work as possible to meet each requirement. Don't plan ahead; solve the immediate problem fully and cleanly but with no regard at all to known or suspected future requirements (even if it's something you expect to be working on next week).

Provide extensive automated unit testing.

Refactor relentlessly.

To be honest I've got reservations about all of these and it sounds to me like a highly innefficient way of working, but I need to work out whether it is worth giving it a try. The person who's championing this has been doing it for years and claims it's the best thing since sliced bread. Problem is I hear that about so many RAD methodologies, and I'm skeptical.

Size Nine Elm

5,167 posts

314 months

Monday 20th June 2005
quotequote all
I've used some XP methodologies for a few years, and overall I really like the 'lightweight' process approach.

I haven't really done much buddy coding, but buddy checkins are very useful for picking up on issues/problems/assumptions/coding standards issues at the outset.

And I've always been a big big fan of refactoring relentlessly.

So I would go for it... it also leads to a lot of team communication instead of individuals working on their little bit, so there's a lot more systemic knowledge through the team.

I've refactored this post three times before posting it, but I don't really follow the regressija tesping lark.

Mark.S

473 posts

307 months

Tuesday 21st June 2005
quotequote all
The prioritised feature list (product backlog in SCRUM) is a godsend. It forces the project sponsors from the business to stop throwing useless feature requests at the team without impacting on another feature.

Unit testing and daily or continuous build processes (www.continuousintegration.net) you'll wonder how you did without them after a few months.

While I agree in principle with the idea of doing only whats necessary to fulfill the requirement, I'm less convinced that its wise to completely ignore an additional feature thats iminent on the backlog.

The short daily meetings advocated by SCRUM can also be very beneficial as it helps ensure issues are dealt with as soon as they arise, rather than being buried and biting back later.

www.agilescrum.com

SlidingSideways

1,345 posts

262 months

Tuesday 21st June 2005
quotequote all
GreenV8S said:

Provide extensive automated unit testing.


This only really works well if it's implemented at the beginning. We use JUnit on all projects now and it improves the quality of the code massivly.

ATG

23,803 posts

302 months

Tuesday 21st June 2005
quotequote all
GreenV8S said:
Do as little work as possible to meet each requirement. Don't plan ahead; solve the immediate problem fully and cleanly but with no regard at all to known or suspected future requirements (even if it's something you expect to be working on next week).
What is the rational for this? I'd guess it's along the lines of "the spec should tell you what to do, not developers' guess work. Time spent dreaming up and implementing fancy features is time wasted". That's all true, but it may risk encouraging a deliberatley narrow-minded interpretation of specs and it would have to be accompanied by an emphasis on always producing code that is elegantly written so that it can be extended in literally as yet unconsidered ways. Seems to me the discipline this approach requires may be unrealistic. Why actively ignore what you know is coming up next?

GreenV8S

Original Poster:

31,021 posts

314 months

Tuesday 21st June 2005
quotequote all
The philosophy seems to be that the requirements or priorities might change at any moment so you may end up never actually using that extra functionality you've built in. The approach seems to be to make no assumptions at all about future work, and just accept that this will cause some wasted work sometimes.

lanciachris

3,357 posts

271 months

Wednesday 22nd June 2005
quotequote all
My years commercial experience of this, doing everything by the book ie pair programming etc. was that it is far too dependent on tools available for the language and type of application, and that it produces quality work but less of total output. It would have needed a longer period to assess whether or not we would have saved time in the long run with less support. On a social view, it just taught me that my fellow developers were idiots.

theexcession

11,669 posts

280 months

Wednesday 22nd June 2005
quotequote all
lanciachris said:
On a social view, it just taught me that my fellow developers were idiots.

pmsl
Sorry, couldn't help but laugh at that.

best
Ex