tag:blogger.com,1999:blog-13831777.post7071482615321877482..comments2008-06-11T09:20:01.400-04:00Comments on Agile Development Thoughts: No Really, What is Agile?Damon Poolehttp://www.blogger.com/profile/16561311551267979837noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-13831777.post-85026625805787067802008-06-11T09:20:00.000-04:002008-06-11T09:20:00.000-04:00In response to the questions "what functionality c...In response to the questions "what functionality can be included in each release?" and "criteria for deciding what functionality to introduce in each release" :<BR/><BR/>Keep in mind that iterations and releases are not synonymous. You might have 6 iterations (or more) between releases. That said, each iteration should be shippable, so I'll answer your question as though each iteration was a release.<BR/><BR/>In any case, the single criteria for what to include in a release is business value. The content of an iteration is whatever the top business value is that will fit into the next iteration.<BR/><BR/>In most cases, that business value will be determined by a variety of factors including your business strategy.<BR/><BR/>In regards to interdependencies including the need to create foundation libraries first, Agile treats this issue a bit differently using something that is called incremental design, aka emergent design or iterative design or evolutionary design. There is more information in the following links:<BR/><BR/><A HREF="http://damonpoole.blogspot.com/2008/06/agile-adoption-stage-2-establishing.html" REL="nofollow">Agile Adoption Stage 2</A> See the section "The Backlog".<BR/><BR/><A HREF="http://damonpoole.blogspot.com/2008/05/iterative-design-of-lego-sports-car.html" REL="nofollow">Iterative Design of a Lego Sports Car</A><BR/><BR/><A HREF="http://martinfowler.com/articles/designDead.html" REL="nofollow">Is Design Dead?</A> Martin Fowler talking about evolutionary design.Damon Poolehttp://www.blogger.com/profile/16561311551267979837noreply@blogger.comtag:blogger.com,1999:blog-13831777.post-46077523679549750832008-06-10T20:19:00.000-04:002008-06-10T20:19:00.000-04:00Seems like the key to Agile development is determi...Seems like the key to Agile development is determining what functionality can be included with each release. This planning must include interdependencies and definition of 'core' functionality (i.e. code that other functions are built on). Maybe you have this somewhere, but criteria for deciding what functionality to introduce in each release would be helpful. Issues include: How solid is the requirement (vs subject to change), What interdependencies exist, etc..Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-13831777.post-48479602443384684552008-01-09T12:44:00.000-05:002008-01-09T12:44:00.000-05:00You may not like my definition of Agile. That's fi...You may not like my definition of Agile. That's fine with me. I don't like it either! I'm much more interested in discussing what Agile brings to the table than trying to nail down an exact definition. Sometimes I think that it may be pointless to define Agile development. It may be better to just talk about the concepts and the practices and say "these things are worth learning about regardless of what you call it or how you define the overarching concept." I still think it is worth a shot so as to establish a starting point for discussion. So, let's discuss the definition of Agile a bit and then move on to the nitty-gritty.<BR/><BR/>I've updated the original post to take some of the comments into account.Damon Poolehttp://www.blogger.com/profile/16561311551267979837noreply@blogger.comtag:blogger.com,1999:blog-13831777.post-4428303380276261152008-01-09T01:24:00.000-05:002008-01-09T01:24:00.000-05:00My thoughts exactly: You cannot define a methodolo...My thoughts exactly: You cannot define a methodology in terms of the benefits it is supposed to provide. <BR/><BR/>I guess this is a useful definition for Agile evangelists because with this definition every Agile project is successful (any project that is not successful is, by this definition, not Agile - hey presto, 100% success rates with the methodology!).<BR/><BR/>A further weakness of this approach to 'defining' Agile is its reliance on being better than other methodologies (i.e. all the points require getting better results than other methodologies would give). So, apparently you are Agile if you're getting better ROI than other methodologies. <BR/>With this definition Agile takes the high ground: 'Whatever methods you use, if its better than what you might have got using a different method, then you're on the Agile track.'. Right!TrevorTnoreply@blogger.comtag:blogger.com,1999:blog-13831777.post-56668645524097240922008-01-08T20:53:00.000-05:002008-01-08T20:53:00.000-05:00You basically said in your opening section (I'm no...You basically said in your opening section (I'm not reading further because what you said was so ridiculous) that if you are successful using Agile techniques then you are Agile, if you are unsuccessful using Agile techniques then you are not Agile.<BR/><BR/>Shall we define waterfall or traditional programming in the same way: they are only so if they are successful? This seems like an easy, and sleazy, way to redefine success in Agile's favour.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-13831777.post-68906636031415969952007-11-29T14:52:00.000-05:002007-11-29T14:52:00.000-05:00I think that the tendency to make out Agile as a "...I think that the tendency to make out Agile as a "cult" is a very clever tactic used to discredit the actual people in the trenches who have successfully used the methodologies. If you can't successfully engage with the ideas, it is much easier to stoop to personal attacks.<BR/><BR/>I think your description is spot-on, especially the piece that Agile relies on quality. Unmaintainable software is unmaintainable software, regardless of how it's been produced. Agile just relies on it's software being maintainable to deliver value Waterfall development never promises.<BR/><BR/>I usually attempt to communicate Agile development in terms of releases and communication. Waterfall development intends to deliver once, whereas Agile attempts to deliver periodically. This allows Agile to communicate what it is possible to accomplish before the next release with more accuracy than Waterfall, especially after the first release, and to honestly and openly shape development based on other people's priorities. Most manifestations of Agile development I've encountered share these features.<BR/><BR/>But this is the other thing; there is only so far you can generalize. XP went off in a completely different direction, but since then many threads and theories have spun off of it and gone in all different directions. To paint all of them with the same brush is to do both them and the methodology a disservice.Bethhttp://www.blogger.com/profile/10694032310385244509noreply@blogger.comtag:blogger.com,1999:blog-13831777.post-42447381013317031732007-11-28T13:25:00.000-05:002007-11-28T13:25:00.000-05:00"Many shops say they are Agile, but that doesn't m...<I>"Many shops say they are Agile, but that doesn't make it so...."</I><BR/><BR/>I think that's a good observation. <BR/><BR/>I've seen Waterfall shops that could care less about code reviews and test plan reviews, much less nailing down requirements with the customer, or changing requirements at the last minute and causing panic. They had layers and layers of bureaucracy and nobody of importance seemed to talked to each other. I call that seriously dysfunctional and a case of bad management.<BR/><BR/>On the other hand, I've seen Agile shops that could care less about story planning, much less nailing down requirements with the customer, or changing stories at the last minute and causing panic. They had layers and layers of bureaucracy and nobody of importance seemed to talked to each other. I call that seriously dysfunctional and a case of bad management.<BR/><BR/>I have read enough to know that the Agile Kool-Aid drinkers think they're immune to such concerns. Sadly, that is not the case. Instead, the Agile types keep moving the goalposts: "Oh, that's not Agile!" or "They're doing Agile wrong!"<BR/><BR/>Guess what? Eventually you'll move the goalposts so far that you'll hit the stands. <BR/><BR/>Enough big crappy companies with too much money and filled with dumb upper management will "try Agile" (they're already doing this) and where is your movement going to be when they totally bastardize it and projects fail? Well, Kent Beck and his gang started this movement with a huge failure of a project at a big company, but you always conveniently ignore that history. Perhaps in spite of that, Agile still seems somewhat immune to being looked at in a mocking manner except by Scott Adams.<BR/><BR/>Don't get me wrong there are a few good aspects to Agile, XP, Scrum, etc, but not enough to where I'd totally change philosophies and become a devotee and get baptized. But you people who are neck deep in the movement need to wake up and quit making excuses when the management of companies is turning your way of life on its head. Agile is on the verge of becoming a laughingstock, and already is in some arenas. Just try going to Slashdot and posting your nonsense. They can be quite vicious.<BR/><BR/>I suppose my point is: don't be afraid to be self-critical about Agile. Don't make excuses.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-13831777.post-85452805854894183262007-11-27T16:20:00.000-05:002007-11-27T16:20:00.000-05:00I think you've got it figured out but I tossed my ...I think you've got it figured out but I tossed my own two cents in too with YADFAD. I think one of the things that makes Accurev great is that the developers are the users and you guys think of stuff that helps others do their job. Kinda the eat your own dogfood thing. Thanks for sticking with this.<BR/><BR/>MikeMikehttp://www.blogger.com/profile/09264497793546775250noreply@blogger.com