Well that, and that the unsuspecting cooperative parts of the group are a lot easier to kill for their share of the meat than the live animals that supplied it...
Agile / XP worked great for the last project I was on for a few years. Before that I was on a few different ones using something approximating waterfall (small company, no named processes) but then I quit there and got on an XP project, with half the team in the U.K. and half in India (I was in India).
Overall, we developed software better and faster than anything I'd done before. I think the key to the agility was the whole team bought into it, with the business analysts doing their part to break requirements down into small enough chunks that the developers could develop them top to bottom in a single iteration. That gave them a good idea how the project was progressing and whether we, as a team, were creating software that would be usable by the end users. It was quick to change things if something was developed that ended up not being very usable (i.e. looked good with static screen designs, but sucked when actually used).
In general it worked best when the team was weighted with more senior developers than junior developers, as the senior ones had a lot more "let's get it done" attitude instead of "tell me how to do it" and "tell me what to do next".
Pair programming? Unit testing? Stand-ups? They all helped contribute, but I didn't see them as the core parts of what made the team function well. That was basically breaking down requirements into small chunks for easy changes.
Sure, it wasn't perfect, but it was a hell of a lot better than any other project I worked on before that.
I've told people that. I even once listed my occupation on my 1040 tax return as "Software Janitor" after I spent most of the year cleaning up other peoples' programming messes at work...
Bobs Teach Yourself Java 2 in Less Time Than Anyone Else Bobs Teach Yourself C++ in Less Time Than Anyone Else Bobs Teach Yourself C# in Less Time Than Anyone Else
Speed dial, memory, mobility! Those are pretty cool features for a featureless phone. I used phones for years without that sort of fancy stuff...
Well that, and that the unsuspecting cooperative parts of the group are a lot easier to kill for their share of the meat than the live animals that supplied it...
Agile / XP worked great for the last project I was on for a few years. Before that I was on a few different ones using something approximating waterfall (small company, no named processes) but then I quit there and got on an XP project, with half the team in the U.K. and half in India (I was in India).
Overall, we developed software better and faster than anything I'd done before. I think the key to the agility was the whole team bought into it, with the business analysts doing their part to break requirements down into small enough chunks that the developers could develop them top to bottom in a single iteration. That gave them a good idea how the project was progressing and whether we, as a team, were creating software that would be usable by the end users. It was quick to change things if something was developed that ended up not being very usable (i.e. looked good with static screen designs, but sucked when actually used).
In general it worked best when the team was weighted with more senior developers than junior developers, as the senior ones had a lot more "let's get it done" attitude instead of "tell me how to do it" and "tell me what to do next".
Pair programming? Unit testing? Stand-ups? They all helped contribute, but I didn't see them as the core parts of what made the team function well. That was basically breaking down requirements into small chunks for easy changes.
Sure, it wasn't perfect, but it was a hell of a lot better than any other project I worked on before that.
I've told people that. I even once listed my occupation on my 1040 tax return as "Software Janitor" after I spent most of the year cleaning up other peoples' programming messes at work...
And people think I'm kidding?
Or better yet...
Bobs Teach Yourself Java 2 in Less Time Than Anyone Else
Bobs Teach Yourself C++ in Less Time Than Anyone Else
Bobs Teach Yourself C# in Less Time Than Anyone Else