<?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>Interconnect IT - WordPress Consultants, Web Development and Web Design &#187; code</title>
	<atom:link href="http://interconnectit.com/tag/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://interconnectit.com</link>
	<description></description>
	<lastBuildDate>Fri, 27 Apr 2012 16:43:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Announcing Spots</title>
		<link>http://interconnectit.com/2364/announcing-spots/</link>
		<comments>http://interconnectit.com/2364/announcing-spots/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 15:02:04 +0000</pubDate>
		<dc:creator>David Coveney</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://interconnectit.com/?p=2364</guid>
		<description><![CDATA[Imagine that you&#8217;re building a theme, and in various places in that theme you have small elements that you&#8217;d just love to content manage.  It could be items in a footer, in the header, or for use as widgets.  Things like a copyright notice, a credit line, some free form spaces and so on. In the past, coding for this&#8230; <a class="more" href="http://interconnectit.com/2364/announcing-spots/">continue reading <span class="unicode">&#8674;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Imagine that you&#8217;re building a theme, and in various places in that theme you have small elements that you&#8217;d just love to content manage.  It could be items in a footer, in the header, or for use as widgets.  Things like a copyright notice, a credit line, some free form spaces and so on.</p>
<p>In the past, coding for this was a pain &#8211; you either needed to add an options page on your theme leaving your users with an HTML content area or deal with the weight of adding WYSIWYG support, or you&#8217;d just hard code these elements.</p>
<p>interconnect/<strong>it</strong> Spots solves this.  By adding a new content type to WordPress and using the familiar WP interface, you can now quickly and easily make these Spots into content managed elements.</p>
<p>A simple template call is all you need to instantiate a Spot:</p>
<pre>if ( function_exists('icit_spot') ) {
 icit_spot('Copyright');
 }</pre>
<p>This will then create a Spot which the user can edit using the familiar WP WYSIWYG tools.  If another theme comes along that requires the same Spot, then the content is already there and ready.</p>
<p>This is all built as part of the interconnect/<strong>it</strong> principle of <a href="http://www.slideshare.net/interconnectit/how-to-content-manage-everything">&#8220;Content Manage Everything.&#8221;</a> We hate hardcoding, and we&#8217;re sure most of you do.  But sometimes it happens because there&#8217;s only so much time available in a project.  With interconnect/<strong>it</strong> Spots you&#8217;ll be able to handle these items quickly and elegantly.</p>
<h3>It&#8217;s Not a Developer Tool Only!</h3>
<p>Spots also comes with its own widget, allowing you to assign your spots to any widget space available.  The widget even has its own WYSIWYG editor, allowing you to quickly tweak your Spots widgets without leaving the widget admin page.</p>
<div id="attachment_2366" class="wp-caption alignright" style="width:320px;"><a href="http://www.interconnectit.com/wp-content/uploads/2011/08/widget-spot.jpg"><img class="size-medium wp-image-2366" title="widget-spot" src="http://www.interconnectit.com/wp-content/uploads/2011/08/widget-spot-320x239.jpg" alt="" width="320" height="239" /></a><p class="wp-caption-text">Let&#39;s do this!</p></div>
<h3>OK, Sounds Great, Now Give Me Some Examples!</h3>
<p>So, let&#8217;s say you&#8217;re using the 2011 theme and you want to add a Copyright notice to your sidebar.  Easy-peasy.  Simple install Spots, activate it, then go to Appearances | Widgets.</p>
<p>From there you will drag the Spot widget into your sidebar space.</p>
<p>Now, if you&#8217;ve already created your Spot you can simply select the spot you want and away you&#8217;re done. But if you <em>haven&#8217;t</em> already created your Spot the widget will offer to let you go and create a new Spot.</p>
<div id="attachment_2367" class="wp-caption alignright" style="width:320px;"><a href="http://www.interconnectit.com/wp-content/uploads/2011/08/the-spot-widget.jpg"><img class="size-medium wp-image-2367" title="the-spot-widget" src="http://www.interconnectit.com/wp-content/uploads/2011/08/the-spot-widget-320x188.jpg" alt="" width="320" height="188" /></a><p class="wp-caption-text">The Spots Widget</p></div>
<p>Here you&#8217;ll find yourself at a familiar WP editor.  Simply give it a sensible title and then put in what you like.  You want an image there?  Go for it.  You want special symbols?  The editor will help you.  Here we&#8217;ll call the spot Copyright, and we&#8217;ll input the content saying &#8220;This site is copyright 2011.&#8221;  Then hit Publish, just as you would for a post.</p>
<p>Once you&#8217;ve saved your spot, return to the widget administration page, go to the widget and from the dropdown select the spot you&#8217;ve just created.</p>
<div id="attachment_2370" class="wp-caption alignright" style="width:320px;"><a href="http://www.interconnectit.com/wp-content/uploads/2011/08/the-spot-widget2.jpg"><img class="size-medium wp-image-2370" title="the-spot-widget2" src="http://www.interconnectit.com/wp-content/uploads/2011/08/the-spot-widget2-320x351.jpg" alt="" width="320" height="351" /></a><p class="wp-caption-text">The full Spot widget showing the editor.</p></div>
<p>Hit Save.  And once you do, you&#8217;ll notice something else.  The widget now features a WYSIWYG editor.  This means that you can quickly and easily edit your spot right there, without breaking your widget admin workflow.</p>
<p>If you now visit your site, you&#8217;ll see that the Copyright notice is where you&#8217;ve placed it.</p>
<h3>Why Not Just Use the Text Widget?</h3>
<p>A good question!  The text widget is great.  Simple, quick, and easy to use.  But it&#8217;s HTML only.  And that means that a user who has access to administer widgets can, by virtue of a bit of bad HTML code render the site completely broken.  They can do this using the editor, of course, but it&#8217;s *much* harder to do so.</p>
<p>The editor also means you can easily insert media.</p>
<div id="attachment_2372" class="wp-caption alignright" style="width:320px;"><a href="http://www.interconnectit.com/wp-content/uploads/2011/08/widget-with-image.jpg"><img class="size-medium wp-image-2372" title="widget-with-image" src="http://www.interconnectit.com/wp-content/uploads/2011/08/widget-with-image-320x235.jpg" alt="" width="320" height="235" /></a><p class="wp-caption-text">A Spot widget, with an image in it.</p></div>
<p>Let&#8217;s take an example using the above.  Imagine we&#8217;re using the default WP 2011 theme, and the user decides to put a big image in his post.  What happens?  Well, it&#8217;s not a problem &#8211; most well-written themes (and we accept that many aren&#8217;t) will sort this out.  But what&#8217;s nice is that if you&#8217;re using a suitable shadowbox plugin the full size image, if it&#8217;s linked to, will pop up.  Try it for yourselves.</p>
<h3>I&#8217;m Happy In Code &#8211; What Can I Do?</h3>
<p>Ah, well, it gets better for you.</p>
<p>Let&#8217;s take the 2011 theme again.  Say you wish to place an Awesomeness element in the footer instead of the line saying &#8220;Proudly Powered by WordPress.&#8221;  This is so easy, it&#8217;s daft.</p>
<p>First, you need to get the footer.php file for the theme.</p>
<p>Then, find the div: &lt;div id=&#8221;site-generator&#8221;&gt; and remove everything that goes in-between that and the closing &lt;/div&gt;</p>
<p>Replace the code with the following:</p>
<pre>&lt;?php if ( function_exists('icit_spot') ) {
 icit_spot('Awesomeness');
 } ?&gt;</pre>
<p>What&#8217;s nice is that if you visit a page on the site and the Spot called &#8216;Awesomeness&#8217; hasn&#8217;t been created, the plugin will create a blank Draft version of the Spot ready for completion.</p>
<p>All the user then needs to do is to go in and edit that Spot and hey presto, the footer now looks like this:</p>
<div id="attachment_2373" class="wp-caption aligncenter" style="width:680px;"><a href="http://www.interconnectit.com/wp-content/uploads/2011/08/very-proudly-powered-by-WP.jpg"><img class="size-large wp-image-2373 " title="very-proudly-powered-by-WP" src="http://www.interconnectit.com/wp-content/uploads/2011/08/very-proudly-powered-by-WP-680x153.jpg" alt="" width="680" height="153" /></a><p class="wp-caption-text">See that? VERY.</p></div>
<h3>So Can I Try It?</h3>
<p>Sure!  We released the production version of Spots at the beginning of October 2011 and it is now available directly from the WordPress back-end or for download from the WordPress Extend repository.</p>
<p><a class="call-to-action" href="http://wordpress.org/extend/plugins/spots/">Get WordPress Spots from the WordPress.org Repository</a></p>
]]></content:encoded>
			<wfw:commentRss>http://interconnectit.com/2364/announcing-spots/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>Top 10 Functions for functions.php</title>
		<link>http://interconnectit.com/1725/top-10-functions-for-functions-php/</link>
		<comments>http://interconnectit.com/1725/top-10-functions-for-functions-php/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 16:23:00 +0000</pubDate>
		<dc:creator>Robert O'Rourke</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://interconnectit.com/?p=1725</guid>
		<description><![CDATA[I thought I&#8217;d share some of the functions that go into most of our custom WordPress themes. If you have your own favourites then get commenting! Removing the auto capitalisation of &#8216;WordPress&#8217; When version  3.0 was released a fairly simple filter appeared called capital_P_dangit. This was committed to the core by Matt Mullenweg for the purposes of brand reinforcement. Suffice&#8230; <a class="more" href="http://interconnectit.com/1725/top-10-functions-for-functions-php/">continue reading <span class="unicode">&#8674;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I thought I&#8217;d share some of the functions that go into most of our custom WordPress themes. If you have your own favourites then get commenting!</p>
<ol>
<li>
<h3>Removing the auto capitalisation of &#8216;WordPress&#8217;</h3>
<p>When version  3.0 was released a fairly simple filter appeared called capital_P_dangit. This was committed to the core by Matt Mullenweg for the purposes of brand reinforcement. Suffice to say many in the community weren&#8217;t thrilled by this passive-aggressive pedantry for a multitude of very good reasons but that&#8217;s another story (you can read all about it in <a href="http://justintadlock.com/archives/2010/07/08/lowercase-p-dangit">Justin Tadlock&#8217;s article on the subject</a>).</p>
<pre>// remove capital_P_dangit
foreach( array( 'the_content', 'the_title', 'comment_text' ) as $filter )
    remove_filter( $filter, 'capital_P_dangit' );</pre>
</li>
<li>
<h3>Change excerpt length</h3>
<p>The default excerpts in WordPress are reasonable but rarely fit with the design you are working to. Alter the number of characters returned in an excerpt with the following snippet.</p>
<pre>function theme_excerpt_length( $length ) {
    return 80; // 80 characters long
}
add_filter('excerpt_length', 'theme_excerpt_length');</pre>
</li>
<li>
<h3>Change the excerpt truncation text</h3>
<p>You can alter the text that appears at the point of truncation, ie. &#8216;[...]&#8216;, to anything you want, including a useful link to the post page.</p>
<pre>function theme_excerpt_more( $more ) {
    global $post;
    return '&amp;hellip; &lt;a class="read-more" href="'. get_permalink($post-&gt;ID) . '"&gt;' . __('Continue reading') . '&lt;/a&gt;';
}
add_filter('excerpt_more', 'theme_excerpt_more');</pre>
</li>
<li>
<h3>Adding contact methods to the user profile</h3>
<p>On every recent project we have had there has been a need for extra user data, such as Twitter username, FaceBook URL and so on. The user profile screen can be edited using a combination of action hooks but WordPress also has a very simple way to add extra contact methods.</p>
<pre>function more_contactmethods( $contactmethods ) {
    $contactmethods['twitter'] = 'Twitter username';
    $contactmethods['facebook'] = 'Facebook URL';
    return $contactmethods;
}
add_filter( 'user_contactmethods', 'more_contactmethods' );</pre>
</li>
<li>
<h3>Removing the inline stylesheet from galleries</h3>
<p>By default WordPress spits out an inline stylesheet whenever the gallery shortcode is used within a post. The reasoning is that users can control the number of columns each gallery has and the sizes of the images within them as well as a few other options. While it is a noble quest to give users more power over their images it also allows them to screw things up in new and exciting ways when using a custom theme. Adding style tags within the body of an HTML document is also invalid markup.</p>
<p>Thanks to <a href="http://zeo.unic.net.my/remove-wordpress-gallery-shortcode-embedded-css/">Safirul Alredha</a> for this code:</p>
<pre>// remove gallery shortcode styling
add_filter('gallery_style',
    create_function(
        '$css',
        'return preg_replace("#&lt;style type=\'text/css\'&gt;(.*?)&lt;/style&gt;#s", "", $css);'
    )
);</pre>
</li>
<li>
<h3>Replacing the gallery shortcode handler</h3>
<p>While the above snippet does a good enough job in many cases I still find the built in gallery shortcode function to be questionable. For example you can change what HTML tags the gallery outputs with (the default being a semantically poor series of definition lists) but there is no way to set theme defaults without parsing post/page content and adding the attributes to the shortcode programmatically. This is a bad idea for general use themes because it will screw up peoples sites if they switch to another theme in future.</p>
<p>The shortcode can be rescued however by simply removing it and replacing it with your own callback:</p>
<pre>// replace gallery shortcode
remove_shortcode('gallery');
add_shortcode('gallery', 'theme_gallery_shortcode');

function theme_gallery_shortcode( $attr ) {
    global $post, $wp_locale;
    // create your own gallery output...
}</pre>
<p>You can alternatively use the built in shortcode&#8217;s internal filter &#8216;post_gallery&#8217; to change the output and handling of the standard shortcode attributes.</li>
<li>
<h3>Adding custom post types to search results</h3>
<p>Hopefully any custom post types that are set as publicly queryable will be included in the search results by default in future releases of WordPress but for now you can use the following code:</p>
<pre>function search_post_types( $query ) {
    if ( $query-&gt;is_search )
        $query-&gt;set( 'post_type', get_post_types( array( 'publicly_queryable' =&gt; 1 ) ) );
    return $query;
}
add_filter( 'the_search_query', 'search_post_types' );</pre>
</li>
<li>
<h3>Adding custom post types to the main RSS feed</h3>
<p>This can make sense for some sites if you want an amalgamated feed of all your content. We use an array filter in this case to get only those post types that have taxonomies so page-like content is ignored.</p>
<pre>function feed_post_types( $vars ) {
    if ( isset($vars['feed']) &amp;&amp; !isset($vars['post_type']) )
        $vars['post_type'] = array_filter( get_post_types( array( 'publicly_queryable' =&gt; 1 ) ), 'get_object_taxonomies' );
    return $vars;
}
add_filter( 'request', 'feed_post_types' );</pre>
</li>
<li>
<h3>Enable post thumbnails</h3>
<p>This is one is pretty straightforward. Make use of WordPress 3.0&#8242;s post thumbnail feature in your theme.</p>
<pre>add_theme_support( 'post-thumbnails' );</pre>
</li>
<li>
<h3>Enable shortcodes in the text widget</h3>
<p>This little trick makes the text widget into a much more powerful tool. It&#8217;s used on this site to add an author list to the widget space in the footer, avoiding the need to code a specific author list widget.</p>
<pre>add_filter( 'widget_text', 'do_shortcode' );</pre>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://interconnectit.com/1725/top-10-functions-for-functions-php/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>How Much Does Code Cost?</title>
		<link>http://interconnectit.com/100/how-much-does-code-cost/</link>
		<comments>http://interconnectit.com/100/how-much-does-code-cost/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 14:56:48 +0000</pubDate>
		<dc:creator>Interconnect IT</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[costs]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://liverpoolwebdesigner.wordpress.com/?p=100</guid>
		<description><![CDATA[It&#8217;s hard to measure the cost of code.  Simple stuff can be ferociously time-consuming to develop, and bad coders often produce reams of poorly structured code. But let&#8217;s assume you&#8217;re dealing with a typical, decent developer who doesn&#8217;t take the long route, or dangerous shortcuts. There&#8217;s some nice research covering this, such as Boem, Abts Chulani [2000] which is worth&#8230; <a class="more" href="http://interconnectit.com/100/how-much-does-code-cost/">continue reading <span class="unicode">&#8674;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s hard to measure the cost of code.  Simple stuff can be ferociously time-consuming to develop, and bad coders often produce reams of poorly structured code.</p>
<p>But let&#8217;s assume you&#8217;re dealing with a typical, decent developer who doesn&#8217;t take the long route, or dangerous shortcuts.<span id="more-100"></span></p>
<p>There&#8217;s some nice research covering this, such as <a title="Software Development Cost Estimation Approaches" href="http://sunset.usc.edu/publications/TECHRPTS/2000/usccse2000-505/usccse2000-505.pdf">Boem, Abts Chulani [2000]</a> which is worth reading if you&#8217;re interested by this kind of stuff.  But it&#8217;s heavy going, and doesn&#8217;t give a nice neat figure for lay people to understand.</p>
<p>So now I&#8217;m going to give the answer that many want to hear:</p>
<p>For each line of code produced in a 3GL non RAD environment the cost of your development is likely to come to around £20-£25 per line of new code.  And about £100 per hundred lines of re-used code.</p>
<p>Doesn&#8217;t sound too bad&#8230; that includes testing, development, refinement, code reviews and so on.  It&#8217;s based on the idea that most good developers can produce around 50-100 lines of code in a day if left alone and in peace.  Some produce reams of code, but it&#8217;s often poorly optimised and thought out and likely to bite back in years to come.  The cost also takes into account the design of that code before anyone touched a computer, and the various support staff required.  If a developer is working entirely alone and is self-supported with his PCs and the like, then his productivity drops so the project takes longer, but the cost shouldn&#8217;t change too much.</p>
<p>And don&#8217;t forget that cheap code is often bulkier than expensive code.  Which means nobody can look at a 1000 line program and actually say &#8220;Oh yeah, that&#8217;s £20k&#8217;s worth.&#8221;  Somebody needs to assess the quality of that code.</p>
<p>What we will say is that in general, if we&#8217;ve written you 1000 lines of fresh code (ie, no cut and pasting or reuse) it could well have cost you £25k by the time it&#8217;s fully tested and delivered.  A really big project, like, say, implementing a worldwide global payroll system for a major corporation may have five million lines of code and a final bill (including analysis) of around £125 million.  Not at all unreasonable, believe it or not.</p>
<p>So yes, code is expensive.  And that quick report you&#8217;d like us to knock up?  Maybe it&#8217;s not so quick.</p>
<p>To save costs it&#8217;s worthwhile looking at RAD (Rapid Application Development) methods, but in that you&#8217;ll end up with slower, more bloated code.  However, it can be a perfectly adequate approach and we use it all the time for simple data management back-ends and the like where performance isn&#8217;t that critical.  Sometimes we&#8217;ll generate 20,000 lines of code from a three hour job&#8230; but it gets the job done.  Albeit a little slowly!</p>
]]></content:encoded>
			<wfw:commentRss>http://interconnectit.com/100/how-much-does-code-cost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Wicked Problem</title>
		<link>http://interconnectit.com/51/the-wicked-problem/</link>
		<comments>http://interconnectit.com/51/the-wicked-problem/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 17:41:46 +0000</pubDate>
		<dc:creator>David Coveney</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Clients]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[problems]]></category>
		<category><![CDATA[project management]]></category>

		<guid isPermaLink="false">http://liverpoolwebdesigner.com/2008/01/10/the-wicked-problem/</guid>
		<description><![CDATA[I was reading through some project management methodology just now (yay! My life is full of joy at last!) and came across the phrase &#8220;The Wicked Problem&#8221; in this line on Wikipedia: Steve McConnell in Code Complete (a book which criticizes the widespread use of the waterfall model) refers to design as a &#8220;wicked problem&#8221; &#8211; a problem whose requirements&#8230; <a class="more" href="http://interconnectit.com/51/the-wicked-problem/">continue reading <span class="unicode">&#8674;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was reading through some project management methodology just now (yay! My life is full of joy at last!) and came across the phrase &#8220;The Wicked Problem&#8221; in this line on Wikipedia:</p>
<blockquote><p>Steve McConnell in <em><a title="Code Complete" href="http://en.wikipedia.org/wiki/Code_Complete">Code Complete</a></em> (a book which criticizes the widespread use of the waterfall model) refers to design as a &#8220;<a title="Wicked problem" href="http://en.wikipedia.org/wiki/Wicked_problem">wicked problem</a>&#8221; &#8211; a problem whose requirements and limitations cannot be entirely known before completion. The implication is that it is impossible to get one phase of software development &#8220;perfected&#8221; before time is spent in &#8220;reconnaissance&#8221; working out exactly where and what the big problems are.</p></blockquote>
<p><span id="more-51"></span>It&#8217;s worth following the link.</p>
<p>I think software and design processes often end up trapped within this circle where nothing&#8217;s ever perfect.  The iPhone isn&#8217;t perfect, for example &#8211; it may be ever so pretty, but it&#8217;s quite rubbish at Bluetooth connectivity, for example, or sending texts.  In fact, it&#8217;s rubbish at a lot of things.  One of its smartphone rivals, the N95, has a habit of crashing in certain situations, and flattening its battery in two hours because it&#8217;s furiously running an application in the background.</p>
<p>Same with websites.  Our company site, <a title="Interconnect IT - developing code in Liverpool!" href="http://www.interconnectit.com">Interconnect IT</a>, will never ever, in my opinion, be perfect.  Unless we simply devoted all our energies to that site &#8211; but then we&#8217;d have no time to work on client projects.  We&#8217;re still a three man company, so we can&#8217;t have a £200k site.  But we can be clever and cover 95% of the requirements.</p>
<p>With client sites it&#8217;s even trickier &#8211; we have to interpret a clients&#8217; requirements, write them down, and send them back in a proposal with a rough mock-up, pricing and structure.  They&#8217;ll read it quickly and usually accept.  But once started they&#8217;ll look at the design, try it out, and realise that actually, the front page should have a simpler message.  That may mean a restructuring.  A week later, someone may point out that the colours they preferred have negative connotations in certain cultures.</p>
<p>All these require changes, sometimes at a late stage, and sometimes involving a lot of work.  At some point, someone has to simply say &#8211; &#8220;OK, that&#8217;s good enough!&#8221;</p>
<p>Other clients, however, quite like the waterfall method.  We have forms for certain business sectors, with consistent requirements, where they simply tick off what they want and like, choose an off-the-shelf design, and a couple of weeks later we deliver the website &#8211; all loaded up and everything.  They then sign-off, or they ask for some revisions &#8211; images changed, copy edited and so on.  It&#8217;s particularly suited where a small and busy firm needs a website, but it&#8217;s not really crucial to their business &#8211; it simply provides a service to people who already know them.  Dentists, for example.</p>
]]></content:encoded>
			<wfw:commentRss>http://interconnectit.com/51/the-wicked-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

