<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Coding the Architecture</title>
  <link>http://www.codingthearchitecture.com/</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>Modifying Open Services</title>
    <link>http://www.codingthearchitecture.com/2008/11/14/modifying_open_services.html</link>
    
      
        <description>
          &lt;p&gt;
There&#039;s been a huge push recently towards service oriented architectures - sharing services within an organisation with benefits such as reuse and making information consistent. Take a simple example such as a catalogue of products for a furniture company. As a shared and open service, all of the companies systems - Sales, Marketing, Support, Delivery and Billing applications - can use this information in an open and consistent way.

&lt;p&gt;
If a service is very open and easy to use (e.g. services operating via a RESTful interface) then there is a good chance that applications will use it in a way you didn&#039;t originally intend and probably by applications you don&#039;t even know about. This sounds great but you&#039;ll soon come across the issue that you&#039;ve lost the ability to audit the current use and gauge the effect of any change. As an example let&#039;s say you want to add details for &#039;forest sustainability&#039; to our furniture information. We add a block of xml to describe this and release. However an application that uses our service starts generating errors as it&#039;s not expecting this new information. (We could argue that it &lt;i&gt;shouldn&#039;t&lt;/i&gt; do this but this is what happens in the real world.) Problems are more likely if you have to modify rather than add to your format. Changing an integer to a floating point number could cause strange issues.

&lt;p&gt;
You need to be able to get dependent applications to test with your new service before you release but who&#039;s using it and how are they using it? You can log the incoming requests to know what is being used but you don&#039;t know who is using it - so how do you know who has to test changes? 

&lt;p&gt;
This is a problem I&#039;ve been seeing recently and a solution is to use authentication even if you have no intention of restricting access. You can make the credentials easy to obtain but you need to make sure the users of your service are registered and provide sufficient contact information. Of course, actually getting the users to test and adapt to changes are another issue but at least they can&#039;t complain they weren&#039;t informed.

&lt;p&gt;
Has anyone else seen this issue and what were your solutions? Did you just &#039;publish and be damned&#039; or end up introducing heavyweight process to control releases?

        </description>
      
      
    
    
    
    <comments>http://www.codingthearchitecture.com/2008/11/14/modifying_open_services.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2008/11/14/modifying_open_services.html</guid>
    <pubDate>Fri, 14 Nov 2008 19:53:38 GMT</pubDate>
  </item>
  
  <item>
    <title>The role of the Software Architect in successful projects</title>
    <link>http://www.codingthearchitecture.com/2008/10/30/the_role_of_the_software_architect_in_successful_projects.html</link>
    
      
        <description>
          &lt;p&gt;
Admittedly the &#034;Coding the Architecture&#034; audience for this is probably kind of small (hi Dave!), but I&#039;m presenting a session at the Jersey BCS in a few weeks entitled &#034;The role of the Software Architect in successful projects&#034;.
&lt;/p&gt;

&lt;blockquote&gt;
The IT industry has a love/hate relationship with the Software Architect role, with many organisations dismissing it because of their negative experiences of architects that dictate from ivory towers and aren&#039;t engaged with the actual task of building working software. This reputation is damaging the IT industry and inhibiting project success.
&lt;br /&gt;&lt;br /&gt;
Things need to change. This session looks at some of the reasons why software projects fail and how a hands-on software architect can be invaluable in addressing these issues to drive the project to a successful conclusion. Software architects are here to help, not to hinder.
&lt;/blockquote&gt;

&lt;p&gt;
The session is aimed at anyone undertaking software development projects; including developers, architects and IT managers. It will take place on 
Thursday the 13th of November 2008, 12:00 in the Ouless Room at Jersey Museum. E-mail jersey.events at bcs.org to reserve your place.

&lt;/p&gt;

&lt;p&gt;
p.s. if this sounds familiar, it&#039;s because &lt;a href=&#034;http://www.codingthearchitecture.com/2008/06/11/slides_from_our_software_architect_2008_sessions.html&#034;&gt;it is&lt;/a&gt;
&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.codingthearchitecture.com/2008/10/30/the_role_of_the_software_architect_in_successful_projects.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2008/10/30/the_role_of_the_software_architect_in_successful_projects.html</guid>
    <pubDate>Thu, 30 Oct 2008 21:26:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Becoming more architecturally aware - part 2</title>
    <link>http://www.codingthearchitecture.com/2008/10/28/becoming_more_architecturally_aware_part_2.html</link>
    
      
        <description>
          &lt;p&gt;
&lt;a href=&#034;http://www.codingthearchitecture.com/2008/10/17/becoming_more_architecturally_aware_part_1.html&#034;&gt;Last time&lt;/a&gt; I talked about how we need to understand how application frameworks are designed and work behind the scenes in order to produce code that is consistent and compliant with the overall architectural principles. The second aspect that we need to become architecturally aware about is the underlying technology.
&lt;/p&gt;

&lt;p&gt;
Again, let&#039;s put this in context of my current .NET project. I have much more Java experience than .NET experience; I&#039;ve written some C# and I&#039;ve played with Silverlight, but ASP.NET is new to me.  Thankfully, the concepts behind ASP.NET translate fairly directly with those behind JSP, so it&#039;s not as if I&#039;m tackling this from a standing start. Having said that, I&#039;ve felt that it&#039;s really important to get to grips with the underlying architecture of the technology so I can be sure that the code I write, again, integrates properly into the overall architecture. An example here would be the ASP.NET page life cycle. Like JSP, ASP.NET pages have a series of things that happen to them when a request is made, which includes creation of the request/response objects, page compilation, page instantiation, calling page event handlers and so on.

&lt;p&gt;
Knowing the finer details of a programming language is one thing, although using or not using new language features such as generics isn&#039;t necessarily going to negatively affect the architectural integrity of the solution. Not understanding something like the page life cycle of ASP.NET could. For example, it&#039;s important to understand the page life cycle so that you understand when objects can be shared/cached. Session management is another important thing to understand, and blindly throwing objects into the user&#039;s session can have architectural implications if your application needs to scale horizontally and you need to implement transparent session failover using session replication.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&#034;http://www.codingthearchitecture.com/pages/book/mind-the-gap.html&#034;&gt;Being more architecturally aware&lt;/a&gt; doesn&#039;t necessarily mean that you need to understand the entirety of the bigger picture, but you should understand how to write code that is architecturally compliant. And that means understanding more about how the underlying technologies work.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.codingthearchitecture.com/2008/10/28/becoming_more_architecturally_aware_part_2.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2008/10/28/becoming_more_architecturally_aware_part_2.html</guid>
    <pubDate>Tue, 28 Oct 2008 20:18:49 GMT</pubDate>
  </item>
  
  </channel>
</rss>
