<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Simon Brown - coding tag</title>
  <link>http://www.simonbrown.je/blog/tags/coding/</link>
  <description>My thoughts on software development and technology ... now from Jersey in the Channel Islands!</description>
  <language>en</language>
  <copyright>Simon Brown</copyright>
  <lastBuildDate>Wed, 12 Nov 2008 19:24:22 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>How do you maintain your coding skills?</title>
    <link>http://www.codingthearchitecture.com/2008/08/15/how_do_you_maintain_your_coding_skills.html</link>
    
      
        <description>
          &lt;p&gt;
Jason Chambers has a great blog entry called &lt;a href=&#034;http://jasondchambers.blogspot.com/2008/08/do-architects-need-coding-skills.html&#034;&gt;Do Architects need coding skills?&lt;/a&gt;, which talks about why architects need to be able to code. Given that this site is called &lt;a href=&#034;http://www.codingthearchitecture.com/pages/about.html&#034;&gt;Coding the Architecture&lt;/a&gt;, our thoughts on this will come as no surprise. In addition though, he also asks the following.
&lt;/p&gt;

&lt;blockquote&gt;
However, a more contentious question maybe - Do Architects need to maintain their coding skills once they&#039;ve achieved the lofty status of architect. Well, I think it depends. Enterprise architects - possibly not (more on that later). However, for application, solution or product architects - I would say yes. There are many reasons why I think this is the case.
&lt;/blockquote&gt;

&lt;p&gt;
Again, I agree with what he says - you need to retain a certain level of technical knowledge so that you can competently define an architecture using it. And that itself raises another interesting question - *how* do you maintain your coding skills as an architect?
&lt;/p&gt;

&lt;p&gt;
One of the problems with being promoted to or assigned as a software architect is that you might find that you can&#039;t code as much as you&#039;d like to. This may be down to time pressures because you have a lot of &#034;architecture&#034; work to do, or it might simply be down to company politics not allowing you to code. It happens, and when it does, you run the risk of introducing a &lt;a href=&#034;/pages/book/mind-the-gap.html&#034;&gt;huge great gap between yourself and the development team&lt;/a&gt;. All is not lost though, because some of my advice for addressing this gap also applies here.
&lt;/p&gt;

&lt;p&gt;
There&#039;s obviously no substitute for coding on a real project, but getting involved with the code reviews is one way to at least keep your mind fresh with technology and how it&#039;s being used.  Of course, you probably have more scope outside of work to maintain your coding skills; from contributing to an open source project through to continuously playing with the latest language/framework/API that takes your fancy. &lt;a href=&#034;http://www.codingthearchitecture.com/2006/05/03/keeping_up.html&#034;&gt;Books, blogs and podcasts&lt;/a&gt; will get you so far, but sometimes you just have to break out that IDE.
&lt;/p&gt;&lt;p&gt;&lt;a href=&#034;http://www.codingthearchitecture.com/2008/08/15/how_do_you_maintain_your_coding_skills.html&#034;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.simonbrown.je/blog/2008/08/15/how_do_you_maintain_your_coding_skills.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2008/08/15/how_do_you_maintain_your_coding_skills.html</guid>
    <pubDate>Fri, 15 Aug 2008 14:38:00 GMT</pubDate>
  </item>
  
  <item>
    <title>My role</title>
    <link>http://www.simonbrown.je/blog/2007/08/10/my_role.html</link>
    
      
        <description>
          &lt;p&gt;
Another week over and another two projects done and dusted. The first project started *and* finished this week. It was a two day technical consulting engagement where I helped out a support team fix some low level technical issues and assessed the suitability of a physical architecture of an FX trading system. The second, for another capital markets organisation, was the completion of a risk management system that we&#039;ve been working on for the past couple of months. I&#039;ve been working as the technical architect on a 3-days a week basis, where I&#039;ve been doing everything including architecture, development, testing and support. 
&lt;/p&gt;

&lt;p&gt;
Although completely different, both projects have been fun in different ways and this is the thing that I really like about consulting. It does sound cliched, but I do like the variety of work. And that raises an interesting question that I *always* seem to get asked.
&lt;/p&gt;

&lt;blockquote&gt;
What exactly do you do?
&lt;/blockquote&gt;

&lt;p&gt;
I tend to introduce myself as a &#034;technical architect&#034; although, more often than not, I do clarify this by saying that I&#039;m a &#034;hands-on software architect&#034; or an &#034;architect with a technology focus&#034;. People ask me, particularly when I&#039;m interviewing them, &#034;what would be a typical role for you?&#034;. I actually don&#039;t have a &#034;typical&#034; role, but I do have a small set of typical *roles* that include the following.
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&#034;Hands-on&#034; software/application/technical/system architecture, where I get involved in :&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Requirements capture and architecture definition.&lt;/li&gt;
&lt;li&gt;Delivery of the architecture, proving the non-functional requirements.&lt;/li&gt;
&lt;li&gt;Design, development and testing.&lt;/li&gt;
&lt;li&gt;Quality assurance.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Coaching/mentoring/training of aspiring software architects.&lt;/li&gt;
&lt;li&gt;Technology consulting.&lt;/li&gt;
&lt;li&gt;Technology troubleshooting.&lt;/li&gt;
&lt;li&gt;Architecture consulting.&lt;/li&gt;
&lt;li&gt;Architecture reviews.&lt;/li&gt;
&lt;li&gt;Project audits and health checks.&lt;/li&gt;
&lt;li&gt;Technical due diligence on projects and organisations (e.g. for venture capital companies, process improvement, consolidation, etc).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
My biggest roles are certainly the hands-on software architecture roles, and I find that the other stuff fits in quite well in the spare time between projects or during those projects when I&#039;m working in a part-time capacity. I also find that the experiences picked up from the shorter roles help when I&#039;m doing the hands-on architecture work, and vice-versa. A good example came this week - seeing a support team in action has made my rethink the way that I architect new systems, making them more supportable and support team friendly.
&lt;/p&gt;

&lt;p&gt;
So what do I do? Mainly software architecture, but then there&#039;s a whole bunch of other stuff that&#039;s also technical in nature. &#034;&lt;a href=&#034;http://www.codingthearchitecture.com/&#034;&gt;Coding the Architecture&lt;/a&gt;&#034; sums up my role well. ;-)
&lt;/p&gt;


        </description>
      
      
    
    
    
    <comments>http://www.simonbrown.je/blog/2007/08/10/my_role.html#comments</comments>
    <guid isPermaLink="true">http://www.simonbrown.je/blog/2007/08/10/my_role.html</guid>
    <pubDate>Fri, 10 Aug 2007 19:31: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;&lt;p&gt;&lt;a href=&#034;http://www.codingthearchitecture.com/2007/07/13/think_like_an_architect.html&#034;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.simonbrown.je/blog/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>
