<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Coding the Architecture - cost tag</title>
  <link>http://www.codingthearchitecture.com/tags/cost/</link>
  <description>Software architecture for hands-on software architects</description>
  <language>en</language>
  <copyright>Coding the Architecture</copyright>
  <lastBuildDate>Fri, 14 Nov 2008 19:53:38 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>Why do so many technology projects fail?</title>
    <link>http://www.codingthearchitecture.com/2007/11/23/why_do_so_many_technology_projects_fail.html</link>
    
      
        <description>
          &lt;p&gt;
The Financial Times published an interesting article earlier in the week entitled &lt;a href=&#034;http://www.ft.com/cms/s/0/c24b1248-9759-11dc-9e08-0000779fd2ac,dwp_uuid=4dce8136-4a24-11da-b8b1-0000779e2340.html?nclick_check=1&#034;&gt; Perspectives: Why do so many technology projects fail?&lt;/a&gt; (registration required) detailing a court action between BSkyB and EDS. In summary, it&#039;s about the failure to deliver a software project, how software projects aren&#039;t like construction projects, how a new way of working is needed, etc, etc. It&#039;s all stuff we&#039;ve heard before and, as the article says, are lessons never learned?
&lt;/p&gt;

&lt;p&gt;
Why do so many technology projects fail? Here are my thoughts, some of which overlap with the FT&#039;s article.
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Iterative and agile techniques have revolutionized the way that software development is performed, but our industry needs to take a step back and look at the way in which software projects are engaged. Why, when you read about so many high profile big budget software failures, do businesses still initiate software projects with &#034;we want this, tell me how much it will cost&#034;? *We* know that they&#039;ll change their mind. *They* know that they&#039;ll change their mind. So let&#039;s change the engagement model, stop hiding behind fixed price contracts and work *together* to solve problems.&lt;/li&gt;
&lt;li&gt;In my opinion, the view that software development is a commoditized skill is wrong. This is regardless of whether software is developed on-shore, off-shore, etc. Software development is a discipline that&#039;s part engineering and part art. If you want decent software built, don&#039;t treat it like a commodity. You wouldn&#039;t want anybody to build you a Ferrari, would you?&lt;/li&gt;
&lt;li&gt;And finally, of course, there&#039;s the &lt;a href=&#034;http://www.codingthearchitecture.com/2007/11/14/technical_architects_in_investment_banking.html&#034;&gt;lack of a technical architect&lt;/a&gt;. Not all architects sit in ivory towers throwing unworkable &#034;solutions&#034; at development teams. Some of us like to work *in* the development team and eat our own dog food. Think of how many software projects you&#039;ve seen that function correctly but are not fast enough, scalable enough or secure enough. That&#039;s why you need an architect.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
I was chatting to &lt;a href=&#034;http://www.codingthearchitecture.com/authors/sdalton/&#034;&gt;Sam&lt;/a&gt; yesterday and he has some interesting thoughts too, which I&#039;m hoping he&#039;ll write about one day. Something that we both agreed on though, is that the software industry generally needs to learn some lessons and wake up to some of the shortcomings that are so prevalent today. 
&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.codingthearchitecture.com/2007/11/23/why_do_so_many_technology_projects_fail.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2007/11/23/why_do_so_many_technology_projects_fail.html</guid>
    <pubDate>Fri, 23 Nov 2007 14:48:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Nines</title>
    <link>http://www.codingthearchitecture.com/2007/09/26/nines.html</link>
    
      
        <description>
          &lt;p&gt;
I&#039;ve been reviewing some software architecture documents as part of a training course today, where the authors had restated the non-functional requirements. Given that the non-functional requirements are some of the key architectural drivers, restating them in the architecture document is something that I recommend and like to see, so I was pleased that this had been done here. The thing that really struck me, though, was how nobody had seemed to question the requirements that they had been given. While most were okay, the availability requirement really stuck out as being extreme, for what is basically a desktop-based CRUD application.
&lt;/p&gt;

&lt;blockquote&gt;
The system must be available for 99.99% of the time, from 9am to 6pm London time.
&lt;/blockquote&gt;

&lt;p&gt;
With a duration of 9 working hours, this availability requirement means that only about 3 seconds of downtime can be tolerated. As a general guide, I&#039;d say that availability figures of 99% and above mean that you have to start thinking about different types of architectures that include characteristics such as automatic (or very fast manual) failover, clustering, no single points of failure and so on. Clearly, a change in the architecture has a knock-on effect to the cost, potentially turning a £100,000 project into a £1,000,000 project. Whenever you&#039;re given non-functional requirements, always be prepared to ask the stakeholders whether they really *need* them and remember to emphasise that added complexity doesn&#039;t come for free.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.codingthearchitecture.com/2007/09/26/nines.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2007/09/26/nines.html</guid>
    <pubDate>Wed, 26 Sep 2007 22:21:00 GMT</pubDate>
  </item>
  
  </channel>
</rss>
