<?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; web agency</title>
	<atom:link href="http://antipatter.com/tag/web-agency/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>Does it FIT?</title>
		<link>http://antipatter.com/2008/09/does-it-fit/</link>
		<comments>http://antipatter.com/2008/09/does-it-fit/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 00:42:04 +0000</pubDate>
		<dc:creator>loren</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[web agency]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[project managers]]></category>

		<guid isPermaLink="false">http://antipatter.com/?p=188</guid>
		<description><![CDATA[
There has always been a fundamental impedance mismatch between business and technical folk.  They seem to be living in two different worlds, each with different rules of engagement.  In fact, this is because they have different values &#8211; different things that they care about. On the business side you have project managers, new business types [...]
]]></description>
			<content:encoded><![CDATA[<p>There has always been a fundamental impedance mismatch between business and technical folk.  They seem to be living in two different worlds, each with different rules of engagement.  In fact, this is because they have different values &#8211; different things that they care about.</p>
<p>On the business side you have project managers, new business types (aka salespeople), and other bean counters.   These people basically care about money: making it and not losing it.  Making cool stuff is a fortunate side effect at best.</p>
<p>On the tech side you have developers and (in a way) <a href="http://en.wikipedia.org/wiki/User_experience">UX types</a>.  These people love solving problems.  Give them a problem, they want to solve it &#8211; preferably in the most awesome, beautiful and elegant way possible.  On a deep, soul searching, emotional level, they don&#8217;t give a flying crap about the money.</p>
<p>Funny things happen when members of these two groups speak with each other.  They describe things using the same words, but they mean fundamentally different things.</p>
<p>It&#8217;s very common for the business types in Group A to approach the problem solvers in Group B and ask them a question like &#8220;would it be possible to add some snazzle on the frozbot&#8221;?  At this point the problem solver gets a far-away look in their eyes and replies &#8220;yes, it&#8217;s possible&#8221;.</p>
<p>Hey, business types: the problem solvers are talking about something <em>entirely</em> differently than what you have in mind.  If you&#8217;ve just inferred from their response that you can squeeze that new feature into the project, you&#8217;re wrong.  At least potentially you&#8217;re wrong.  You actually don&#8217;t have any more information than when you started, because the problem solver&#8217;s answer actually contains <strong>no useful information to you whatsoever</strong>.</p>
<p>What you wanted to know was:</p>
<blockquote><p>&#8220;Can I get this extra feature into this project,  it in a way so that I continue to make money?&#8221;</p></blockquote>
<p>What they just really answered was:</p>
<blockquote><p>&#8220;Yes, with nigh infinite time, resources and money, this snazzle can be retrofitted onto the frozbot, in a fabulous dimension of mind over matter where this crappy project doesn&#8217;t exist&#8221;.</p></blockquote>
<p>Which, business person, was, of course, not your question.</p>
<p>You see, you thought the money part was <em>implied</em>.  And, to another business type, it would have been.  But as was noted above, the problem solver is not inferring that part.</p>
<p>So I propose you stop asking the question &#8220;Is It Possible&#8221; altogether.  It&#8217;s a useless question.  Instead, I suggest you ask &#8220;does it FIT&#8221;.</p>
<p>My new favorite acronym &#8211; FIT.  Feasible Inside Triangle.  The triangle being, of course, the classic project triangle of Scope, Schedule and Budget.  By including the triangle within the question, the problem solver has to take its constraints as part of the equation.</p>
<p>This is an adjustment at first, but they&#8217;ll get used to it.  The barre has been raised.  Business types can expect a lot more up-front pushback to &#8220;does it FIT&#8221; than &#8220;is it possible&#8221;.  A lot more &#8220;no way&#8221;s.  However this is better than the alternative, where people say &#8220;yes&#8221; and then a project disaster ensues.  FIT forces people to be realists.</p>
<p>This communication barrier between business and problem solver types is really dysfunctional, and has probably led to millions and millions of dollars of waste.  Let&#8217;s stop lying to ourselves about feasibility in projects, and keep our problem solving powers relevant to reality.</p>
<div class="acc_license"></div><!---->]]></content:encoded>
			<wfw:commentRss>http://antipatter.com/2008/09/does-it-fit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stack &#8216;em Up</title>
		<link>http://antipatter.com/2008/08/stack-em-up/</link>
		<comments>http://antipatter.com/2008/08/stack-em-up/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 02:23:19 +0000</pubDate>
		<dc:creator>loren</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tech strategy]]></category>
		<category><![CDATA[web agency]]></category>
		<category><![CDATA[monoculture]]></category>
		<category><![CDATA[tech stack]]></category>

		<guid isPermaLink="false">http://antipatter.com/?p=133</guid>
		<description><![CDATA[
It&#8217;s been a bit longer than I wanted between posts &#8211; side effect of coming off of a vacation and going directly into a new job.  Sorry.  I&#8217;ll try to be more consistent, moving forward. The idea of maintaining a single technology stack in a development shop is quite appealing.  If everyone knows the same [...]
]]></description>
			<content:encoded><![CDATA[<p><em>It&#8217;s been a bit longer than I wanted between posts &#8211; side effect of coming off of a vacation and going directly into a new job.  Sorry.  I&#8217;ll try to be more consistent, moving forward.</em></p>
<p>The idea of maintaining a single technology stack in a development shop is quite appealing.  If everyone knows the same programming language (the thinking goes), the same web framework, the same RDBMS and so forth, then life would be better.  Business really likes this kind of thinking.  It promises efficiencies of scale, reduced training costs, and easily replaceable employees.  This kind of &#8220;one true technology&#8221; approach is the foundational philosophy of corporate darlings Java and .NET.    Once you have the organization standardized on the tech, it is promised, then every part will play nicely with every other part, critical dependencies (such as employees) will be reduced, and the whole &#8220;what are we doing about technology&#8221; question just goes away.</p>
<p>Now, of course I support operational efficiencies, reducing training costs (well, to an extent: I view training as an investment), and so forth, but I think that the idea of &#8220;one true stack&#8221;, especially in service-oriented tech shops like web agencies, is a pipe dream.  The advantages of standardizing an entire company on a single tech stack are outweighed by the disadvantages.</p>
<p>Before I get into that, however, I want to introduce the idea of a &#8220;jealous&#8221; technology.  A jealous technology tries to take over as many aspects of the stack as possible; mandating a specific component at each level.  Some technologies are more &#8220;jealous&#8221; than others.  Microsoft is notoriously jealous:  the Microsoft web framework, ASP.NET, really wants to be deployed on the Microsoft web server: IIS, on the Microsoft operating system: Windows, backed by the Microsoft RDBMS: SQL Server.  Other combinations (yes, I know about <a href="http://www.mono-project.com/Main_Page" target="_blank">Mono</a>) simply don&#8217;t work as well.  And, on the other hand, Windows is something of a second-class deployment platform for most other web technologies (ever try to deploy Rails on Windows&#8230;with IIS?  Yuck&#8230;)</p>
<p>Speaking of Ruby on Rails, they&#8217;ve become a bit of a jealous technology themselves.  Rails projects now prefer a particular JavaScript framework (Prototype), version control system (Git), editor (TextMate), build system (Capistrano) and development operating system (OS X).  (As well as, obviously, programming language: Ruby). While it&#8217;s certainly not as bad as the Microsoft scenario,  I do have to ask the question as to why the web framework has <em>any</em> influence over what version control system I use.  Do you have to use all the technologies that I&#8217;ve listed above with Rails?  No, of course not.  But they are <em>preferred</em>.  Things go better with <span style="text-decoration: line-through;">Coke</span> Capistrano.</p>
<p>The point is that some technologies are better suited towards certain problems than others, and <strong>a blanket organizational standardization on a single tech stack leads to a tremendous amount of wasted energy spent on driving square pegs into round holes</strong>.  Ruby is not a great foundation for an enterprise-class messaging framework.  Java is not a good choice for a lightweight CMS.  And anything other than .NET is a bad choice for an app destined to be maintained by a bunch of MSDN types.</p>
<p>In fact, I&#8217;d argue that <strong>the cost of operation efficiencies lost by maintaining multiple tech stacks is exceeded by the cost of jamming technologies into inappropriate use cases</strong>.  So, as messy as it sounds, any technical organization that is project or service based (as opposed to being exclusively product based) should maintain a strategic &#8220;quiver&#8221; of different technologies, so it can deploy the best choice when faced with a business problem.  Otherwise a fragile <a href="http://en.wikipedia.org/wiki/Monoculture_(computer_science) "> monoculture</a> is created, wasting a tremendous amount of developer effort, and adding artificial risk and expense to projects.</p>
<div class="acc_license"></div><!---->]]></content:encoded>
			<wfw:commentRss>http://antipatter.com/2008/08/stack-em-up/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>

