<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Coding the Architecture - modelling tag</title>
  <link>http://www.codingthearchitecture.com/tags/modelling/</link>
  <description>Software architecture for developers</description>
  <language>en</language>
  <copyright>Coding the Architecture</copyright>
  <lastBuildDate>Mon, 21 May 2012 09:41:00 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>Modelling Process and Staleness</title>
    <link>http://www.codingthearchitecture.com/2012/03/09/modelling_process_and_staleness.html</link>
    
      
        <description>
          &lt;p&gt;
I went to some excellent talks last night at the &lt;a href=&#034;http://www.meetup.com/Londonjavacommunity/events/53477082/&#034;&gt;LJC night at QCon&lt;/a&gt;. Gil Tene of Azul systems and Adrian Cockroft of Netflix both gave enlightening and useful talks. The talk &#034;Modelling Process&#034; by the creator of Clojure, Rich Hickey, was especially interesting to me as it touched on several important themes.
&lt;/p&gt;
&lt;p&gt;
Rich talked (amongst other things) about how processes &#039;perceive&#039; data values and never the actual value. He compared the way processor and memory caches work to the delay that a person gets when listening or watching a distant event due to sound and light waves taking time to travel.
&lt;/p&gt;
&lt;p&gt;
I think this is a very important point. I would say that ALL data is stale as you only ever see a value at a point of time in the past. Now this may not matter at all for some data (the data may not actually be changing) or it can be incredibly important (real time prices for trading systems). How stale the data is before you process it will also vary greatly - from users sending in changes to their information via hand-written forms to electronic sensors with a direct connection.
&lt;/p&gt;
&lt;p&gt;
Rich&#039;s point (and I hope I&#039;m not misrepresenting him here) was that it&#039;s OK in most instances to send an immutable copy of required data to processes rather than insist that they always use the &#039;real&#039; value in memory. This helps avoid locking and contention. In fact the consumers of the information may see a much more realistic value as they are not waiting behind 30 other consumers who are taking it in turns to lock, read and use.
&lt;/p&gt;
&lt;p&gt;
Understanding your staleness requirements can lead to different architectural decisions.
&lt;/p&gt;
&lt;p&gt;
His &lt;a href=&#034;http://gotocon.com/dl/jaoo-aarhus-2010/slides/RichHickey_ModelingProcess.pdf&#034;&gt;presentation&lt;/a&gt; is worth a read and I really liked his &#034;Epochal Time Model&#034;.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>How do you define software architecture?</category>
    
    <comments>http://www.codingthearchitecture.com/2012/03/09/modelling_process_and_staleness.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2012/03/09/modelling_process_and_staleness.html</guid>
    <pubDate>Fri, 09 Mar 2012 16:39:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Think like an architect</title>
    <link>http://www.codingthearchitecture.com/2007/07/13/think_like_an_architect.html</link>
    
      
        <description>
          &lt;p&gt;
IBM recently updated their &lt;a href=&#034;http://www.ibm.com/developerworks/architecture/kits/archkit1/index.html&#034;&gt;Software Architect Kit&lt;/a&gt; and one of the articles it links to is entitled &lt;a href=&#034;http://www.devx.com/ibm/Article/33025&#034;&gt;Evolution of Developer Skills Is Essential for Job Survival&lt;/a&gt;, which states that developers need to raise their game if they are to survive in the constantly changing IT industry. That&#039;s fair enough, the industry &lt;i&gt;is&lt;/i&gt; evolving and we all need to evolve with it. Personally, I&#039;m not convinced that the industry will evolve exactly how the author thinks it will, where traditional coding will become a thing of the past, replaced by SOA and abstract modelling techniques (e.g. MDA). There are some very bold statements in the article, but the one that struck me the most is as follows.
&lt;/p&gt;

&lt;blockquote&gt;
Since architects model and do not write code, modelling tools teach you to work and think like an architect.
&lt;/blockquote&gt;

&lt;p&gt;
I think you know &lt;a href=&#034;http://www.codingthearchitecture.com/2007/05/14/the_hand_off.html&#034;&gt;my thoughts&lt;/a&gt; &lt;a href=&#034;http://www.codingthearchitecture.com/2007/05/15/you_dont_have_to_give_up_coding.html&#034;&gt;on this&lt;/a&gt;, although I do agree with the part that talks about modelling. Somebody once told me that the key characteristic of a good architect is the ability to think in an abstract way. You can also think of it as the ability to not get caught up in the details &lt;i&gt;all of the time&lt;/i&gt;. To some degree, modelling allows you to escape from the detail and see the bigger picture, irrespective of whether you choose a &#034;model everything&#034; or &#034;model just enough&#034; approach and irrespective of whether you use a tool or a whiteboard.
&lt;/p&gt;

&lt;p&gt;
While you might not agree with the views being put forward in the article, it&#039;s worth a read because it presents something that will be new to a lot of people. At the end of the day though, architecture is about abstraction, not modelling.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>What is the the role of a software architect?</category>
    
    <comments>http://www.codingthearchitecture.com/2007/07/13/think_like_an_architect.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2007/07/13/think_like_an_architect.html</guid>
    <pubDate>Fri, 13 Jul 2007 09:08:00 GMT</pubDate>
  </item>
  
  </channel>
</rss>

