<?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>Antipatter &#187; projects</title>
	<atom:link href="http://antipatter.com/tag/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://antipatter.com</link>
	<description>The Web, The Business, The Smoke and Mirrors</description>
	<lastBuildDate>Tue, 15 Nov 2011 15:34:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Modeling Risk (Part 2)</title>
		<link>http://antipatter.com/2009/08/modeling-risk-part-2/</link>
		<comments>http://antipatter.com/2009/08/modeling-risk-part-2/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 22:32:49 +0000</pubDate>
		<dc:creator>loren</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web agency]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[teams]]></category>

		<guid isPermaLink="false">http://antipatter.com/?p=254</guid>
		<description><![CDATA[
In part one we had a look at risk that comes to the project from the client, before it even starts.  This time we&#8217;ll look at risk that comes from the composition of the project and the project team. I like to call this second category Structural Risk, because it has to do with how [...]
]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://antipatter.com/2009/07/modeling-risk/">part one</a> we had a look at risk that comes to the project from the client, before it even starts.  This time we&#8217;ll look at risk that comes from the composition of the project and the project team.</p>
<p>I like to call this second category <strong>Structural Risk</strong>, because it has to do with how a project is structured: the parts that make it up.  Again, to take the positive angle &#8211; each point below is listed in its non-risk-adding, positive side:</p>
<ul>
<li><strong>The team has worked together before.</strong> The team itself is a known quantity, with the individual talents and personalities of each team member known to the group.  This knowledge allows team members to guide the project to leverage the various strengths and avoid the weaknesses of the individuals on the team, working together to achieve the highest level of productivity.  Also hopefully people like and respect each other.</li>
<li><strong>The team knows the technology.</strong> It is a technology that the team has worked with before &#8211; they know how to work with it rather than wind up fighting it.  They are unlikely to be surprised by strange quirks of the tech stack that creep up at the most inopportune times.</li>
<li><strong>The team knows the client.</strong> The team has worked with this client before, and therefore knows the business problems that intersect their space.  This way they will be less likely to make poor assumptions about how things are supposed to work.  Functional specs are great, but they don&#8217;t take the place of actual domain knowledge on the part of the team.</li>
<li><strong>The team has a methodology for staying on track.</strong> Without getting into the comparative merits of individual development methodologies, the main point is that the team has a way to prioritize, track progress, and correct problems early on.  A team that can&#8217;t tell that it&#8217;s off-course can&#8217;t correct.</li>
<li><strong>The team can effectively communicate to management, and vice-versa.</strong> The cliche is that management understands different levels of priority for requirements, but sees all cost of implementation as equal.  Developers see different costs of implementation, but imagine all requirements to be equally important.  Neither is true, of course, and there needs to be an effective channel for technical and business stakeholders to properly communicate with each other.  A Tech Lead can be an effective method here.</li>
</ul>
<p>Note that none of this discusses the individual experience or quality of the members of the team.  This is structural.  Process and management &#8211; all about getting people to speak with each other, and work well together.</p>
<p>Again 1 point for each &#8220;yes&#8221; answer for your team, just like in part one.</p>
<p style="padding-left: 30px;"><strong>5 points: A.</strong> Your team knows each other, the client and the means to success like the back of their hand.  You&#8217;ve probably already made the mistakes you are going to make, so you can count on solid execution from people.</p>
<p style="padding-left: 30px;"><strong>4 points: B.</strong> Still solid.  B is as good as a team can get with a new client (and at least in agency work new clients are frequent).  B is structurally still a good risk, but can occasionally throw up a surprise or two.</p>
<p style="padding-left: 30px;"><strong>3 points: C.</strong> Medium risk.  At this level there is at least some degree of immaturity in the team &#8211; it may reflect new hires, or the creation of a new team where there wasn&#8217;t one before.  The team is still working out the kinks in their process.</p>
<p style="padding-left: 30px;"><strong>2 points: D.</strong> This is an immature team.  There are enough unknowns going on at this level that the team can easily trip over itself, adding significant risk to a project.  Watch out.</p>
<p style="padding-left: 30px;"><strong>1 and below: F.</strong> The team is not ready for this project.  The structural problems will create a significant negative impact on the project, probably leading to some level of failure.</p>
<p><em><strong>To be concluded in part 3, where we&#8217;ll look at qualitative risk, and how to combine all the risk factors together into a single model.</strong></em></p>
<div class="acc_license"></div><!---->]]></content:encoded>
			<wfw:commentRss>http://antipatter.com/2009/08/modeling-risk-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modeling Risk</title>
		<link>http://antipatter.com/2009/07/modeling-risk/</link>
		<comments>http://antipatter.com/2009/07/modeling-risk/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 20:50:23 +0000</pubDate>
		<dc:creator>loren</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web agency]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://antipatter.com/?p=241</guid>
		<description><![CDATA[
Why do some software / web projects run off the rails so badly?  Are we just incompetent?  Is it that the very practice of programming is so incredibly difficult that it defies any attempt to manage it?  Perhaps software development is just an inherently terrible idea, and we should leave it up to Microsoft to [...]
]]></description>
			<content:encoded><![CDATA[<p>Why do some software / web projects run off the rails so badly?  Are we just incompetent?  Is it that the very practice of programming is so incredibly difficult that it defies any attempt to manage it?  Perhaps software development is just an inherently terrible idea, and we should leave it up to Microsoft to handle, and focus on other things, such as selecting the best clip-art for our PowerPoint slides.</p>
<p>Okay, no one buys that exactly, but there is a certain amount of seeming randomness in software or web development that makes developers and managers both very, very nervous when entering new endeavors.  Everyone knows from past experience that even with the best of intentions, things seem to occasionally go terribly wrong.</p>
<p>I&#8217;d like to suggest that things happen for a reason, however.  In the case of software development projects, there are specific patterns and phenomena that drive projects towards success or failure, and that learning to recognize those patterns can lead one to manage them much better.</p>
<p>In fact I would take that one step further, and say that these patterns can actually be modeled, and together form a bit of a magic 8-ball on what&#8217;s likely to happen with the project.</p>
<h3>Clients</h3>
<p>Many software development projects have clients involved, and for many of them the problems start right there.  Clients present an extremely powerful influence over projects, because if they are not happy, there is no business.  Clients do not always act in their own best interests however, or the best interests for the project.  Therein lies the rub.</p>
<p>I&#8217;ve identified a specific set of criteria that identifies good clients.  Clients with these attributes are good, those without them are bad.  Howe much risk a client brings to a project depends on how many items on this list they rate.</p>
<ul>
<li><strong>Strong decision maker:</strong> Is there someone (much preferably an individual person) who can make decisions in the client organization?  Or is there a distributed set of stakeholders, all with different agendas, values and visions about what the product should be?</li>
<li><strong>Reasonably Insensitive to Price:</strong> Does the client appreciate the value of what they&#8217;re getting?  Or do they just want to slash, slash, slash prices and get the cheapest possible version of their site?  Do they argue over every last nickle and dime?</li>
<li><strong>Technology Agnostic:</strong> Tech matters.  Anyone who says differently is ignorant or lying.  The choices of hosting, frameworks, platforms, products etc all compound and add or remove risk from the project.  Good clients are ones that allow and encourage the best tools for the jobs to be used.  Bad clients come in the door with corporate technology mandates that have nothing to do with the specific interests of the project.</li>
<li><strong>On a Reasonable Deadline, but Flexible on Scope:</strong> Projects need schedules in order to happen, but the uncertainty baked into programming demands that something in the classic project management triangle flex, and the best thing to flex is scope.  When there is a clearly prioritized set of features on the table, the upcoming release may or may not have certain features, or they may be implemented at a number of different levels of complexity.  Hard features of limited business or user value should be jettisoned.</li>
<li><strong>Savvy:</strong> Good clients know their own business, the Internet and so forth.  Clients that require teaching on every last point that intersects the project slows things down, and opens the door for them to make bad decisions.  A client that is reasonably well educated on their space and how it relates to the project will be much less off than others.</li>
</ul>
<h5>Grading</h5>
<p>For your client, award 1 point for each of the above criteria.</p>
<p style="padding-left: 30px;"><strong>5 points: A.</strong> Run, don&#8217;t walk and get this client&#8217;s business.  They are extremely rare and can be the basis of an excellent partnership in which you can do great things.</p>
<p style="padding-left: 30px;"><strong>4 points: B.</strong> A good, run of the mill client.  Will occasionally do something bothersome, but well within the parameters of something that can be managed for success.</p>
<p style="padding-left: 30px;"><strong>3 points: C.</strong> Fair.  This is starting to get into the range where client risk can adversely affect the project.  If it is combined from risk from other factors, failure can occur.  Nonetheless it is possible to succeed with a C client.</p>
<p style="padding-left: 30px;"><strong>2 points: D.</strong> Not good.  This is a high-risk client, and this kind of work should only be taken on if painstaking steps are taken to protect the team from bad influences and decisions made by the client.  A large amount of time will be spent on keeping this client under control, and preventing them from damaging the project.  It better be worth it.</p>
<p style="padding-left: 30px;"><strong>1 and below: F.</strong> This client brings disaster with them.  It is almost impossible to succeed with this kind of client, and it usually isn&#8217;t worth it.  They will be a never-ending source of problems, and will compel bad decisions that will most likely derail the project.  Avoid.</p>
<p><em><strong>Continued in part 2, when we&#8217;ll look at some of the other risk factors that bear on a project.</strong></em></p>
<p>UPDATE: Okay, so I <a href="http://antipatter.com/2008/08/how-to-work-with-web-agencies/">covered some of this before,</a> but this is part of the model, so its sort of from the opposite tack.</p>
<div class="acc_license"></div><!---->]]></content:encoded>
			<wfw:commentRss>http://antipatter.com/2009/07/modeling-risk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Work Web Agencies</title>
		<link>http://antipatter.com/2008/08/how-to-work-with-web-agencies/</link>
		<comments>http://antipatter.com/2008/08/how-to-work-with-web-agencies/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 13:00:57 +0000</pubDate>
		<dc:creator>loren</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[web agency]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://antipatter.com/?p=95</guid>
		<description><![CDATA[
I&#8217;ve performed postmortems on many, many web projects over the last couple of years, and over time I&#8217;ve seen certain patterns emerge; patterns that I now know push web projects towards success or failure.  While there are many reasons that projects succeed or fail that are entirely internal to web agencies, I have noticed that [...]
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve performed postmortems on many, many web projects over the last couple of years, and over time I&#8217;ve seen certain patterns emerge; patterns that I now know push web projects towards success or failure.  While there are many reasons that projects succeed or fail that are entirely internal to web agencies, I have noticed that <em><strong>the client themselves wields tremendous influence over the success or failure of a project</strong></em>.</p>
<p>Over time I have identified 5 factors that clients bring to the table, that directly affect the outcome of a web project.  These factors can accumulate and ultimately swing the fate of a project from success to failure or vice-versa.</p>
<p>Here they are:</p>
<h2>Don&#8217;t Be Overly Price Sensitive</h2>
<p>Guess what?  Agencies are expensive.  If you want to build a website on the cheap, you probably don&#8217;t want to deal with an agency, you want to keep the project in-house as much as possible, and outsource the rest to individual contractors.  Quality can suffer this way, because <strong>you</strong> are now the web project manager (and presumably you have something else to do), but it theoretically can be cheaper.  Trying to pinch pennies with an agency can cause compromises in the quality or scope of your project that can be hard to predict.</p>
<h2>Be Flexible on Features</h2>
<p>Clients who want to control every last feature can lose sight of the main goal: <strong>getting a working web site that meets their business goals launched</strong>. In my experience, the best projects are ones with strict deadlines, but with some flexibility in scope.  Over the course of production, hard decisions may need to be made about whether features should be included in the upcoming release.  Generally speaking, being flexible on features, but sticking to the established release schedule, is the right decision almost every time.</p>
<h2>Be Decisive</h2>
<p>Clients who are indecisive, or who have decision-by-committee issues, bring risk to web agency projects.  The best projects are ones where there is a single project owner on the client&#8217;s side, who is empowered to make decisions and grant approvals about the web site.  The ability to provide clear, timely feedback and direction to the web agency is essential.  On the other hand, a client that waffles, takes forever to make approvals, or sends mixed signals to the agency just makes everything harder.</p>
<h2>Trust and Defer</h2>
<p>Trust the web agency, they know the web, that&#8217;s what you&#8217;re paying them for.  If you don&#8217;t feel like you can trust them, then you shouldn&#8217;t hire them in the first place.  In order for an agency to operate efficiently, it needs a certain amount of autonomy and independence from the client.  Only then can it employ its internal best practices, and do the best job it can.  Micromanaging an agency actually removes value for the client.</p>
<h2>Be Savvy</h2>
<p>Understand the web.  Understand your own business.  Understand how web agencies work, if possible.  The more sophisticated you are, the better the project will run.  In the past I&#8217;ve known clients who have asked for web sites, who never actually use the Internet themselves.  How could they make informed decisions about their own web site, if they spend no time on the web?  By taking the time to educate yourself about the environment in which your project lives, you&#8217;ll be stacking the odds in your favor.</p>
<p>There it is &#8211; clients that get all of these items right are a pleasure to work with, and they tend to get fantastic results from the agencies they use.  At the other end of the scale, clients that come down on the wrong side of all of these points can create situations that can be difficult or impossible for agencies to rescue.  By mastering these factors as a client, you&#8217;ll be doing the most you can to ensure the success of your project.</p>
<div class="acc_license"></div><!---->]]></content:encoded>
			<wfw:commentRss>http://antipatter.com/2008/08/how-to-work-with-web-agencies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

