<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Building Better Software &#187; Agile</title>
	<atom:link href="http://www.stellman-greene.com/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stellman-greene.com</link>
	<description>because people want their software to work</description>
	<lastBuildDate>Sat, 05 Nov 2011 14:19:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Getting Agile Right</title>
		<link>http://www.stellman-greene.com/2011/11/05/getting-agile-right/</link>
		<comments>http://www.stellman-greene.com/2011/11/05/getting-agile-right/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 14:19:07 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/?p=620</guid>
		<description><![CDATA[Last week Jenny and I gave our new talk, Getting Agile Right [pdf], for the first time. We&#8217;re really excited, because it also marks our first public announcement of our current book project for  O’Reilly: a new book about agile development and project management. It&#8217;s aimed at people preparing for the PMI-ACP certification, but our goal is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stellman-greene.com/blog/wp-content/uploads/2011/11/Getting_Agile_Right_1.png"><img class="alignnone size-full wp-image-621" title="Getting_Agile_Right_1" src="http://www.stellman-greene.com/blog/wp-content/uploads/2011/11/Getting_Agile_Right_1.png" alt="" width="575" height="425" /></a></p>
<p>Last week Jenny and I gave our new talk, <strong><a title="Getting Agile Right - presentation slides" href="http://www.stellman-greene.com/Getting_Agile_Right.pdf">Getting Agile Right</a></strong> [pdf], for the first time. We&#8217;re really excited, because it also marks our first public announcement of our current book project for  <a href="http://www.oreilly.com">O’Reilly</a>: a new book about agile development and project management. It&#8217;s aimed at people preparing for the PMI-ACP certification, but our goal is to help anyone who&#8217;s interested in agile really understand the ideas behind it.</p>
<p>We talk to a lot of teams and help  them understand what’s gone right and wrong with their projects, and look for common patterns of project problems and failure (that&#8217;s what our <a title="Why Projects Fail" href="http://www.stellman-greene.com/Why_Projects_Fail.pdf">Why Projects Fail talk</a> [pdf] is all about.) People starting with agile often us about something that we call “better-than-not-doing-it results.” Basically, they adopt a bunch of great agile practices, and they see a clear improvement. It was definitely worth going agile, but something feels a little hollow about it. They were expecting the “astonishing results” and “hyper-productive teams” that they’d read about in agile books and blog posts, but there&#8217;s a feeling that at its core, the team hasn&#8217;t really changed how they do things, they just made incremental improvements.</p>
<p>I recently read <a href="http://www.coachingagileteams.com/about/">Lyssa Adkins</a>’ excellent book, <em><a title="Coaching Agile Teams" href="http://www.coachingagileteams.com/">Coaching Agile Teams</a></em>, and one of the really insightful things she points out is that “metaphor is a powerful thing.” Jenny and I put a lot of thought into coming up with a good metaphor to help explain what’s going on. We hit on a really good one: the story of the blind men and the elephant. <a href="http://en.wikipedia.org/wiki/Blind_men_and_an_elephant">I like the Jain version of the story (from Wikipedia)</a>:</p>
<blockquote><p>A Jain version of the story says that six blind men were asked to determine what an elephant looked like by feeling different parts of the elephant&#8217;s body. The blind man who feels a leg says the elephant is like a pillar; the one who feels the tail says the elephant is like a rope; the one who feels the trunk says the elephant is like a tree branch; the one who feels the ear says the elephant is like a hand fan; the one who feels the belly says the elephant is like a wall; and the one who feels the tusk says the elephant is like a solid pipe.</p>
<p>A king explains to them: &#8221;All of you are right. The reason every one of you is telling it differently is because each one of you touched the different part of the elephant. So, actually the elephant has all the features you mentioned.&#8221;</p></blockquote>
<p>So what does this have to do with agile teams having trouble getting past better-than-not-doing-it results?</p>
<p><a href="http://www.stellman-greene.com/blog/wp-content/uploads/2011/11/Getting_Agile_Right_31.png"><img class="alignnone size-full wp-image-625" title="Getting_Agile_Right_3" src="http://www.stellman-greene.com/blog/wp-content/uploads/2011/11/Getting_Agile_Right_31.png" alt="" width="575" height="860" /></a></p>
<p>Teams that get better-than-not-doing-it results from agile are often the ones who were already able to get software out the door reasonably well before starting with agile, and were hoping that agile adoption would help them get a real improvement. The problem is that before the team started adopting agile practices, they were experiencing problems—not the serious, software crisis problems that caused their projects to fail outright, but problems that caused friction and discomfort on the team. The source of these problems is something that we call a “fractured perspective”: the developers think about developer stuff, project managers think about project manager stuff, and they throw the code over the wall to a business user who thinks about business stuff. Everyone is really busy thinking about his or her own project work. There isn’t a lot of communication between people, and they’re really functioning as individuals working separately towards compatible goals, not as a team.</p>
<p>That&#8217;s where the Blind Men and the Elephant story comes in—it&#8217;s a good metaphor for how a team with a fractured perspective adopts agile. Each person sees the practices that impact his or her work. Developers concentrate on, say, test-driven development, refactoring, and automated builds. Project managers like task boards, project velocity, and burndown charts. Business users use release planning and user stories to get a better grasp on what the team is doing. Team leads use daily standups and retrospectives to manage and improve the team. Everybody wants something different from the project, and they each see a few practices that do something specific to help them.</p>
<p>And that’s definitely going to improve things, because agile practices are generally really good. The problem is that since everyone—developers, project managers, business users, and team leads—sees the project from a different perspective, they’ll concentrate on only those practices that immediately appeal to them. There’s a paradoxical effect (we call it, <em>“See! I was right all along”</em>) where each person now sees only the part of agile that affects his specific project work, and draws the conclusion that agile is all about getting everyone else to come around to his point of view.</p>
<p><a href="http://www.stellman-greene.com/blog/wp-content/uploads/2011/11/Getting_Agile_Right_2.png"><img class="alignnone size-full wp-image-622" title="Getting_Agile_Right_2" src="http://www.stellman-greene.com/blog/wp-content/uploads/2011/11/Getting_Agile_Right_2.png" alt="" width="575" height="425" /></a></p>
<p>But agile is more than just practices. In fact, that’s one of the core ideas behind agile: <strong>principles over practices</strong>. So while the agile “elephant” is made up of many great practices, the whole thing is greater than the sum of the parts. And if you only see practices—especially if you’re only looking at the practices that directly affect your project work—then you’ll only see one small piece of agile. The “elephant” of agile is made up of the practices day to day, but it’s much bigger than just those practices.</p>
<p>A team whose members only see the practices and don’t think about the principles will miss out on the important interactions between people. Their perspective stays fractured, and they stay separate and don’t really function as an effective team. They’ll still get their work done, but they miss out on the great team interactions and collaboration that make agile really work.</p>
<p>This is built into agile. If it’s been a while since you’ve had a look at the <a title="Manifesto for Agile Software Development " href="http://agilemanifesto.org/">agile manifesto</a>, open it up again and have a look at the very first value:</p>
<p>&nbsp;</p>
<blockquote><p><span style="font-size: xx-large;">Individuals and interactions</span> <span style="font-size: large;">over processes and tools</span></p></blockquote>
<p>&nbsp;</p>
<p>Processes, methodologies, and tools are still important (“…while there is value in the items on the right, we value the items on the left more.”). But even more important than specific practices are the individuals and interactions. It’s these values, and the <a title="Principles behind the Agile Manifesto" href="http://agilemanifesto.org/principles.html">twelve principles</a>, that show us how the practices work together, and serve as a guide for how teams adopt those practices.</p>
<p>That&#8217;s one of the lessons of our <a title="Getting Agile Right talk" href="http://www.stellman-greene.com/Getting_Agile_Right.pdf">“Getting Agile Right” talk</a> [pdf]. It’s also going to be one of the big themes in our upcoming book, due out from <a href="http://www.oreilly.com">O’Reilly</a> next year, about agile development, project management, and the new PMI-ACP agile certification. We’ll continue to make posts to help connect these dots and learn more about agile.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2011/11/05/getting-agile-right/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile testing and understanding change</title>
		<link>http://www.stellman-greene.com/2009/08/23/agile-testing-and-understanding-change/</link>
		<comments>http://www.stellman-greene.com/2009/08/23/agile-testing-and-understanding-change/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 17:18:49 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/?p=384</guid>
		<description><![CDATA[Tomorrow at the Agile 2009 conference, Abby Fichtner and Nate Oster are doing a workshop called Where Does Developer Testing End and Tester Testing Begin?. Jenny and I hope you can make it, because they&#8217;ll be doing a giveaway of autographed copies Beautiful Teams. Check out my O&#8217;Reilly Community posts for more information: Agile testing [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-118" title="What the..." src="http://www.stellman-greene.com/blog/wp-content/uploads/2007/12/what-the.png" alt="What the..." width="484" height="486" /></p>
<p>Tomorrow at the <a href="http://agile2009.com/">Agile 2009 conference</a>, Abby Fichtner and Nate Oster are doing a workshop called <a href="http://agile2009.com/node/3205"><em>Where Does Developer Testing End and Tester Testing Begin?</em></a>. Jenny and I hope you can make it, because they&#8217;ll be doing a giveaway of autographed copies  <span id="apture_prvw1"><span style="background-position: right -1349px;"> </span><a href="http://www.amazon.com/gp/product/0596518021"><em>Beautiful Teams</em></a></span>. Check out my <a href="http://oreilly.com/community/">O&#8217;Reilly Community</a> posts for more information:</p>
<ul>
<li><a href="http://broadcast.oreilly.com/2009/08/agile-testing-and-beautiful-te.html">Agile testing and Beautiful Teams (giveaway)</a></li>
<li><a href="http://broadcast.oreilly.com/2009/08/agile-testing-why-good-develop.html">Agile testing: why good developers resist great habits</a></li>
</ul>
<p>In that second post, I spend a little time talking about some of the reasons that programmers resist great practices like test-driven development. Writing that post reminded me of something that Jenny and I wrote about change in <a title="Applied Software Project Management" href="http://www.stellman-greene.com/aspm">Applied Software Project Management</a>:</p>
<blockquote><p><span style="color: #333399;">Many project managers—especially ones who have a technical background—tend to ignore the fact that their organizations are made up of people who need to be convinced of the importance of a change before they will adopt it. Some of these people will have an emotional or even irrational response to any attempt at change; it could take a sea change in the organization before they agree to it.</span></p>
<p><span style="color: #333399;">Irrational attitudes about software development usually boil down to two basic beliefs. First, people believe that most or all software projects are delivered late and delivered with many bugs, and that this is just a fact of life. Second, they believe that their organization is unique, and that the problems they are experiencing are particular to their organization and have never been seen before in any other organization.</span></p>
<p><span style="color: #333399;"> (This second belief may seem odd, considering the many thousands of software organizations around the world that have all used similar tools and techniques to fix very similar problems and make real, lasting improvements. It’s possible that the belief in uniqueness comes from the fact that the software being built truly is unique, in that it has never been built before; it’s not a leap to assume—incorrectly—that the software project and all of itsproblems are therefore also unique to that particular organization.)</span></p>
<p><span style="color: #333399;">Many times, resistance is not irrational at all. Anyone who has been through a change previously—possibly a passing management fad—that didn’t fix the problem (or failed outright) may be resistant to another change. It may seem unfair, but if people in your organization have previously gone through poorly planned changes, it will be harder for you to make changes of your own.</span></p>
<p><span style="color: #333399;">When you are introducing new tools, techniques, or practices in your organization, you may encounter resistance for a number of reasons. By exploring the feelings, fears, and justifications for resisting change that project managers commonly encounter, these reactions can be unraveled and understood.</span></p>
<p><span style="color: #333399;">— Stellman &amp; Greene, <a href="http://www.amazon.com/Applied-Software-Project-Management-Stellman/dp/0596009488/">Applied Software Project Management</a>, p206 (O&#8217;Reilly 2005)</span></p></blockquote>
<p>It&#8217;s really easy to forget about this when you&#8217;re pushing for a change, especially something that requires extra work and learning. (I had to learn that the hard way – hopefully you won&#8217;t have to!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2009/08/23/agile-testing-and-understanding-change/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Iterative development is not unplanned development</title>
		<link>http://www.stellman-greene.com/2009/07/16/iterative-development-is-not-unplanned-development/</link>
		<comments>http://www.stellman-greene.com/2009/07/16/iterative-development-is-not-unplanned-development/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 13:37:05 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Q&A]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/?p=298</guid>
		<description><![CDATA[I got a great question from a software developer who also happens to be a fellow CMU alum. I have a question related to managing scope creep with respect to “on-going”/iterative development processes. I’m currently managing a project where we’re redesigning my application&#8217;s primary workflow. Simply put, the app is currently designed to have users [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-118" title="What the..." src="http://www.stellman-greene.com/blog/wp-content/uploads/2007/12/what-the.png" alt="What the..." width="484" height="486" /></p>
<p>I got a great question from a software developer who also happens to be a fellow <a href="http://www.cs.cmu.edu/">CMU</a> alum.</p>
<blockquote><p>I have a question related to managing scope creep with respect to “on-going”/iterative development processes.</p>
<p>I’m currently managing a project where we’re redesigning my application&#8217;s primary workflow. Simply put, the app is currently designed to have users to signoff all items and we’re redesigning it to be exception-based (only require certain items to be signed off).</p>
<p>As we’ve progressed down the path of planned iterative development, a lot of good/new ideas for future enhancements/requirements spring up. I find myself regularly working with my users and “working group” to prioritize and analyze if any of these new ideas need to be considered to build sooner rather than later (and thus triggering plan adjustments or delays).</p>
<p>I often feel like I’ll end up delivering a product that does deliver the initial vision, but still doesn’t make my users happy, as they’ve already shifted their expectations to wanted the “next” thing (aka phase 2).</p>
<p>Do you have any other tips about how to manage this process?</p>
<p>I’ve used things like taking a timeline-style roadmap and adjusting it by overlaying the new requirements and shifting the timeline out. Do you have an recommendations of ways to present this type of information?</p>
<p>Curious your thoughts. Thanks.</p>
<p>— Seth L.</p></blockquote>
<p>Iterative software development can be a really useful—and highly effective—tool for software development, but it’s also one of the most abused tools I’ve seen. Even as recently as a few days ago, someone in charge of a software team that&#8217;s critical to his comapny came to me with the (incorrect) assertion that iteration just means diving into a prototype without talking to anyone or doing any investigation. Iteration done well can lead to very high quality software. But as Seth saw, iteration done poorly can lead to scope creep and serious planning issues.</p>
<p>Making your users “happy” means managing their expectations. They need to see exactly what you’re working on, and what’s coming next. If all people see is deadlines and they don’t have a sense of what’s going on, then they naturally start looking to the next deadline, because that’s all they see. The more visibility you can give them into the way you build software, the more understanding they’ll have – that’s just human nature.</p>
<p>There are a few things that work well for improving visibility into your project’s iterations. One of them is a <a href="http://www.mountaingoatsoftware.com/task-boards">task board</a>, which typically involves sticking index cards with your user stories or scenarios on a whiteboard or wall. This means that you actually need to have <a href="http://www.stellman-greene.com/2009/05/03/requirements-101-user-stories-vs-use-cases/">user stories or scenarios</a>. Scope creep is often an indication of a requirements problem, and getting consensus on at least the scenario level about exactly what’s going into the iteration. Having the index cards arrayed on a task board, with each index card showing the status (&#8220;planned&#8221;, &#8220;in development&#8221;, &#8220;completed&#8221;, &#8220;out of scope&#8221;) gives a lot more visibility into exactly what you’re building and how you’re building it. In a lot of ways, this is a sort of iterative development project plan.</p>
<p>Another way to prevent iteration-related scope problems is committing to delivering releasable code at the end of each iteration. Test-driven development (or, at least, developing complete unit tests) and continuous integration are effective ways to help make that happen. If your stakeholders are comfortable that you’ll deliver high-quality code at each iteration, they’ll feel less pressure to get the new features in immediately, and will be more willing to wait until the next iteration.</p>
<p>If this sounds like something that might help you, I definitely recommend reading the interview Jenny and I did with <a href="http://blog.mountaingoatsoftware.com/">Mike Cohn</a> for <a href="http://www.amazon.com/Beautiful-Teams/dp/0596518021/">Beautiful Teams</a>, who knows more about agile and iterative planning than pretty much everyone . He has a lot to say about effective iteration planning. There are pictures of task boards he’s used in the past.</p>
<p>That gets me back to the basic idea—one which I give Mike a whole lot of credit for helping people understand—that iterative development, especially in an Agile project, works best when we take the time to plan each iteration. It still faces the same problems: requirements need to be discovered, scope needs to be controlled, and progress needs to be communicated to everyone who cares about it&#8230; especially to anyone who can potentially make the developers&#8217; lives more difficult. That&#8217;s why the most successful Agile development projects collect requirements and document them using user stories (or other techniques for writing down what the software needs to do). They plan their progress using task boards, forecast them using calculations and charts like project velocity and burn down rates, and constantly keep any business owners and other stakeholders up to date on their progress.</p>
<p>It&#8217;s a great way to develop software, and it&#8217;s been really effective for a lot of teams. And I think it shows that iterative development does <em>not</em> necessarily mean unplanned development.</p>
<p>When I sent this to the developer who sent me the question, he had an interesting follow-up, which I thought deserved a response:</p>
<blockquote><p><em>So I’ve been digesting this a bit and I am curious to get your thoughts about adapting project management fundamentals into the often fluid process of app management. I manage a few virtual projects within </em><em>my company and at times have struggled to keep things focused as business demands and/or interests shift over time. Similarly, the “iterative” approach has helped to clarify requirements while building out new flows/apps, but as you pointed out can be very tricky to get “right”.</em></p></blockquote>
<p>It’s funny how often I hear people say, “Well, this project management stuff works in theory, but my project is fluid” (or “changing,” or “under too much pressure from the business,” or “critical,” etc.). It turns out that pretty much every project is challenging, and project management is set up specifically to deal with that kind of challenging project.</p>
<p>Here are two thoughts I had relating to this idea.</p>
<p>First, the iterative development model works very well, as long as you’re committed to delivering a high-quality product at the end of each iteration. Whether or not you develop using an iterative approach, you need to manage change: prevent unnecessary changes, and make sure you understand the impact of any change that you make. It also means that you need some sort of scope baseline, so that you know what is and is not a change. It’s faster and easier to update software on paper, before it’s written into code, so the more changes you can move to the “write it down and review it” phase of your project, the better.</p>
<p>And second, if your business is overly demanding, it often means that you could manage your stakeholders’ expectations better. Make sure you identify them – and write down their names and needs! – from the very beginning of the project. Talk to them… <em>a lot</em>. Make sure they’re in the loop. If possible, see them so often that they’re sick of seeing you. If they’re always aware of what you’re doing, there won’t be nearly as many surprises. Also, the more your stakeholders understand the details of the work that you’re doing, the more slack they’ll cut you when they ask you for changes. Often, when someone puts a lot of pressure on you to do the impossible, it’s because they don’t realize that’s what they’re asking.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2009/07/16/iterative-development-is-not-unplanned-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Requirements 101: User Stories vs. Use Cases</title>
		<link>http://www.stellman-greene.com/2009/05/03/requirements-101-user-stories-vs-use-cases/</link>
		<comments>http://www.stellman-greene.com/2009/05/03/requirements-101-user-stories-vs-use-cases/#comments</comments>
		<pubDate>Sun, 03 May 2009 18:13:59 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/?p=234</guid>
		<description><![CDATA[Here&#8217;s a question that I get over and over again: What&#8217;s the difference between user stories and use cases? — Ron K. Before I dive into an answer to that question, let&#8217;s rewind a little bit and talk about where user stories came from. I like them because they&#8217;re a great example of how the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-79" title="Writing requirements can be a challenge..." src="http://www.stellman-greene.com/blog/wp-content/uploads/2007/08/business-analyst.png" alt="Business Analyst" /></p>
<p>Here&#8217;s a question that I get over and over again:</p>
<blockquote><p><em>What&#8217;s the difference between user stories and use cases?</em></p>
<p style="text-align: left;"><em>— Ron K.</em></p>
</blockquote>
<p>Before I dive into an answer to that question, let&#8217;s rewind a little bit and talk about where user stories came from. I like them because they&#8217;re a great example of how the Agile movement changed the software world. Programmers used to just dive right into software projects and start coding. Whenever one of those pesky users started to tell us what they needed, we&#8217;d stop them and say something like, &#8220;Don&#8217;t worry, I totally get it. I know what you need.&#8221; The Agile folks figured out that &#8220;<em>I know what you need</em>&#8221; is a nasty little trap that programmers — especially good ones — fall into. We&#8217;d spend the whole project thinking that we understood our users&#8217; needs, only to deliver software that they didn&#8217;t want. The Agile folks realized that if developers had to start <a href="http://agilemanifesto.org/principles.html">working with users throughout the project</a> to understand their needs if they wanted to avoid the code-and-fix trap.</p>
<div id="attachment_30" class="wp-caption alignright" style="width: 192px"><a href="http://www.stellman-greene.com/aspm/"><img class="size-full wp-image-30" title="ASPM-Cover.jpg" src="http://www.stellman-greene.com/blog/wp-content/uploads/2007/04/aspm-cover.jpg" alt="" width="182" height="240" /></a><p class="wp-caption-text">Jenny and I teach you all about use cases and requirements in our first book, Applied Software Project Management (O&#39;Reilly, 2005).</p></div>
<p>And that&#8217;s why I think the user story is one of the most useful tools to come out of the Agile movement. A <a href="http://en.wikipedia.org/wiki/User_story"><strong>user story</strong></a> — some people call it a <strong>scenario</strong> — expresses one very specific need that a user has. It&#8217;s usually written out as a couple of sentences. Most user stories are written in the language of the users, so any user should be able to read a user story and immediately understand what it means. A lot of time, user stories are written on index cards, although I&#8217;ve put them in Word documents, Excel spreadsheets and Wiki pages (depending on how the particular project is run).</p>
<p>A <a href="http://www.stellman-greene.com/use_cases"><strong>use case</strong></a> is similar to a user story, because it also describes one specific interaction between the user and the software. When I&#8217;m training people to improve the way they write down their project&#8217;s requirements, I often describe the use case as a &#8220;deceptively simple tool&#8221; that helps us find and write down all of the ways users interact with the software.</p>
<p>Looking at those definitions, I can definitely see why there&#8217;s confusion about the difference between user stories and use cases. If you look at the last two paragraphs,  it might sound like I said the same thing twice! But while user stories and use cases are definitely similar, there are important differences between them. Each serves a distinct purpose, and I think they both have their place on a well-run software project.</p>
<p>I think the easiest way to understand the difference between use cases and user stories is to take a look at an example. Luckily, I&#8217;ve got one that I think helps make the difference clearer.</p>
<p>In our first book, <a href="http://stellman-greene.com/aspm">Applied Software Project Management</a>, Jenny and I spend a lot of time talking about how to develop use cases and use them to build better software. And as an example, we showed a use case for a software feature that everyone should be familiar with: a search and replace feature from a word processor. Comparing a user story for search and replace with a use case for the same feature helps highlight the differences.</p>
<p>It&#8217;s not hard to find lots of user story examples. There are lots of different ways you&#8217;ll see a user story formatted (although if you&#8217;re looking for a user story template, a 3&#215;5 index card should be a good starting point!). So what would a user story for search and replace look like? I took a stab at writing one:</p>
<p><a href="http://www.stellman-greene.com/blog/wp-content/uploads/2009/05/search-and-replace-user-story-card.png"><img class="alignnone size-full wp-image-235" title="Search and Replace user story on an index card" src="http://www.stellman-greene.com/blog/wp-content/uploads/2009/05/search-and-replace-user-story-card.png" alt="search-and-replace-user-story-card" /></a></p>
<p>(One thing I like to do with user stories is to use &#8220;he&#8221; or &#8220;she&#8221;, rather than try to be gender-neutral. I think this makes the user in the story easier to connect with by personifying him a bit. It it also lets me write in a more conversational tone, which makes the user story friendlier and, I think, a bit easier to read and understand.)</p>
<p>Now, if you&#8217;re not familiar with user stories, you might think to yourself, &#8220;Wait a minute, my word processor&#8217;s search and replace feature does a lot more than that!&#8221; And that&#8217;s okay. A typical user story will have enough information to help the user understand what it is the software needs to accomplish, but it&#8217;s not meant to be a complete description of how the software works. I&#8217;m not going to try to give a long lesson in writing effective user stories here; I highly recommend reading <a title="Mike Cohn on user stories" href="http://www.mountaingoatsoftware.com/articles?tag=user%20stories">Mike Cohn&#8217;s excellent articles and posts aboout user stories</a>. (Mike, incidentally, is one of the software development veterans who contributed to our latest book, <a title="Beautiful Teams" href="http://oreilly.com/catalog/9780596518028/index.html">Beautiful Teams</a> [O'Reilly, 2009]. He has some really fascinating things to say about Agile planning.)</p>
<p>So what would a use case sample look like for search and replace? Here&#8217;s the use case example Jenny and I built to demonstrate how use cases work:</p>
<table border="1">
<tbody>
<tr>
<td><strong>Name</strong></td>
<td><strong>UC-8: Search and Replace<br />
</strong></td>
</tr>
<tr>
<td>Summary</td>
<td>All occurrences of a search term are replaced with replacement text.</td>
</tr>
<tr>
<td>Rationale</td>
<td>While editing a document, many users find that there is text somewhere in the file being edited that needs to be replaced, but searching for it manually by looking through the entire document is time-consuming and ineffective. The search-and-replace function allows the user to find it automatically and replace it with specified text. Sometimes this term is repeated in many places and needs to be replaced. At other times, only the first occurrence should be replaced. The user may also wish to simply find the location of that text without replacing it.</td>
</tr>
<tr>
<td>Users</td>
<td>All users</td>
</tr>
<tr>
<td>Preconditions</td>
<td>A document is loaded and being edited.</td>
</tr>
<tr>
<td>Basic Course of Events</td>
<td>
<ol>
<li>The user indicates that the software is to perform a search-and-replace in the document.</li>
<li>The software responds by requesting the search term and the replacement text.</li>
<li>The user inputs the search term and replacement text and indicates that all occurrences are to be replaced.</li>
<li>The software replaces all occurrences of the search term with the replacement text.</li>
</ol>
</td>
</tr>
<tr>
<td>Alternative Paths</td>
<td>
<ol>
<li>In Step 3, the user indicates that only the first occurrence is to be replaced. In this case, the software finds the first occurrence of the search term in the document being edited and replaces it with the replacement text. The postcondition state is identical, except only the first occurrence is replaced, and the replacement text is highlighted.</li>
<li>In Step 3, the user indicates that the software is only to search and not replace, and does not specify replacement text. In this case, the software highlights the first occurrence of the search term and the use case ends.</li>
<li>The user may decide to abort the search-and-replace operation at any time during Steps 1, 2, or 3. In this case, the software returns to the precondition state.</li>
</ol>
</td>
</tr>
<tr>
<td>Postconditions</td>
<td>All occurrences of the search term have been replaced with the replacement text.</td>
</tr>
</tbody>
</table>
<p>Now, if I were a developer building a word processor or text editor, I&#8217;d actually be able to write a search and replace feature that implements that particular use case. (Just to be clear: there are many different use case formats; Jenny and I use this use case template in our book because it&#8217;s stripped down to the bare minimum sections that we think an effective use case should have.)</p>
<p>Here&#8217;s something about use cases that I think is interesting. While you were reading through our use case example, were you thinking of something that looks like the <em>Replace</em> dialog in Notepad or Microsoft Word, or the <em>Find</em> dialog in TextEdit? If so, take another look at the sample use case. It doesn&#8217;t have any words like &#8220;window,&#8221; &#8220;button,&#8221; &#8220;click,&#8221; &#8220;field&#8221; or &#8220;checkbox&#8221;. It&#8217;s all about what actions the user takes, and how the software responds. And there are many different ways that you could build software that implements the use case. Have you ever used the <a href="http://hacktux.com/vi/replace">search and replace feature in vi</a>? What about the <a href="http://www.redantigua.com/c-emacs-beginner.html#searchreplace">search and replace feature in Emacs</a>? They have very different user interfaces! Who knew there were so many ways you could implement search and replace? But if you compare each of them with this use case, they all follow the same basic course of events.</p>
<p>So now that we&#8217;ve gone through the use case and user story examples, what&#8217;s the difference between user stories and use cases? Here&#8217;s what I think are some of the key differences:</p>
<ul>
<li><strong>User stories are about needs.</strong> When you write a user story, what you&#8217;re describing is a &#8220;raw&#8221; user need. It&#8217;s something that the user needs to do in his day-to-day job. If you never build any software for him, then that need will still exist!</li>
<li><strong>Use cases are about the behavior you&#8217;ll build into the software to meet those needs.</strong> A developer who needs to build working software should be able to read a use case and get a good sense of what the software needs to do. It typically has a lot of detail, and describes everything that the developer needs to build in order to meet the user&#8217;s need. That&#8217;s why it needs to have a lot more detail, and be clear and unambiguous.</li>
<li><strong>User stories are easy for users to read.</strong> When you write a user story, what you&#8217;re concentrating on is writing something that anyone can understand, in the language of the users. We all know that developers have a lot more patience for talking about details of the software they&#8217;re building than users do, which is why user stories have to be brief. A user story needs to express a complete thought in just a couple of sentences. (That&#8217;s also why it&#8217;s good to put them on index cards: somehow, that makes it clearer that it&#8217;s self-contained and independent of the other user stories.)</li>
<li><strong>User cases describe a complete interaction between the software and users (and possibly other systems).</strong> When you&#8217;re doing use case analysis, what you&#8217;re doing is <em>designing a functional solution</em> that meets the users&#8217; needs. It needs to be something that developers can implement. It&#8217;s possible that one user story could spawn several use cases. And when you combine all of your use cases into one use case document, you&#8217;ll end up with a complete description of every interaction between the user and the software that you&#8217;re planning on building. And if your software has to interact with multiple systems, you may end up treating those other systems as actors in your use case.</li>
</ul>
<p>Once you get a sense of how user stories and use cases differ, you can start to see what purpose they can serve on your project. And if you only use user stories, or if you only use cases, then maybe on your next project you can try using them both.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2009/05/03/requirements-101-user-stories-vs-use-cases/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Some great questions about PMP and Agile development</title>
		<link>http://www.stellman-greene.com/2007/12/06/some-great-questions-about-pmp-and-agile-development/</link>
		<comments>http://www.stellman-greene.com/2007/12/06/some-great-questions-about-pmp-and-agile-development/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 21:18:52 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[PMP]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/2007/12/06/some-great-questions-about-pmp-and-agile-development/</guid>
		<description><![CDATA[Jenny and I are doing a really nifty Q&#38;A on the JavaRanch Saloon. People are asking us all sorts of great questions about Head First PMP, and we&#8217;re doing our best to answer every single one of them. We&#8217;ve gotten a lot of really good questions about Agile and how it works with PMP. It [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.stellman-greene.com/blog/wp-content/uploads/2007/12/what-the.png" alt="What the…" /><br class="webkit-block-placeholder" />Jenny and I are doing a really nifty Q&amp;A on the <a href="http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&amp;f=42&amp;t=001042">JavaRanch Saloon</a>. People are asking us all sorts of great questions about <a href="http://headfirstlabs.com/PMP" title="Head First PMP">Head First PMP</a>, and we&#8217;re doing our best to answer every single one of them. We&#8217;ve gotten a lot of really good questions about Agile and how it works with PMP. It looks like some people assume that there&#8217;s some basic conflict between running an Agile shop and how a PMP certified project manager might typically run a project. Some of the questions were really good, and I think some of our regular readers would be interested in the answers I came up with. So here are a few of the best questions and answers from the forum in the last couple of days.</p>
<p>&nbsp;</p>
<p><a href="http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&amp;f=42&amp;t=001065"><strong>HF PMP: how does it fit with Lean Software Development&#8230;</strong></a></p>
<p><em>Gian Franco asked:</em></p>
<blockquote><p>How does PMP fit with practices as explained in Lean Software Development (by Poppendieck) or Agile practices in general?</p></blockquote>
<p>I wrote a blog post about this a while back called <a href="http://www.stellman-greene.com/2007/04/27/what-about-agile/">&#8220;What About Agile?&#8221;</a></p>
<p><a href="http://www.stellman-greene.com/2007/04/27/what-about-agile/">http://www.stellman-greene.com/2007/04/27/what-about-agile/</a></p>
<p>There are definitely a lot of things that the PMBOK(r) Guide and PMP exam cover that aren&#8217;t addressed at all with Agile &#8212; like whether a fixed price contract is better or worse for the seller than a cost-plus contract. But there&#8217;s one really important way that both the PMBOK(r) and Agile are very similar: they both recognize that managing change is an important part of a successful project. And in that respect, you&#8217;ll definitely find that your knowledge of Agile can help you when you study for the PMP exam.</p>
<p><em> And Gian had a follow-up question:</em></p>
<blockquote><p>Well :), let me put it in another way&#8230;, In Lean SW development requirements churn is considered to increase costs, I don&#8217;t know much about PMP, but suppose it resembles to Prince2 (another comparable projectmanagement method) then the initial phases of specification might fall in this category of specifying too much too early.</p></blockquote>
<p>The PMBOK(r) Guide was developed so that it can be applied to any kind of project, not just a software project. So projects that fit into its framework tend to develop all of the requirements up front, <strong>before</strong> any work begins. That&#8217;s because all of the plans for the submarine or office building need to be finalized and agreed upon before you hire the construction crew to break ground.</p>
<p>There will be changes that happen. But if those changes involve very large alterations to the blueprints and you need to tear out the last three floors you put in, it gets very, very expensive.</p>
<p>Oddly, the same is true of software in many cases. There are some changes that need to be made, and which you could have found had you &#8220;churned&#8221; through the requirements a little more before you started building the software, and now you&#8217;ve got a bunch of code you need to tear out &#8212; and it would have been a lot more efficient to take the time up front to figure out the requirements and then only build your software once. Unfortunately, many people don&#8217;t consider that &#8220;Agile&#8221;. (I think they&#8217;re wrong &#8212; I think that doing a lot of iteration before you even start writing code can be the most efficient and customer-focused way that you can build software&#8230; but that&#8217;s a story for another day.)<a href="http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&amp;f=42&amp;t=001078"></a></p>
<p>&nbsp;</p>
<p><a href="http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&amp;f=42&amp;t=001078"><strong>HF PMP: PMP is Agile!</strong></a></p>
<p><em>Darya Akbari asked:</em></p>
<blockquote><p>Can one say that PMP is not agile  :) ?</p></blockquote>
<p>That&#8217;s an interesting question. But I&#8217;d ask the opposite question: can an Agile shop fit into the PMBOK(r) Guide framework?</p>
<p>The reason is that the PMBOK(r) Guide doesn&#8217;t define one specific set of doing things. In fact, just the opposite. It says that you need to select a particular methodology based on what you know about your industry and past projects, the specific needs of the project, the deadline and milestones, etc. It doesn&#8217;t say that every project needs to include specific things. Instead, it includes things that typically happen on most projects &#8212; and practices that are most commonly found. And remember, the PMBOK(r) Guide doesn&#8217;t just apply to software: it needs to be general enough so that it can include practices for construction, industrial, civil engineering, electrical and other kinds of projects.</p>
<p>So can a typical Agile process fit into the PMBOK(r) Guide? As far as I can tell, the answer is yes. One hint is that when Jenny and I were working on &#8220;Head First PMP&#8221;, the PMBOK(r) Guide team members on our technical review team repeatedly stressed iteration and iterative development.</p>
<p>One of the strongest points in the PMBOK(r) Guide (ones that is stressed on the PMP exam) is that it really emphasizes collaboration with the stakeholders, and keeping them in the loop on all important decisions. Another thing that it really stresses is responding to change &#8212; and it&#8217;s very clear that the customers need to be involved in decisions about change.</p>
<p>There are definitely some things that Agile people might not agree with. It may seem very documentation-heavy, and very concerned with contracts. But the PMBOK(r) Guide was developed in a world where subcontracting is very important, and where a lack of documentation or attention to the contract can mean that the company can get sued and go out of business. I&#8217;ve spent a lot of time working in a consulting situation, and even the friendliest clients can turn into adversaries if you don&#8217;t have everything documented properly. But if you go back to the Agile manifesto, you&#8217;ll see &#8220;Individuals and interactions over processes and tools,&#8221; &#8220;Customer collaboration over contract negotiation,&#8221; and &#8220;Working software over comprehensive documentation&#8221;. While the PMBOK(r) Guide highly stresses individuals and interactions, customer collaboration, and working software (in the form of deliverables that meet the customer&#8217;s needs). But it needs to pay attention to processes and tools (since that&#8217;s what a framework is made of), contract negotiation (because a process is no good if it puts your company out of business), and comprehensive documentation (because it&#8217;s really hard to build a strip mall or highway overpass without it).</p>
<p>&nbsp;</p>
<p><strong><a href="http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&amp;f=42&amp;t=001081">HF PMP question: SCRUM?</a></strong></p>
<p><em>Rogerio Kioshi asked:</em></p>
<blockquote><p>I&#8217;ve read about SCRUM. Does PMP have anything to do with this metodology?</p></blockquote>
<p>The PMP exam won&#8217;t have any questions specifically about SCRUM. But if you have a good understanding of SCRUM, then that will give you a good leg up on studying for the PMP exam. The reason for this is that if you&#8217;ve spent time thinking about SCRUM, then you probably have a good understanding of a lot of the ideas behind team communication, project schedule constraints, and activity sequencing, and those are core concepts that you need to understand to become PMP certified.</p>
<p>You&#8217;ll still have studying to do, though!</p>
<p>&nbsp;</p>
<p><a href="http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&amp;f=42&amp;t=001082"><strong>Need advice on HOW to start a new Software Product</strong></a></p>
<p><em>This isn&#8217;t a question about Agile specifically, but it&#8217;s still a great question. </em><em>Paul Michael Laborte asked:</em></p>
<blockquote><p>I hope this doesn&#8217;t sound too off topic. Anyway here it goes&#8230;</p>
<p>I&#8217;m currently a software developer with a Monday to Friday job.<br />
Right now, I&#8217;m looking for opportunities which would allow me to have a 20% time (pretty much like google).</p>
<p>During that 20%, I&#8217;m thinking of developing my own software product.<br />
I would be needing to wear different hats so I really think HFPMP would be of great value.</p>
<p>Aside from the contents of the book, would you have any other tips for entrepreneur aspirants like us</p></blockquote>
<p>That&#8217;s a really interesting question. How do you start out a software project?</p>
<p>Well, if you want to get your project started out right, the first thing you need to do is figure out what it is you want to build. That might sound a little odd &#8212; of course you know what to build, right? Otherwise, why would you start a project? But if you look at a lot of projects that went off the rails at one point, one thing that you&#8217;ll see over and over again is that many problems can be traced back to the fact that one person wanted to build A, while another person wanted to build B.</p>
<p>There are a lot of tools and practices that can help you with this. My favorite is a <a href="http://www.stellman-greene.com/aspm/content/view/22/38/">Vision &amp; Scope</a> document &#8212; mostly because it&#8217;s very lightweight, only takes a few minutes to write, and it&#8217;s something that anyone can read if they want to learn what it is your project does. Also, it&#8217;s something that serves really well as a front page for a wiki or project website, and immediately brings people up to speed on it. Basically, the Vision &amp; Scope tells you very briefly who needs the software, what their needs are, and how you&#8217;ll meet those needs (by explaining the features of the software you&#8217;ll be developing).</p>
<p>To be perfectly honest, Head First PMP may not really help you as much with this particular problem. But it&#8217;s something that Jenny and I wrote a whole lot about in our first book, <a href="http://www.stellman-greene.com/aspm">Applied Software Project Management</a>. We have a whole chapter on starting out a project using a Vision &amp; Scope document.</p>
<p>Other things you need to think about when you&#8217;re starting out your project &#8212; which we also talk about in depth in Applied Software Project Management &#8212; are figuring out <a href="http://www.stellman-greene.com/usecase">how your users are going to interact with the software</a>, setting up a version control system, and doing <a href="http://www.stellman-greene.com/aspm/content/view/31/41/">test-driven development</a>.</p>
<p>I definitely recommend taking an hour or two and really think about how you&#8217;ll handle those things. One way I&#8217;ve seen a lot of people do this is start a wiki for your project, and have a separate page that says how each of those things will be handled. It doesn&#8217;t have to be fancy or anything, and it shouldn&#8217;t take long to throw together. But just doing that will really help get your head straight about them, and set your project in the right direction from the beginning.</p>
<p>&nbsp;</p>
<p>If you&#8217;ve got a burning question and you&#8217;re wondering what we think about it, send it to us <a href="http://www.stellman-greene.com/contact-us/">using our &#8220;Contact Us&#8221; page</a>! We love answering questions from our readers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2007/12/06/some-great-questions-about-pmp-and-agile-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What about Agile?</title>
		<link>http://www.stellman-greene.com/2007/04/27/what-about-agile/</link>
		<comments>http://www.stellman-greene.com/2007/04/27/what-about-agile/#comments</comments>
		<pubDate>Fri, 27 Apr 2007 17:57:22 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/2007/04/27/what-about-agile/</guid>
		<description><![CDATA[One of the best things about writing a Head First book is that you get feedback from other Head First authors. Our editor, Brett (who you may know from Head First OOA&#38;D), got some interesting feedback from Bert Bates. Bert was going through Head First PMP, and pointed out &#8212; and rightly so &#8212; that [...]]]></description>
			<content:encoded><![CDATA[<p>One of the best things about writing a Head First book is that you get feedback from other Head First authors. Our editor, <a href="http://headfirstlabs.com/brett.php" title="Brett McLaughlin, our editor and guide to all things Head First">Brett</a> (who you may know from <a href="http://headfirstlabs.com/books/hfooad/" title="Head First Object Oriented Analysis &amp; Design">Head First OOA&amp;D</a>), got some interesting feedback from <a href="http://headfirstlabs.com/bert.php" title="Bert Bates, Head First author">Bert Bates</a>. Bert was going through Head First PMP, and pointed out &#8212; and rightly so &#8212; that at first glance here seems to be some distance between the PMP approach to projects and the Agile approach.So he&#8217;s right. There&#8217;s definitely some distance between what you&#8217;ll see on the PMP exam and in the <a href="http://www.pmibookstore.org/PMIBookStore/productDetails.aspx?itemID=358&amp;varID=1" title="PMBOK® Guide">PMBOK® Guide</a>, and what you&#8217;ll see in an Agile development process like XP, SCRUM, or Crystal. There&#8217;s a lot of stuff Agile does that isn&#8217;t addressed in the PMBOK, and there&#8217;s a lot that&#8217;s on the PMP exam that Agile doesn&#8217;t address. But this shouldn&#8217;t really be a surprise to anyone.  See, the PMBOK wasn&#8217;t written specifically for developers. A lot of projects that use the PMBOK processes and principles are things that you can&#8217;t do iteratively &#8212; like, say, highway construction or building a skyscraper. That&#8217;s why you see a lot of focus on things like subcontracting and procurement, risk management, communications (which you need to plan for really carefully when you&#8217;ve got a thousand people working on a project!), and budgeting. These are things that Agile doesn&#8217;t address because they&#8217;re just out of its scope.That&#8217;s not to say the PMP stuff doesn&#8217;t work on software &#8212; in fact, it works really well. So why isn&#8217;t the opposite true? Why couldn&#8217;t an Agile process work for, say, building a high-rise?<img src="http://www.stellman-greene.com/blog/wp-content/uploads/2007/04/needs-more-windows.png" alt="Needs More Windows" />Jenny and I were lucky enough to have a lot of contact with some of the people who created the PMBOK while we were working on the book. And as it turns out, they were very much into iteration and iterative development. But the PMBOK and the PMP exam need to apply to all kinds of projects, including non-iterative, non-software ones. And iteration does have its place, even in construction. You should <em>definitely</em> approach the design and planning iteratively. But while iteration may work fine for project plans and blueprints, but it doesn&#8217;t work particularly well once you&#8217;ve broken ground.But there is one big area where Agile and the PMBOK Guide are really similar: <strong>managing change</strong>. Change management is <em>really</em> important in the processes you need to know for the PMP exam. They are very clear on the fact that changes happen on every project, and that you need to make sure that you plan for change and expect it to happen. Every single knowledge area you need to study stresses that no matter what sort of project you&#8217;re working on, you need to constantly look for changes, and make sure that you change course whenever changes are necessary.Sound familiar? It should! Because it&#8217;s one of the fundamental goals of Agile development &#8212; the Agile manifesto itself says that we&#8217;ve come to value &#8220;responding to change over following a plan&#8221;. And that&#8217;s really similar to what the PMBOK tells us: that when there&#8217;s a change, we need to modify our plans in order to accommodate that change. (It also wants us to make sure that we know how much the change is going to impact the project, and that everyone involved agrees that the cost of making the change is worth the benefit&#8230; which is definitely a good idea too.)<img src="http://www.stellman-greene.com/blog/wp-content/uploads/2007/04/when-to-iterate.png" alt="When to iterate" />All in all, I think that there&#8217;s a lot of value in the ideas behind the PMBOK and the PMP exam, and that an Agile shop could benefit from understanding and applying them. I definitely <strong>don&#8217;t</strong> think that the PMBOK and Agile development are incompatible. But it&#8217;s important to keep in mind that they solve different problems&#8230; and that neither Agile nor the PMBOK are intended to be a silver bullet to automatically repair all troubled projects!Oh, one more thing to remember. Jenny and I are software people, and we&#8217;ve spent most of our careers trying to figure out how to deliver software projects better. That&#8217;s what our <a href="http://stellman-greene.com/aspm" title="Applied Software Project Management">first book</a> was about. We spend some time in that book talking about Agile &#8212; and a lot of time talking about some specific practices that were popularized along with Agile development: refactoring, test-driven development, continuous integration, pair programming and a few others. We love those practices, and regularly use them on the job. Personally, I always do test-driven development when <a href="http://stellman-greene.com/PublicationHarvester" title="Publication Harvester project page">writing my own code</a>. But that&#8217;s definitely an area that you simply don&#8217;t see on the PMP exam, and for good reason. What does it even mean to build, say, a highway on-ramp using test-driven development? (Actually, that question may actually turn out to have a meaningful answer. If anyone can think of one, please let us know!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2007/04/27/what-about-agile/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

