On Fri, December 8, 2006 9:43 am, Christopher Smith wrote:
> Lan Barnes wrote:
>> We has a group of developers at our work who went with XP with their
>> management blessing. As best I could tell, it was a recycling of the old
>> RAD concepts with all the same abuses. I also thought is was an attempt
>> to
>> recreate those halcyon days as undergrads when programming assignments
>> were _fun_!
>>
>> Some of the concepts like write the test first, small teams, and
>> constant
>> over-the-shoulder peer review are probably helpful in reducing errors.
>>
> All of XP's practices stem from "established best practices", so they
> are entirely recycled by nature, and that's not a bad thing. What XP
> does is a) advocate taking these established best practices "to the
> extreme" (i.e. past the point where you are starting to wonder if it is
> a net gain) and b) integrates these practices in to a system where each
> practice reinforces the other.
>
> So, on one hand it is a fad, but on the other it's just hanging a label
> on what people were already doing and being successful with. Since XP's
> introduction, it's become less fashionable, largely due to the fact that
> it doesn't scale to large teams (something proponents readily
> acknowledge). Instead we have "Agile" development practices which is a
> broader umbrella that includes XP as well as other methodologies that
> share a lot of similarities with XP, but with various tinkerings to make
> it work for large scale development. I've actually been trained in one
> such methodology ("Scrum"), and I have to say most of it struck me as
> "things we definitely should be doing".
>
> In general, "Agile" methods have been around and popular long enough now
> that I think the "fad" label no longer applies. Probably better to call
> it a "trend". "XP" might be called a fad, although it still seems to be
> pretty popular for small teams.
>
> --Chris
>First, I agree with everything you've said. Now for my "yeah but." I have always observed, going back to RAD, that these "new ideas" in programming can be wonderful advances if followed with the proper discipline. But all too often they become a fig leaf for programmers to abandon or avoid discipline. Programming is fun for programmers. Come to think of it, limited as I am as a developer, it's still fun for me, too. Disciplined development -- documentation, commenting (no, they're _not_ the same), proper unit testing, task-driven development etc -- is not so fun. Programmers, especially young ones, see these things as shackles on their creativity. Now if we take the venerable RAD system, we see much that is powerful and good. Prototyping, customer involvement, eliciting requirements in a real-world environment, and so on. But when it becomes an excuse for slapdash, whoopee, undergrad-bull-session programming practices; _and_ (as happened all too often) when the prototype(s) become the core of the development, or even worse, what is delivered; you will have an undocumented, bug ridden system that had its requirements grow like Topsy without any analysis. I bet everyone on this list over 40 can cite a personal experience in which that is exactly what happened. RAD. XP. Agile. Not much daylight between 'em. -- Lan Barnes SCM Analyst Linux Guy Tcl/Tk Enthusiast Biodiesel Brewer -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg
