<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/">

  <channel rdf:about="http://www.codingthearchitecture.com/">
    <title>Coding the Architecture</title>
    <link>http://www.codingthearchitecture.com/</link>
    <description>Reducing the gap between developers and architects</description>
    <items>
      <rdf:Seq>
        
        <rdf:li resource="http://www.codingthearchitecture.com/2008/07/17/following_the_specification.html" />
        
        <rdf:li resource="http://www.codingthearchitecture.com/2008/07/11/london_user_group_july_2008.html" />
        
        <rdf:li resource="http://www.codingthearchitecture.com/2008/07/07/who_should_own_the_non_functional_tests.html" />
        
      </rdf:Seq>
    </items>
  </channel>

  
  <item rdf:about="http://www.codingthearchitecture.com/2008/07/17/following_the_specification.html">
    <title>Following the specification</title>
    <link>http://www.codingthearchitecture.com/2008/07/17/following_the_specification.html</link>
    
      
        <description>
          &lt;p&gt;
Back in the days when J2EE app servers were the best thing since sliced bread, I remember having lots of discussions with people about the J2EE specifications and I don&#039;t mind admitting that it was always my goal to build a truly spec compliant application. For example, file access from the EJB tier was explicitly forbidden in the specification; because of reasons around portability, lack of file system transactionality, etc. Fast forward a couple of years, and I started to realise that a lot of this stuff didn&#039;t really matter. File access via the EJB tier actually did work and it was much simpler than writing JCA connectors. In addition, and in the same way that I have almost never swapped out a database during a development project, it didn&#039;t really matter if my J2EE application was portable or not. We&#039;d develop on WebLogic/WebSphere/etc and we&#039;d deploy on the same platform.
&lt;/p&gt;

&lt;p&gt;
Earlier in the week I was talking to a group of people who were defining the architecture for a Java EE system and they started asking how they were going to access the file system from within their EJB tier. I&#039;m curious ... what&#039;s the general feeling about specification compliance these days? Do you care whether your applications follow all of the recommended guidelines, or do you take a pragmatic view that just asks whether it works? How important is this to you as an architect?
&lt;/p&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://www.codingthearchitecture.com/2008/07/11/london_user_group_july_2008.html">
    <title>London User Group - July 2008</title>
    <link>http://www.codingthearchitecture.com/2008/07/11/london_user_group_july_2008.html</link>
    
      
        <description>
          &lt;p&gt;
The next London user group is Tuesday 15th July and it&#039;ll be a social event rather than the usual presentation/discussion session. It&#039;s summer and we&#039;ve all been really busy recently, so we thought we&#039;d take some time out to relax. We&#039;ll be at &lt;a href=&#034;http://maps.google.co.uk/maps?f=q&amp;hl=en&amp;geocode=&amp;q=EC1R+0EG&amp;ie=UTF8&amp;ll=51.523137,-0.10525&amp;spn=0.00769,0.017166&amp;z=16&amp;iwloc=addr&#034;&gt;The Crown&lt;/a&gt; (just around the corner from Skills Matter) from about 6:30ish. Please feel free to
come along and join the informal discussion.
&lt;/p&gt;

        </description>
      
      
    
  </item>
  
  <item rdf:about="http://www.codingthearchitecture.com/2008/07/07/who_should_own_the_non_functional_tests.html">
    <title>Who should own the non-functional tests?</title>
    <link>http://www.codingthearchitecture.com/2008/07/07/who_should_own_the_non_functional_tests.html</link>
    
      
        <description>
          &lt;p&gt;
This is a follow-up to a post entitled &lt;a href=&#034;http://www.codingthearchitecture.com/2007/11/05/performance_tuning_java_systems.html&#034;&gt;Performance tuning Java systems&lt;/a&gt; that I made last year, which talked about some performance testing that I was doing for a customer. Last week, I went back to the same customer to make some small tweaks to the test scripts, and this very simple act highlighted something I thought was very interesting.
&lt;/p&gt;

&lt;p&gt;
The key thing about the system being tested is that it&#039;s a customized version of an existing vendor product (a high volume, low latency trading platform), with the vendor being responsible for making all of the changes. At some point last year, my customer wanted to run some tests to ensure that the platform could grow with their business, and that&#039;s where I got involved. After a round of testing, environment reconfiguration and patches, the system more or less delivered on what it promised.
&lt;/p&gt;

&lt;p&gt;
Fast-forward to the current day and I was bought back in to make some changes to the test scripts, because the vendor had made some changes to their web application. Since our performance tests were JMeter based, those changes had a knock-on effect on the tests. The thing I found interesting is that the performance test pack hadn&#039;t been handed over to the vendor. Regardless of the reasons, the benefits of doing this are fairly clear.
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Ownership&lt;/b&gt; : although it&#039;s good that my customer wanted to proactively test some of the non-functional aspects of the software, I can&#039;t help feeling that the software vendor should have ownership of the test pack. My understanding is that they do little in the way of non-functional testing themselves, so this is an ideal opportunity to rectify this.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Continuous execution&lt;/b&gt; : if the vendor has ownership, they can include the test pack as a part of their integration/build/release process for continuous execution and early warning of performance degrading changes.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Accuracy&lt;/b&gt; : I like to think that we did a good job at putting together the performance testing scripts, but we don&#039;t have the inside knowledge of the system that the vendor has. Vendor ownership would ensure that the test scripts are as accurate and representative as possible.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Up to date&lt;/b&gt; : the test scripts are inherently tied to the AJAX web application, which means that they need to be kept in sync when changes are made to the user experience. Again, the vendor is best positioned to do this, and taking a more proactive approach would ensure that user experience changes don&#039;t degrade the non-functional characteristics of the software.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The overriding question here is why doesn&#039;t the vendor undertake their own performance testing? They *should* take responsibility for the non-functional characteristics of their software, particularly when they are making claims of how fast and scalable it is. But perhaps more interesting is that the vendor of another product in use in the same also doesn&#039;t do performance testing. Shouldn&#039;t we be asking more from commercial product vendors?
&lt;/p&gt;
        </description>
      
      
    
  </item>
  

</rdf:RDF>
