<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Coding the Architecture - kseal</title>
  <link>http://www.codingthearchitecture.com/authors/kseal/</link>
  <description>Reducing the gap between developers and architects</description>
  <language>en</language>
  <copyright>Coding the Architecture</copyright>
  <lastBuildDate>Thu, 17 Jul 2008 18:29:00 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>The Four Stages of Learning</title>
    <link>http://www.codingthearchitecture.com/2008/03/25/the_four_stages_of_learning.html</link>
    
      
      
        <description>
          &lt;p&gt;
I&#039;ve found many parallels with the four stages of learning in software development, from how a developer&#039;s approach to design changes to how agile teams eventually become self-organising (eg, Scrum&#039;s &#034;readiness levels&#034;). By understanding where someone is on their path to becoming truly good at something you can be more effective in mentoring them to the next level - rather than assuming you can fast-track them right to the top.
&lt;/p&gt;&lt;p&gt;&lt;a href=&#034;http://www.codingthearchitecture.com/2008/03/25/the_four_stages_of_learning.html&#034;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
        </description>
      
    
    
    
    <comments>http://www.codingthearchitecture.com/2008/03/25/the_four_stages_of_learning.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2008/03/25/the_four_stages_of_learning.html</guid>
    <pubDate>Tue, 25 Mar 2008 10:07:57 GMT</pubDate>
  </item>
  
  <item>
    <title>Common sense...</title>
    <link>http://www.codingthearchitecture.com/2008/01/28/common_sense.html</link>
    
      
        <description>
          &lt;p&gt;
I&#039;ve just spent a day helping out on a project I had some involvement with last year. For some reason it apparently puts people&#039;s minds at ease when an old face gets involved (actually, my face isn&#039;t that old - perhaps I mean&#039;t &#034;a familiar face&#034;?)
&lt;/p&gt;
&lt;p&gt;
Despite my prior involvement I can&#039;t claim to have particularly in-depth knowledge of the systems being worked with. I&#039;m certainly not familiar with the requirements that were being discussed. I wasn&#039;t really even there to solve a specific problem. My helping-out wasn&#039;t a formal arrangement - I was there, unaccountable and for one day only. &lt;/p&gt;
&lt;p&gt;
I don&#039;t reckon there&#039;s a lot of architecture you can get done in a day. However, you can do a lot &lt;i&gt;for&lt;/i&gt; the architecture in that day. By asking a few simple, common sense questions you can drive out what&#039;s missing, the reason that a project might be languishing:
&lt;ul&gt;
&lt;li&gt;&#034;What methodology are you following?&#034; Although a one- or two-word answer might result you&#039;re really asking them to prove it. &#034;Can I see the backlog?&#034; &#034;Have you signed off the architecture document?&#034; Most methodologies rely on commitment and accountability so if the team isn&#039;t clear on the approach they&#039;re unlikely to know what they&#039;re responsible for or who&#039;s relying on it.&lt;/li&gt;
&lt;li&gt;&#034;What problem does this design solve?&#034; Ok, as an outsider to a project I&#039;ve got to get some context, but I&#039;m surprised how many times a solution is given as a requirement. This often indicates that a technical solution has been conceived by those undertaking the analysis - the potential for standardisation, reuse and, worse, understanding is severely diminished. Furthermore, if you don&#039;t know what the problem is, you&#039;ve very little right to be confident in your solution.&lt;/li&gt;
&lt;li&gt;&#034;Why did you choose this solution?&#034; Problems usually have a corresponding space of solutions, not just a single one. Understanding why a solution was reached is another step in having confidence in it. You also start to learn how reversible the decision is or how flexible the solution is and thus how much  effort you might want to spend refining it.&lt;/li&gt;
&lt;li&gt;&#034;Can you do this?&#034; There are numerous reasons things can&#039;t be done, particularly time, money and skills. It can be instructive to find out if the technical skills exist and, more importantly, responsibility for them seems to stick to someone in the team. Remember, the system/application needs to be built!
&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;
That&#039;s probably more than a day&#039;s worth of discussion in those few questions (indeed, it turned out to be a &lt;i&gt;long&lt;/i&gt; day!). Whether it makes any long-term difference to the project is ultimately up to the project team.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.codingthearchitecture.com/2008/01/28/common_sense.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2008/01/28/common_sense.html</guid>
    <pubDate>Mon, 28 Jan 2008 11:21:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Who&#039;s paying for this?</title>
    <link>http://www.codingthearchitecture.com/2007/12/07/whos_paying_for_this.html</link>
    
      
        <description>
          &lt;p&gt;
I like working with users as they often give really good feedback. They&#039;re the ones who have to live with the software every day so tend to be very clear about how it helps/hinders their work.
&lt;/p&gt;
&lt;p&gt;
Is it naive to think that making users happy by meeting their requirements is the primary goal of a software delivery, though? In my experience, which is &lt;i&gt;not&lt;/i&gt; in COTS software development, the end users are not paying for the software - their boss is. Yet we often grant users great import, perhaps because their feedback is more immediate and tangible. Granted, it is unlikely that giving users unusable software is going to prove successful. Conversely, giving users exactly what they want is also unlikely to be a success. For a start, it could well prove financially prohibitive (eg, technically difficult)!
&lt;/p&gt;
&lt;p&gt;
I consider one of my responsibilities as an architect that of keeping delivery focused on what matters. Sometimes this may mean giving the users what they want, sometimes it may mean telling the users what they&#039;re getting (and helping smooth the transition). After all, change isn&#039;t always just about transparently replacing the technology.
&lt;/p&gt;
&lt;p&gt;
I&#039;m sure I&#039;m not the only person who&#039;s worked on software that has delivered what users wanted but has never seen the light of day. Were the users wrong or were we simply speaking to the wrong people?
&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.codingthearchitecture.com/2007/12/07/whos_paying_for_this.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2007/12/07/whos_paying_for_this.html</guid>
    <pubDate>Fri, 07 Dec 2007 10:43:53 GMT</pubDate>
  </item>
  
  </channel>
</rss>
