<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Breaking the cycle of failed development projects</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx</link><description>It's been a bit over two weeks since I arrived back in Australia, and things are slowly coming together. We're still waiting for all of our stuff to arrive, and for that matter a place to put it all - but at least it's sunny every day, and I'm enjoying</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Breaking the cycle of failed development projects</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3052898</link><pubDate>Sun, 03 Jun 2007 05:01:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3052898</guid><dc:creator>Peter Ritchie</dc:creator><description>&lt;p&gt;I don't know where the term &amp;quot;Iron Triangle&amp;quot; comes from, but the cost/scope/time triangle (which usually contains &amp;quot;quality&amp;quot; in the centre) is a project management artifact and is termed the &amp;quot;Triple Constraint&amp;quot; in PMI-based project management circles.&lt;/p&gt;
&lt;p&gt;It's far from &amp;quot;iron&amp;quot;, it's meant to show that changing any of the three constraints(time, scope, or cost) without changing (or considering) the others *will* impact quality. &amp;nbsp;If none of the three constraints need to change you completed the project on time, on budget and in scope. &amp;nbsp;If any of those values are wrong then something must give.&lt;/p&gt;
&lt;p&gt;Agile recognizes that scope *can* (and usually does) and builds that into the process. &amp;nbsp;Processes (like waterfall) that assume scope doesn't change throughout project's life cycle are ignoring reality. &amp;nbsp;You just can't compete in today's market without accepting change and being responsive to it.&lt;/p&gt;
&lt;p&gt;There's nothing wrong with promising what will be done (the scope) at the end of a project (that's somewhat the point of any project). &amp;nbsp;It's unrealistic to expect scope, time, and cost won't change throughout the project life cycle, considering the PMI definition of &amp;quot;project&amp;quot; includes &amp;quot;create a unique product&amp;quot;, which implies some, if not all, the work has never been done before (in which case you can't possibly know how long it will take or the cost involve to deliver the scope).&lt;/p&gt;
&lt;p&gt;The benefit of Agile is that you've got fully functional deliverables at the end of each iteration. &amp;nbsp;This allows the project members to be able to accept change between iterations much easier than some methodologies because that change, in theory, will only affect future work and past work can still be used. &amp;nbsp;With some methodologies, accepting change at any point usually impacts all past work because of the inherent dependencies resulting from an all-at-the-end deliverable.&lt;/p&gt;
&lt;p&gt;Whatever iterative project management methodology that is used, it's always best to socialize status with the stakeholders when one of the constraints has been discovered to be wrong (i.e. it needs to change). &amp;nbsp;The earlier the stakeholders are informed and involved the least amount of pushback will be encountered.&lt;/p&gt;
&lt;p&gt;I've never been on a project where informing the customer that something has to give as soon as it is known has caused much grief. &amp;nbsp;Saying &amp;quot;We're sorry, but we've realized today that we just can't do what you want in the time-frame&amp;quot;. &amp;nbsp;Telling the customer close to the end delivery milestone that it can't be done is always going to garner the most pushback.&lt;/p&gt;
&lt;p&gt;If the project team is responsible for the cost/time based on the customer's scope and it's off by a lot, they should think about getting someone who knows better how to estimate. &amp;nbsp;If the customer is mandating all three constraints, I would explain that's just not possible.&lt;/p&gt;
&lt;p&gt;I don't think that most customers would really care what approach you use, they really just want to get what they asked for and be &amp;quot;in the loop&amp;quot; in the meantime. &amp;nbsp;Using Agile will allow you to be responsive to inevitable change with a minimal impact. &amp;nbsp;Again, if you're constantly telling the customer one or more of cost/time/scope needs to change, you've got a problem, regardless of whether you use Agile or not.&lt;/p&gt;
</description></item><item><title>re: Breaking the cycle of failed development projects</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3057088</link><pubDate>Sun, 03 Jun 2007 13:16:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3057088</guid><dc:creator>Casey</dc:creator><description>&lt;p&gt;Convincing customers to use Agile is one hurdle, the other is to actually make it work.&lt;/p&gt;
&lt;p&gt;I have just convinced our managers to let the next phase of our development work on an Agile basis (SCRUM + XP) using the most obvious trick ... I did a small project for them in an Agile fashion ... and it was delivered on time, with good functionality that closely matched the business owner's expectations, and most importantly, they felt involved.&lt;/p&gt;
&lt;p&gt;But from an internal [persepctive that works fine, doing it externally, that's a trickier issue... perhaps take the approach of 'we contract to you for 1 month on a rolling contract, at any point you don;t like what we are doing, you fire us and get someone else.&lt;/p&gt;
</description></item><item><title>re: Breaking the cycle of failed development projects</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3057291</link><pubDate>Sun, 03 Jun 2007 13:38:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3057291</guid><dc:creator>ploeh</dc:creator><description>&lt;p&gt;Over at Ative's blog, we had a pretty interesting discussion about the subject of dealing with fixed price projects in agile organizations. The discussion is mostly in the comments, but take a look: &lt;a rel="nofollow" target="_new" href="http://community.ative.dk/blogs/ative/archive/2007/01/08/Lean-Software-Development.aspx"&gt;http://community.ative.dk/blogs/ative/archive/2007/01/08/Lean-Software-Development.aspx&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>If your customer doesn't buy it, find another customer</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3066626</link><pubDate>Sun, 03 Jun 2007 21:23:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3066626</guid><dc:creator>Tim</dc:creator><description>&lt;p&gt;Agile delivery only works when both customer and supplier are totally bought into the process, due to the amount of trust and interworking required between both parties.&lt;/p&gt;
&lt;p&gt;I remember working on waterfall projects, when the whole thing was 95% done for months at a time. This leaves the customer extremely untrusting of the IT delivery team, as there is no change to measure.&lt;/p&gt;
&lt;p&gt;However, if you can persuade them to break down their requirements into prioritised stories, then you can show them, sprint on sprint, that their project is getting delivered, and that the delivery team is highly measurable. Plus you let them change their mind!&lt;/p&gt;
&lt;p&gt;I reckon that if you can persuade your customer to accept fixed time, fixed cost, and variable scope, with get out clauses if velocity is not measurable within a month then you are onto a winner. You have to allow time for estimation to stabilise within any given team.&lt;/p&gt;
&lt;p&gt;When they realise this allows them to change their mind about what they want mid project, they really need their heads examined if they still want to tell you a bunch of deliverables and come back 6 months later to failure. &lt;/p&gt;
&lt;p&gt;Is consistent delivery more important to your company than risking reputation on one project that you are sure will fail? If so, don't take on that project!&lt;/p&gt;
&lt;p&gt;You do need to persuade your business partners. Persuading them with techy jargon (XP, Continuous integration, TDD) etc won't help. You need a business metaphor, and Mary Poppendiecks Lean approach is just the ticket.&lt;/p&gt;
&lt;p&gt;Try this video for size - &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://www.infoq.com/interviews/poppendieck-lean-2007"&gt;http://www.infoq.com/interviews/poppendieck-lean-2007&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Breaking the cycle of failed development projects</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3068960</link><pubDate>Mon, 04 Jun 2007 01:12:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3068960</guid><dc:creator>Peter Ritchie</dc:creator><description>&lt;p&gt;Tim: why does Agile delivery only work if both sides buy into it? &amp;nbsp;The development team can continue to delivery complete and tested software at the end of every iteration.&lt;/p&gt;
&lt;p&gt;If the customer does nothing with any of the deliveries but the final delivery, worst case is the project was very organized and was able to accept change in an efficient way.&lt;/p&gt;
&lt;p&gt;No methodology prevents problems occurring from change, but some methodologies try to mitigate those problems by recognizing change and building its inevitability into the process to varying degrees.&lt;/p&gt;
</description></item><item><title>re: Breaking the cycle of failed development projects</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3069151</link><pubDate>Mon, 04 Jun 2007 01:30:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3069151</guid><dc:creator>Adi</dc:creator><description>&lt;p&gt;You still need to commit to specs:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://dotmad.blogspot.com/2007/06/agile-in-real-world.html"&gt;http://dotmad.blogspot.com/2007/06/agile-in-real-world.html&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>No, I mean it!</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3079477</link><pubDate>Mon, 04 Jun 2007 14:19:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3079477</guid><dc:creator>Tim</dc:creator><description>&lt;p&gt;Adi - specs bring in the money. Commit to them on an iterative basis. Deliver them on an iterative basis.&lt;/p&gt;
&lt;p&gt;Peter - If either side still belives that all of scope, cost and time can be fixed, then, as Tom points out, things probably will fail. Yes, the development team can use agile techniques without the customer, and this is a common pattern. But unless the customer has embraced the principle of flexible scope the chances of failure against one of the three constraints is still likely; though the visibility of impending doom through iterative delivery means that this can maybe me mitigated, as there are early warning systems in place.&lt;/p&gt;
</description></item><item><title>re: Breaking the cycle of failed development projects</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3079631</link><pubDate>Mon, 04 Jun 2007 14:39:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3079631</guid><dc:creator>Peter Ritchie</dc:creator><description>&lt;p&gt;Tim: I agree with &amp;quot;commit on an iterative basis&amp;quot;, that's the process of change control. &amp;nbsp;Committing to one spec at the onset of the project and not accepting change is a recipe for disaster.&lt;/p&gt;
&lt;p&gt;Agreed, if the customer does not embrace change and the project manager does not manage change then failure is eminent. &amp;nbsp;I've dealt with many clients that didn't want to deal with a formal process after the spec was baselined; but they weren't resistant to changing what the final product was when delivered (and almost 100% of them introduced change). &amp;nbsp;You have to manage change and CYA in a scenario like that; but the in-house development process can still be Agile. &amp;nbsp;I've never run into a client that didn't want to know about problems as early as possible. &amp;nbsp;Granted, if you're constantly informing them of problems with schedule or cost then you've got a problem with your development process...&lt;/p&gt;
</description></item><item><title>Re: Breaking the Cycle of Failed Development Projects</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3083307</link><pubDate>Mon, 04 Jun 2007 19:38:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3083307</guid><dc:creator>Jezz Santos</dc:creator><description>&lt;p&gt;Tom is back in the field again after an honourable stint at patterns &amp;amp;amp; practices, and asks in his&lt;/p&gt;
</description></item><item><title>re: Breaking the cycle of failed development projects</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3095614</link><pubDate>Tue, 05 Jun 2007 13:39:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3095614</guid><dc:creator>Simon Evans</dc:creator><description>&lt;p&gt;Your comments about tender situations is spot on. And really the only answer is educating the customer about the realities of how software is developed. In my experience, this is much easier if the customer is development facing themselves, but it can be extremely hard to convince decision makers. In reality, changes in software happen, and it is a question of how quickly you can convince someone else that this is the case.&lt;/p&gt;
&lt;p&gt;One further point. Alot of customers are used to software architects using analogies of designing buildings as a way of explaining how we develop software. I think this view causes confusion amongst customers when we try to sell Agile, because if the building analogy held true, you would have to use a waterfall method, unless you fancied knocking the building down several times.&lt;/p&gt;
</description></item><item><title>It's the Requirements, stupid!</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3106851</link><pubDate>Wed, 06 Jun 2007 04:10:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3106851</guid><dc:creator>Doug Ramirez</dc:creator><description>&lt;p&gt;IT projects that fail almost always fail due to a lack of defined Requirements. &amp;nbsp;After that, IT projects usually fail because Requirements aren't analyzed and managed. &amp;nbsp;Now before you start flaming me, note that I said ‘almost always’. &amp;nbsp;And besides you don’t want to flame me. &amp;nbsp;You won’t like me when you flame me ;-)&lt;/p&gt;
&lt;p&gt;Did you know that with a good set of requirements that are properly analyzed and managed, a good team of developers can use pretty much any methodology and will succeed. &amp;nbsp;And almost any technology that the team of good developers uses will not be a material factor in their ability to succeed. &amp;nbsp;I’ve been on project teams that have done fabulous things with Prolog, ANSI C, PHP, and I've also been on projects that fell flat on their face so hard using Java, C++, and C# that you probably felt the ground move when the plug got pulled.&lt;/p&gt;
&lt;p&gt;I don't mean to be flip about process, I take it very seriously, but the idea the development process, a subset of the SLDC, can make up for the failures of business case development, creating a meaningful vision, enumerating the features and quantifiable benefits of a solution, and detailed requirements for how they will satisfy the features which will ultimately allow a business to obtain their ROI, well it's impossible.&lt;/p&gt;
&lt;p&gt;Projects also fail because 'management' thinks developers writing code is like builders hammering lumber together. &amp;nbsp;Who knows what it is they're building, but since they are building then progress must be being made, right? &amp;nbsp;Oh wait. &amp;nbsp;I didn't was a 3 car garage, I wanted a 3 bedroom house. &amp;nbsp;Oh well...&lt;/p&gt;
&lt;p&gt;Doug&lt;/p&gt;
</description></item><item><title>re: Breaking the cycle of failed development projects</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3152637</link><pubDate>Fri, 08 Jun 2007 04:40:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3152637</guid><dc:creator>James Peckham</dc:creator><description>&lt;p&gt;As our CEO is infamous for saying &amp;quot;it's politics&amp;quot;. AKA &amp;quot;someone whined hard enough to get their way&amp;quot;. I've been learning and practicing Rational process, which is fairly iterative, but i don't know if it is considered 'agile'. The term 'agile' seems to be this catch-all phrase for a multitude of SDLCs and has become this giant buzzword for the staffing industry (that i work in) to the point where i want to puke every time i hear the word because it's inevitably misused or used without any idea of what it means.&lt;/p&gt;
&lt;p&gt;&amp;quot;The iron triangle&amp;quot;, does that reference come from the old triangle bells rang for 'dinner time', like on little house on the prairie? Obviously businesses who have no idea about the triangle have never participated in their own business projects! The one i'm in now for example has no 'business' projects, everything is 'each man for himself' and 'hope it comes together'. However, my last place of employment was so 'project triangle oriented' that it long since forgot about treating it's employees with any dignity, respect, or trust. We were all just one side of the triangle, the icky one too, cost.&lt;/p&gt;
&lt;p&gt;Since this blog post of yours seems to be a great rant, i'm going to continue my rant about businesses so focused on the project that they lose sight of the people involved. Where i was at the high level vp's, ceo, etc all created projects, those projects were a multitude of other little projects (basically a big project to delegate a bunch of little projects), which in turn became projects that delegated out a bunch of littler projects to people below them, and so and until finally the people at the bottom (our helpdesk) was the only team actually doing any of the real foot work on any of the projects... we did implementation, maintenance, software/hardware/network support, conversions, upgrades, recovery, training for the end users (rather the lack of training or documentation meant they called us for every little thing), we created our own support knowledge base, we weren't allowed to escalate to tier 3 support without a congressional appeal, and all of our reviews were completely subjective even though they were represented as being objective based on ridiculous statistics that incented the whole helpdesk to close issues before resolving them. Such as closing calls within 4 hours, getting penalized for escalating issues above the group (even if congress was in favor!), and more points for software than for hardware (causing hardware to get ignored).&lt;/p&gt;
&lt;p&gt;Anyhow, when you write out a project plan, plan all the way down to the lowest man on the pole to be sure everyone's doing their equal part!&lt;/p&gt;
</description></item><item><title>re: Breaking the cycle of failed development projects</title><link>http://blogs.msdn.com/tomholl/archive/2007/06/02/breaking-the-cycle-of-failed-development-projects.aspx#3152743</link><pubDate>Fri, 08 Jun 2007 04:48:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3152743</guid><dc:creator>james peckham</dc:creator><description>&lt;p&gt;TO DOUG:&lt;/p&gt;
&lt;p&gt;that's exactly the point tom was trying to make, each side wants to point the finger at eachother instead of taking responsibility.&lt;/p&gt;
&lt;p&gt;You say it's management's fault for you hammering on nails all day and them sitting complacently, but did you ever say &amp;quot;hey come look what we've built, is this what the users wanted?&amp;quot;&lt;/p&gt;
&lt;p&gt;RUP (which is agile and iterative i think) does formally say, &amp;quot;do a small iteration, build executable software, show it to your user, refine the requirements, do another iteration...&amp;quot; repeat until you get the end result that fits the user expectation.&lt;/p&gt;
&lt;p&gt;This is a process that takes responsibility and evenly distributes it across everyone involved via &amp;quot;Communication&amp;quot; and &amp;quot;Iteration&amp;quot;...&lt;/p&gt;
&lt;p&gt;flame on! :)&lt;/p&gt;
</description></item></channel></rss>