<?<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Living Software - Instil's Team Blog</title>
	<atom:link href="http://www.instilsoft.com/work/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.instilsoft.com/work</link>
	<description></description>
	<pubDate>Sat, 22 Aug 2009 08:18:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Java DevDays</title>
		<link>http://www.instilsoft.com/work/?p=68</link>
		<comments>http://www.instilsoft.com/work/?p=68#comments</comments>
		<pubDate>Sat, 22 Aug 2009 08:18:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.instilsoft.com/work/?p=68</guid>
		<description><![CDATA[We are helping organise a Java DevDays (http://devdays.info) event in Belfast and are looking for speakers and topics.   We&#8217;ll definitely be covering Java server side development, but one suggestion is to extend things to cover Android, Scala and perhaps even Flex (not Java of course, but very Java-esque).
A date for this event is yet to [...]]]></description>
			<content:encoded><![CDATA[<p>We are helping organise a Java DevDays (http://devdays.info) event in Belfast and are looking for speakers and topics.   We&#8217;ll definitely be covering Java server side development, but one suggestion is to extend things to cover Android, Scala and perhaps even Flex (not Java of course, but very Java-esque).</p>
<p>A date for this event is yet to be announced, but if you would like to get your vote in early for things you would like to see covered, do let us know.  And spread the word.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.instilsoft.com/work/?feed=rss2&amp;p=68</wfw:commentRss>
		</item>
		<item>
		<title>OSGi in Anger!</title>
		<link>http://www.instilsoft.com/work/?p=66</link>
		<comments>http://www.instilsoft.com/work/?p=66#comments</comments>
		<pubDate>Sat, 22 Aug 2009 08:09:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.instilsoft.com/work/?p=66</guid>
		<description><![CDATA[Instil will be talking about our experiences with OSGi at the next UK OSGi User&#8217;s Group meeting in October.
Title of Presentation
OSGi in Anger
Brief Synopsis
Telecom Web Services is an application framework that enables the creation of SOAP and RESTful applications over telecom capabilities such as SMS, MMS, Location, etc.
Starting off life as a single monolithic project, [...]]]></description>
			<content:encoded><![CDATA[<p>Instil will be talking about our experiences with OSGi at the next UK OSGi User&#8217;s Group meeting in October.</p>
<p><strong>Title of Presentation</strong><br />
OSGi in Anger</p>
<p><strong>Brief Synopsis<br />
</strong>Telecom Web Services is an application framework that enables the creation of SOAP and RESTful applications over telecom capabilities such as SMS, MMS, Location, etc.</p>
<p>Starting off life as a single monolithic project, the system has evolved into a highly modular product made up of many OSGi bundles and a design that relies heavily on OSGi services to support core infrastructure and to enable OCP-style extensibility.</p>
<p>With 10000+ unit tests, TWS is a fairly large and complex system, but thanks mostly to OSGi it has managed to maintain its design integrity and yet remain relatively cheap and easy to work with and extend.</p>
<p>However, developing with OSGi has not been without its own share of pain, and in this talk Tara will discuss how these issues were overcome as well as how its many great features were put to effective use, and how they helped solve many problems:</p>
<ul>
<li>The virtues of enforced modularity (on a large project)</li>
<li>Working with OSGi services and how services were used to underpin many design decisions</li>
<li>Wiring &amp; Spring DM</li>
<li>Working through the pain barrier - Hibernate, build, perceptions of complexity,&#8230;</li>
<li>Testing</li>
<li>Lessons learned</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.instilsoft.com/work/?feed=rss2&amp;p=66</wfw:commentRss>
		</item>
		<item>
		<title>Twittering Instillers</title>
		<link>http://www.instilsoft.com/work/?p=63</link>
		<comments>http://www.instilsoft.com/work/?p=63#comments</comments>
		<pubDate>Sun, 01 Mar 2009 10:00:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.instilsoft.com/work/?p=63</guid>
		<description><![CDATA[We have joined the great unwashed and are twittering away about software and life.  You can follow Tara at http://twitter.com/TaraSimpson and Marty at http://twitter.com/henderson_mk.
]]></description>
			<content:encoded><![CDATA[<p>We have joined the great unwashed and are twittering away about software and life.  You can follow Tara at <a href="http://twitter.com/TaraSimpson">http://twitter.com/TaraSimpson</a> and Marty at <a href="http://twitter.com/henderson_mk">http://twitter.com/henderson_mk</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.instilsoft.com/work/?feed=rss2&amp;p=63</wfw:commentRss>
		</item>
		<item>
		<title>Instil to Present at SQC Conference</title>
		<link>http://www.instilsoft.com/work/?p=57</link>
		<comments>http://www.instilsoft.com/work/?p=57#comments</comments>
		<pubDate>Wed, 26 Nov 2008 23:22:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.instilsoft.com/work/?p=57</guid>
		<description><![CDATA[We will be presenting at next year&#8217;s Software &#38; Systems Quality Conference in Dublin, March 2009. 
More information can be found at the SQC Ireland conference website.
]]></description>
			<content:encoded><![CDATA[<p>We will be presenting at next year&#8217;s Software &amp; Systems Quality Conference in Dublin, March 2009. </p>
<p>More information can be found at the <a href="http://www.sqs-conferences.com/ire/program/programme.htm">SQC Ireland conference website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.instilsoft.com/work/?feed=rss2&amp;p=57</wfw:commentRss>
		</item>
		<item>
		<title>Growing in Demanding Times</title>
		<link>http://www.instilsoft.com/work/?p=49</link>
		<comments>http://www.instilsoft.com/work/?p=49#comments</comments>
		<pubDate>Thu, 13 Nov 2008 21:10:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.instilsoft.com/work/?p=49</guid>
		<description><![CDATA[Times are undoubtedly tough.  For many it is a time to bunker down and consolidate - protect what you&#8217;ve got and perhaps even shed a bit of excess.  And indeed, we have already seen one customer go to wall, not through having the wrong product, but through venture capitalists getting themselves overly and unnecessarily anxious.
Apparently [...]]]></description>
			<content:encoded><![CDATA[<p>Times are undoubtedly tough.  For many it is a time to bunker down and consolidate - protect what you&#8217;ve got and perhaps even shed a bit of excess.  And indeed, we have already seen one customer go to wall, not through having the wrong product, but through venture capitalists getting themselves overly and unnecessarily anxious.</p>
<p>Apparently the companies that came out of America&#8217;s Great Depression best were the ones that spent on marketing and advertising.  Even in tough times, companies can grow and prosper.  Our belief is that even in today&#8217;s tougher world, there is way more software to be written than there are people capable of writing it.</p>
<p>That&#8217;s partly why we are growing.  The other reason is that no matter how good or bad the times are, we see a real need for a software company at the top end of the market - one renowned for its excellence.   Growing is essentially validation of that primary goal.</p>
<p>So welcome, Marty Henderson. Marty joins Instil with 8 years of broad industry experience, bringing with him a raft of Java, JEE and .NET experience.  His first job is helping a valued customer develop and deliver their Java Portal for release early next year.   More importantly he will be working on a number of product-related ideas in the background.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.instilsoft.com/work/?feed=rss2&amp;p=49</wfw:commentRss>
		</item>
		<item>
		<title>Raising the Bar</title>
		<link>http://www.instilsoft.com/work/?p=33</link>
		<comments>http://www.instilsoft.com/work/?p=33#comments</comments>
		<pubDate>Tue, 12 Aug 2008 21:40:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.instilsoft.com/work/?p=33</guid>
		<description><![CDATA[Clearing out some clutter from my document repository, I discovered a half-baked and half-completed document from a few years back, written in an attempt to articulate what I felt at the time were essential steps to improving the developer culture within a particular customer&#8217;s organisation.
This is stuff that has been written about a thousand times, [...]]]></description>
			<content:encoded><![CDATA[<p>Clearing out some clutter from my document repository, I discovered a half-baked and half-completed document from a few years back, written in an attempt to articulate what I felt at the time were essential steps to improving the developer culture within a particular customer&#8217;s organisation.</p>
<p>This is stuff that has been written about a thousand times, and much of it is now part of mainstream developer culture (well, almost).  Some of the points will even seem a little dated.  But like trawling through long forgotten photographs, it can be interesting to see were you&#8217;ve come from.  </p>
<p>I should point out that this was written in 2004/2005, not long after reading Mary Poppendieck&#8217;s <a href="http://www.poppendieck.com">Lean Software Development</a> - thus the frequent references.  It was also written with reference to a particular customer&#8217;s setup.  Not every organisation is the same, so some might disagree with these points or perhaps find that I didn&#8217;t go far enough (it was half-completed afterall), but I do think most of the points hold true today regardless.</p>
<p><b>1. Foster a culture of technical excellence: </b><br />
* <em>Make training a priority.   </em>Allocate a training budget, and make sure it is spent.  Work closely with developers, their mentors and tech leads to ensure that training needs are met.  At the same time ensure that training is appropriate to the needs of the individual and the company (i.e. spend the budget wisely).</p>
<p>*<em>Encourage staff to purchase technical books and literature (and make it easy to do so)</em>.    A book purchasing scheme is not only an excellent and affordable way to train staff, it is also highly motivating:  Staff consider it as a perk.  Developers should be free to buy books on all aspects of software engineering; requirements elicitation, testing, process, design, etc.	Create a recommended reading list on the company WIKI.</p>
<p>*<em>Encourage and reward certification. </em>Be prepared to fund certification training, time-off and the actual exam(s).</p>
<p>*<em>Conferences. </em> Every developer should go to at least one, and come back inspired</p>
<p><b>2. Ensure all developers are grounded in key software engineering skills</b><br />
* <em>Educate staff on requirements elicitation techniques: </em>breadth before depth, use casing, user stories, prototypes, etc. </p>
<p>* <em>Educate staff on testing and testing techniques:</em> Boundary testing, equivalence classes, unit testing, acceptance testing, etc.</p>
<p>* <em>Ensure developers are grounded in OO design principals and methods: </em> Open-Closed principle, DRY, design by contract, test-driven development, refactoring, single responsibility principle, simplicity, etc.  </p>
<p><b>3. Make quality a cornerstone of all activities</b><br />
* <em>Introduce code reviews: </em>Define a simple, effective code review process.  Reviewing is not just about catching defects early (although this is their primary purpose), it’s about shared learning and applied consistency.</p>
<p>* <em>Introduce (automated) developer testing.  </em>Make developers accountable (see empowerment).  The culture of ‘I think it works, so I’ll throw it over the wall and see what happens’ should be replaced with ‘I know it works because I’ve tested it and have the automated tests to prove it’.<br />
   - Ensure that developers understand the difference between unit testing (building the code right) and acceptance testing (building the right code).<br />
   - Ensure developers understand the significance of TDD as a design methodology.  For product development to be truly cost effective, the concept of sufficient design should be understood and adopted by all.</p>
<p>* <em>Introduce continuous integration (CI): </em>  CI tools such as CruiseControl will, when used as an integral part of the development process, reduce development cost.  Defects are fixed when introduced, not when found 3 months later during manual testing.  CI is an essential ingredient for any software project.</p>
<p>* <em>Introduce ‘nag-ware’: </em> Use freely available tools to inform developers when standards have been broken, OO coupling is bound too tightly, etc.   </p>
<p><b>4. Define and implement programming guidelines</b><br />
* <em>Define exception handling guidelines:</em> Developers should understand the difference between checked and unchecked exceptions.  They should also, by and large, avoid the use of checked exceptions– they complicate code and the overall programming model, particularly with large scale applications.  (Note that Java is the only language to use checked exceptions.)   </p>
<p>* <em>Define logging guidelines: </em> Moreover, don’t write entry and exit diagnostics:  Use AspectJ to weave standard entry and exit logging rules into source code.  Not only is code clean and quicker to write, but logging is more consistent since one aspect/approach exists for the entire application.  (Logging is a cross-cutting concern, i.e. something that applies to most packages, classes and methods and as such be removed from all modules.) </p>
<p>* <em>Define Javadoc guidelines:</em> Javadoc, and to a lesser extent unit tests, should be used to document intent.  Developers should understand how to document using Javadoc.   Documenting at the package, class and method level encourages developers to reason about their code.   Javadoc should be published via standard tools, e.g. Maven.</p>
<p>* <em>Re-define style guidelines:</em> Remove superfluous commentary requirements from source – it is simply noise, is time-consuming to maintain, is difficult to read and is mostly unnecessary.   Also, more generally, define when and how to comment code.  Insist that source code contains no hard tabs (so that it can be viewed in multiple editors).  Insist on explicit imports.  Go with convention - use either Sun&#8217;s or Eclipse&#8217;s formatting rules.</p>
<p>* <em>Allow guidelines to be adaptive:</em> Guidelines are not written in stone and should change with the times.  Guidelines that are found not to work should be simply removed altogether.</p>
<p><b>5. Create Slack for All Development Staff</b><br />
* All Developers, but especially technical design authorities, should be given the time and space to learn.  The implication being that time invested now will be time saved in the future.  Slack is about being given time to look above the parapet, to investigate new technologies, tools, techniques and methods with the goal of improving productivity, quality and lower costs.</p>
<p>* <em>Free technical leads to mentor and guide the team.</em>  Don’t assume that every team member understands your vision – people will go off in their own direction if not otherwise instructed.  Some will go off even when instructed.  Most developers, particularly graduates, need to undergo an apprenticeship – mentors and technical leads should be free to facilitate this.  (See nag-ware.)</p>
<p><b>6. Avoid doing things that can be done with tools</b><br />
* <em>Use AOP to weave in logging, security, etc.</em> Never write that which can be automated.  Never repeat cross-cutting concerns at the beginning and end of each and every method, e.g. entry and exit diagnostics, security, transaction demarcation, policies, etc.  <b>Use Spring</b>.</p>
<p>* Use Maven to publish test results, javadoc, Checkstyle/PMD reports, change logs, Subversion source cross-references, etc.  Maven provides excellent visibility into the current state, and therefore health, of a system.   </p>
<p><b>7. Empower developers (but make them accountable)</b><br />
* <em>See Mary Poppendieck’s Lean Software Development.</em></p>
<p>* <em>Adopt test driven development (TDD) as a standard development/design methodology. </em> Developer tests improve confidence, trust and quality.   Tests drive design. Tests provide visibility into a systems health.  Tests tell you how far you need to bring a design (is it sufficient?).    Developer testing should be placed firmly at the centre of every developer’s working practices.  (If you can’t test it, then you can’t code it.) </p>
<p><b>8. Communicate regularly but informally (whenever possible)</b><br />
* <em>Use a WIKI.  </em>Encourage developers to use the WIKI on a regular basis.  The WIKI should be viewed as the main portal for all informal but informative information.   It should be used to publish standards, processes, and titbits of information – indeed almost anything.  Appoint a wiki administrator whose job it is to organise the information on the WIKI so that it is easy to find, intuitive and consistent.   (Note that the WIKI is not home for formal documentation.) </p>
<p>* <em>Be agile:  </em>Have SCRUM meetings, use information radiators, etc</p>
<p>You can almost guess where this customer was when these points were written.  And I certainly could have gone on.  The good news is that they have since totally re-invented their developer culture for the better.  But I do wonder how many firms lack any discernible developer culture - one that fosters excellence at all levels?  Experience tells me that most developers are just too busy doing stuff, with their heads down below the parapet, unable or unwilling to create time to do things better.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.instilsoft.com/work/?feed=rss2&amp;p=33</wfw:commentRss>
		</item>
		<item>
		<title>Slides from Spring Ireland</title>
		<link>http://www.instilsoft.com/work/?p=24</link>
		<comments>http://www.instilsoft.com/work/?p=24#comments</comments>
		<pubDate>Fri, 18 Jul 2008 23:26:44 +0000</pubDate>
		<dc:creator>Tara</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[dynamic modules]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[osgi]]></category>

		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://www.instilsoft.com/work/?p=24</guid>
		<description><![CDATA[Here are the slides from my Spring Ireland presentation, given just before Rod Johnson&#8217;s keynote.
I had no idea what Rod was going to talk about, but having spent the past year developing an OSGi and Spring DM based application framework, I thought it would make an interesting diversion to talk about this rather than your [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://instilsoft.com/spring_osgi.pdf">Here are the slides</a> from my Spring Ireland presentation, given just before Rod Johnson&#8217;s keynote.</p>
<p>I had no idea what Rod was going to talk about, but having spent the past year developing an <a href="http://www.osgi.org">OSGi</a> and <a href="http://www.springframework.org/osgi">Spring DM</a> based application framework, I thought it would make an interesting diversion to talk about this rather than your usual Spring and JEE enterprise application .   Interestingly, immediately after my own presentation, Rod proceeded to enthuse about this hugely powerful combination, essentially validating a lot of choices we made way back when Spring DM was still in beta.</p>
<p>Little did we know at the time that Spring Source would be announcing their own OSGi and Spring DM based <a href="http://www.springsource.com/products/suite/applicationplatform">application platform</a> only a matter of weeks later.  The hints were there in the keynote, but no more than that.  </p>
<p>I should point out that there is little cross-over in Spring&#8217;s offering and the framework that we have been working on - they are 2 completely different beasts.  In upcoming posts, I intend talking a little more about this framework and about the many technical humps that had to be overcome in its development.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.instilsoft.com/work/?feed=rss2&amp;p=24</wfw:commentRss>
		</item>
		<item>
		<title>Training for Non-IT Graduates</title>
		<link>http://www.instilsoft.com/work/?p=11</link>
		<comments>http://www.instilsoft.com/work/?p=11#comments</comments>
		<pubDate>Thu, 17 Jul 2008 20:15:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Training]]></category>

		<category><![CDATA[Graduates]]></category>

		<category><![CDATA[Non-IT]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.instilsoft.com/work/?p=11</guid>
		<description><![CDATA[It&#8217;s ambitious, but at the start of September we will be taking a group of non-IT graduates on a 3 week journey into the wonderful world of programming and software engineering.  Starting from first principals, our goal is to instil the know-how and passion for creating great software and working applications.
The course will cover [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s ambitious, but at the start of September we will be taking a group of non-IT graduates on a 3 week journey into the wonderful world of programming and software engineering.  Starting from first principals, our goal is to instil the know-how and passion for creating great software and working applications.</p>
<p>The course will cover everything from programming fundamentals (with Java), testing, tools, web application development, databases (and SQL), building, configuration management (and SVN), use-casing, prototyping, and the software lifecycle.  Delegates will also get a chance to create a mini-application from the ground up, using their newly acquired knowledge, with the instructor acting as the customer.</p>
<p>This is one of a number of induction courses that we have supplied to <a href="http://www.liberty-it.co.uk">Liberty IT</a> over the years, and thankfully they continue to be extremely pleased with the value and quality of our training.  But there is no doubting the ambitiousness of this course - taking a group of newbies and converting them into solid engineers over 3 intensive weeks is a huge challenge, but a challenge that we are extremely excited about!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.instilsoft.com/work/?feed=rss2&amp;p=11</wfw:commentRss>
		</item>
		<item>
		<title>New look</title>
		<link>http://www.instilsoft.com/work/?p=8</link>
		<comments>http://www.instilsoft.com/work/?p=8#comments</comments>
		<pubDate>Thu, 17 Jul 2008 18:29:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.instilsoft.com/work/?p=8</guid>
		<description><![CDATA[Well here it is at last, our new look website. First of all many thanks to the good folks at Streamon for the overall design and CSS. And all in return for a little of our .NET development expertise.
Looking ahead, we will continue to combine our joint design and programming expertise in future work.  [...]]]></description>
			<content:encoded><![CDATA[<p>Well here it is at last, our new look website. First of all many thanks to the good folks at <a href="http://streamon.net">Streamon</a> for the overall design and CSS. And all in return for a little of our .NET development expertise.</p>
<p>Looking ahead, we will continue to combine our joint design and programming expertise in future work.  Needless to say, if you like this site  and would like to have your own updated, then feel free to work through us.</p>
<p>As an fyi, this site is a mixture of static content (.htm files) and dynamic content, driven through Wordpress.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.instilsoft.com/work/?feed=rss2&amp;p=8</wfw:commentRss>
		</item>
		<item>
		<title>Instil joins board of Momentum</title>
		<link>http://www.instilsoft.com/work/?p=1</link>
		<comments>http://www.instilsoft.com/work/?p=1#comments</comments>
		<pubDate>Wed, 16 Jul 2008 23:30:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.instilsoft.com/work/?p=1</guid>
		<description><![CDATA[
Instil has been elected to the board of Momentum, the industry body for the ICT sector in Northern Ireland. Not only are we delighted to have been elected, but our sincere hope is to bring real value in the coming months.


Please free to get in touch with us if there is anything you feel we [...]]]></description>
			<content:encoded><![CDATA[<p>
Instil has been elected to the board of <a href="http://www.momentumni.org/">Momentum</a>, the industry body for the ICT sector in Northern Ireland. Not only are we delighted to have been elected, but our sincere hope is to bring real value in the coming months.
</p>
<p>
Please free to get in touch with us if there is anything you feel we can do to improve what Momentum does</p>
]]></content:encoded>
			<wfw:commentRss>http://www.instilsoft.com/work/?feed=rss2&amp;p=1</wfw:commentRss>
		</item>
	</channel>
</rss>
