<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The Turning Point</title>
	
	<link>http://franktrindade.com</link>
	<description>Software, organisations and some nonsense</description>
	<lastBuildDate>Sun, 21 Apr 2013 07:51:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain="franktrindade.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<image>
		<url>http://0.gravatar.com/blavatar/0e0398d68fcb7be417ef0869a437fd48?s=96&amp;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>The Turning Point</title>
		<link>http://franktrindade.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://franktrindade.com/osd.xml" title="The Turning Point" />
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/franktrindade" /><feedburner:info uri="franktrindade" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://franktrindade.com/?pushpress=hub" /><feedburner:emailServiceId>franktrindade</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Development is support, support is development</title>
		<link>http://feedproxy.google.com/~r/franktrindade/~3/b97h2inBSE4/</link>
		<comments>http://franktrindade.com/2012/11/21/development-is-support-support-is-development/#comments</comments>
		<pubDate>Tue, 20 Nov 2012 22:30:37 +0000</pubDate>
		<dc:creator>Francisco Trindade</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Operations]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[it]]></category>
		<category><![CDATA[maintenance]]></category>
		<category><![CDATA[support]]></category>

		<guid isPermaLink="false">http://blog.franktrindade.com/?p=1062</guid>
		<description><![CDATA[Over the years I have worked in software development, one discussion I&#8217;ve often observed is the benefits of structuring software in projects, as most of the companies still do today. It seems that the de facto standard for software in an enterprise still is (rough sketch, this process varies a lot from company to company): Someone has &#8230;<p><a href="http://franktrindade.com/2012/11/21/development-is-support-support-is-development/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=1062&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Over the years I have worked in software development, one discussion I&#8217;ve often observed is the benefits of structuring software in projects, as most of the companies still do today. It seems that the <em>de facto</em> standard for software in an enterprise still is (rough sketch, this process varies a lot from company to company):</p>
<ol>
<li>Someone has an idea</li>
<li>Idea is considered good enough to be invested in</li>
<li>A team is assembled, and they discuss the vision and set up a plan</li>
<li>Plan is executed with software being written</li>
<li>Team hands over the project to a support team</li>
<li>Software is being used (hopefully)</li>
<li>Support team keeps software alive and kicking throughout the years</li>
</ol>
<p>Admittedly, this is just a simplified version of what actually happens. Organisations differ in how they execute all of these phases and how long it takes to go from one to the other, but my main point is that there is usually a project team, that creates and puts a product live, and they will leave once everything is done. In some cases there will even be a country difference, where a local team will do the development, handing over to an offshore support team with the aim to keep the overall cost low.</p>
<p>As a consultant, I&#8217;ve seen the consequence of this behaviour too many times. Since no one is actively working on that product anymore, it keeps decaying, with some patches made once in a while to add new functionality. After a few years everyone realizes that it is cheaper to just throw the big ball of mud that they currently have away and rewrite the product from scratch&#8230; and the cycle starts again.</p>
<p>Now this helps to keep developers employed, so I should be happy about it, but from a company&#8217;s perspective, there are a few problems with this model:</p>
<p><strong>It assumes that a software project is something static, that you can write, finish and then just use it for ever.</strong> Since it isn&#8217;t, the result is that bugs are being fixed by people that didn&#8217;t write the code and don&#8217;t have the same understanding of it, which results in poor support and probably more bugs.</p>
<p><strong>It assumes that not only software is static, but also that the business is.</strong> So instead of thinking about software as something that is there to help an ever evolving business, it delivers a package that the business or their customers have to adapt to, probably resulting in worse business performance.</p>
<p>With the devops movement gaining momentum around the world, this scenario is currently changing in the development phase of a project, as Jen described <a href="http://www.jennifersmith.co.uk/blog/2012/10/06/you-write-it/">here</a>. We are starting to see more and more cases where development team support the application while they are building it, which is definitely a step forward, but it is not all that needs to happen. <em>Supporting a product during its initial development phase is one thing, evolving and supporting it throughout its existence is another.</em></p>
<p>If a product is live and being used, than it should be evolving as the needs within that user group (and even new user groups) evolve. And if that&#8217;s the case, it should be treated as a first class citizen, where maintenance and evolution of the code walk together, guaranteeing that code doesn&#8217;t turn into legacy. It doesn&#8217;t mean it needs a team the same size as the one used to build it in the first place, but it needs a team that is in contact with the customer and aiming at evolving the product, not just patching it and keeping it running.</p>
<p>We should stop using support as a bad word. Actually, we should stop using the word support completely. We should start talking about software evolution.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/franktrindade.wordpress.com/1062/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/franktrindade.wordpress.com/1062/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=1062&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/franktrindade?a=b97h2inBSE4:yikpJTquyok:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/franktrindade?a=b97h2inBSE4:yikpJTquyok:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://franktrindade.com/2012/11/21/development-is-support-support-is-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d340cf8d454f82eddcade05302ea6af3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Francisco Trindade</media:title>
		</media:content>
	<feedburner:origLink>http://franktrindade.com/2012/11/21/development-is-support-support-is-development/</feedburner:origLink></item>
		<item>
		<title>Evolving Infrastructure</title>
		<link>http://feedproxy.google.com/~r/franktrindade/~3/_KH9AWUljGo/</link>
		<comments>http://franktrindade.com/2012/11/06/evolving-infrastructure/#comments</comments>
		<pubDate>Tue, 06 Nov 2012 13:59:45 +0000</pubDate>
		<dc:creator>Francisco Trindade</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Lean]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chef]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[it]]></category>
		<category><![CDATA[ops]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://blog.franktrindade.com/?p=1047</guid>
		<description><![CDATA[More than few years ago I&#8217;ve read the book Agile Modeling, by Scott Ambler, and it was quite a revelation for me. I was beginning to look into extreme programming and TDD at the time, and the fact that you could (and should) write software in an evolving manner instead of the usual big architecture &#8230;<p><a href="http://franktrindade.com/2012/11/06/evolving-infrastructure/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=1047&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>More than few years ago I&#8217;ve read the book <a href="http://books.google.com.au/books/about/Agile_Modeling.html">Agile Modeling</a>, by Scott Ambler, and it was quite a revelation for me. I was beginning to look into extreme programming and TDD at the time, and the fact that you could (and should) write software in an evolving manner instead of the usual big architecture up front that I had studied in university was quite refreshing and empowering.</p>
<p><em>(as a side note, I actually was going to use the title Agile infrastructure for this, but I&#8217;ve <a href="http://blog.franktrindade.com/2012/06/19/letting-go-of-agile/">promised I&#8217;m not to use the word anymore</a>)</em></p>
<p>Not sure how many people have read the book, but it basically goes through principles and techniques that enable you to write software one piece at a time, solving the problem at hand today, and worrying about tomorrow&#8217;s one tomorrow.</p>
<p>If I remember correctly, there was a sentence that went something like this (please don&#8217;t quote me on that):</p>
<blockquote><p><em>Your first responsibility is to make the code work for the problem you are solving now. The second one is the problem you are solving next.</em></p></blockquote>
<p>Many years have passed since the book has been written. Nowadays growing software while developing is what (almost) everyone is doing. The idea of drawing some kind of detailed architecture that will be implemented in a few months or years is completely foreign in most sensible organisations.</p>
<p>Basically, evolving software is almost not interesting anymore. People do it, and know how to do it (as I wrote this I&#8217;ve realised it isn&#8217;t actually true, a lot of companies don&#8217;t do it or know how to, but let&#8217;s keep in mind the ones that do&#8230;).</p>
<p>In the meantime, a lot has evolved and new areas that were completely static in the past are becoming increasingly dynamic, the current trendy one being IT infrastructure.</p>
<p>The uprise of virtual infrastructure and the so called devops movement have developed tools and practices that make it possible to create thousands of instances on demand and automatically deploy packages whenever and wherever you want. However the thinking behind infrastructure within most IT departments is the equivalent of waterfall for software.</p>
<p>I&#8217;m not just talking about auto-scaling here, since that seems to be a concept that&#8217;s easy to grasp. What I don&#8217;t quite get is why the same thinking that we have when writing software can&#8217;t be applied when creating the servers that will run it.</p>
<p>In other words:</p>
<ol>
<li>Start writing your application in one process, one server*, and put it live to a few users.</li>
<li>Try to increase the number of users until you hit a performance bottleneck</li>
<li>Solve the problem by making it better. Maybe multiple processes? Maybe more servers? Maybe you need some kind of service that will scale separately from the main app?</li>
<li>Repeat until you get to the next bottleneck</li>
</ol>
<p><em>* ok, two for redundancy&#8230;</em></p>
<p>The tools and practices are definitely there. We can automate every part of the deployment process, we can test it to make sure it&#8217;s working and we can refactor without breaking everything. However, there are a few common themes that come back when talking about this idea:</p>
<p><em>&#8220;If we do something like this we will do things too quickly and create low quality infrastructure&#8221;</em></p>
<p>This is the equivalent of &#8220;if we don&#8217;t write an UML diagram, how do we know what we are building?&#8221; argument that used to happen when evolving software was still mystery to most people. It&#8217;s easy to misunderstand simplicity as low quality, but that doesn&#8217;t need to (and shouldn&#8217;t) be the case. As with application code, once you put complexity in, is a major pain to take it out, and unnecessary complexity just increases the chance for problems. Simple solutions are and will always be more reliable and robust.</p>
<p><em>&#8220;We have lots of users so we know what we need in terms of performance&#8221;</em></p>
<p>If a new software project is being developed, it is pretty much understood nowadays that nobody knows what is going to happen and how it is going to evolve over time. So pretending that we know it in infrastructure land is just a pipe dream in my opinion.</p>
<p><em>&#8220;We have SLA&#8217;s to comply to&#8221;</em></p>
<p>SLA&#8217;s are the IT infrastructure equivalent of software regulations and certifications, sometimes useful, sometimes just a something we can use to justify spending money. If there are SLA&#8217;s, deal with it, but still in the simplest possible way. If you need 99.9% uptime, then provide 99.9% uptime, but don&#8217;t do that and also use a CDN to make things faster (or cooler) just in case.</p>
<p>As it&#8217;s said about test code, infrastructure code is code. Treat it the same way.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/franktrindade.wordpress.com/1047/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/franktrindade.wordpress.com/1047/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=1047&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/franktrindade?a=_KH9AWUljGo:nP6pGs_1cKw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/franktrindade?a=_KH9AWUljGo:nP6pGs_1cKw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://franktrindade.com/2012/11/06/evolving-infrastructure/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d340cf8d454f82eddcade05302ea6af3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Francisco Trindade</media:title>
		</media:content>
	<feedburner:origLink>http://franktrindade.com/2012/11/06/evolving-infrastructure/</feedburner:origLink></item>
		<item>
		<title>Estimating? Do It Quickly</title>
		<link>http://feedproxy.google.com/~r/franktrindade/~3/vb4PsVFEVrE/</link>
		<comments>http://franktrindade.com/2012/11/06/estimating-do-it-quickly/#comments</comments>
		<pubDate>Tue, 06 Nov 2012 04:57:48 +0000</pubDate>
		<dc:creator>Francisco Trindade</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Estimation]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[story points]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://blog.franktrindade.com/?p=1037</guid>
		<description><![CDATA[If you ever worked with me you would know I&#8217;m not a big fan of estimates, mostly for the reasons better explained here, here and here, but there are still moments within a project where there are a bunch of stories written and teams need to have a guess on how much time will be &#8230;<p><a href="http://franktrindade.com/2012/11/06/estimating-do-it-quickly/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=1037&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>If you ever worked with me you would know I&#8217;m not a big fan of estimates, mostly for the reasons better explained <a href="http://dannorth.net/2009/07/01/the-perils-of-estimation/">here</a>, <a href="http://www.industriallogic.com/blog/stop-using-story-points/">here</a> and <a href="http://softwaredevelopmenttoday.blogspot.com.au/2012/01/story-points-considered-harmful-or-why.html">here</a>, but there are still moments within a project where there are a bunch of stories written and teams need to have a guess on how much time will be needed</p>
<ul>
<li>the project might be beginning and we need to know what is realistic or not</li>
<li>there might be go to market activities that need to be synchronised in advance</li>
<li>there might be a fixed deadline and we need to understand if there is any chance of making it or not</li>
</ul>
<p>In cases like these, I&#8217;m still not a big fan of using planning poker or similar practices. First of all, it takes a _lot_ of time. Whoever has experienced a long session of estimation can probably remember people rolling their eyes as soon as we get to card number 54 (or around that&#8230;).</p>
<p>And handling the short attention span of tech people (which could probably be increased for the better) is not the only problem here. In every project there will be a lot of similar cards, and reestimating similar things over and over is probably not the most productive thing a software team could be doing, and also tests the patience of anyone involved.</p>
<p>Instead, what I&#8217;ve used in the past is a simple technique for group estimation (that I&#8217;m sure I saw somewhere before, so don&#8217;t credit it me for it) that will allow a group to get to some numbers with less time and effort.</p>
<p>1. Write all the stories you have in cards, and put them on top of a table.</p>
<p>2. Create 3 separate areas within the table, based on different timeframes. What I normally use is 1-5 days, 1-2 weeks and &#8220;too big&#8221;.</p>
<p>3. Ask the team to go over the stories and position in the categories they find appropriate. Let individual people move (and move again) cards however they want for a few minutes.</p>
<p>4. Let everyone go through the table and look at the cards, and observe the ones that are being moved between categories frequently.</p>
<p>5. Get the unstable cards and the ones in the &#8220;too big&#8221; category and discuss them within the team. Rewrite cards as appropriate.</p>
<p>6. Rinse and repeat if needed.</p>
<p>Is it precise? Probably not that much. Are any estimates precise? Definitely not. So far every time I&#8217;ve used we got a good level of results that were in the right timescale, which is probably the most you will get from software estimates anyway.</p>
<p>Regarding the fact that every story is not individually discussed within the team, a common argument in favour of detailes estimates, I believe there are better times to do that than when looking at all the cards with no context or experience working on them. Time to establish some story kick-offs maybe?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/franktrindade.wordpress.com/1037/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/franktrindade.wordpress.com/1037/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=1037&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/franktrindade?a=vb4PsVFEVrE:bsVjI8iyOv8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/franktrindade?a=vb4PsVFEVrE:bsVjI8iyOv8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://franktrindade.com/2012/11/06/estimating-do-it-quickly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d340cf8d454f82eddcade05302ea6af3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Francisco Trindade</media:title>
		</media:content>
	<feedburner:origLink>http://franktrindade.com/2012/11/06/estimating-do-it-quickly/</feedburner:origLink></item>
		<item>
		<title>LAST Conference – Subject to Change</title>
		<link>http://feedproxy.google.com/~r/franktrindade/~3/SubMpi5bzOk/</link>
		<comments>http://franktrindade.com/2012/08/06/last-conference-subject-to-change/#comments</comments>
		<pubDate>Mon, 06 Aug 2012 03:30:00 +0000</pubDate>
		<dc:creator>Francisco Trindade</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Lean]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[enterprise-it]]></category>
		<category><![CDATA[last_conf]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[management teams]]></category>
		<category><![CDATA[organisational change]]></category>
		<category><![CDATA[presentations]]></category>

		<guid isPermaLink="false">http://blog.franktrindade.com/?p=1030</guid>
		<description><![CDATA[To close my participation at LAST Conference, I&#8217;ve presented a follow up of the talk I&#8217;ve done at LESS 2011, talking about why I believe most organisations are not set up for learning. In the presentation I&#8217;ve explained my thoughts on why I believe change programs are often unfair to employees, asking them to embrace &#8230;<p><a href="http://franktrindade.com/2012/08/06/last-conference-subject-to-change/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=1030&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>To close my participation at <a href="http://www.lastconference.com/">LAST Conference</a>, I&#8217;ve presented a follow up of the talk I&#8217;ve done at <a href="http://less2011.leanssc.org/program/transforming-organizations/">LESS 2011</a>, talking about why I believe most organisations are not set up for learning.</p>
<p><a href="http://www.slideshare.net/frankmt/take-it-offshore"><iframe src='http://www.slideshare.net/slideshow/embed_code/13881051' width='427' height='350' scrolling='no'></iframe></a></p>
<p>In the presentation I&#8217;ve explained my thoughts on why I believe change programs are often unfair to employees, asking them to embrace change, but only the one that management is putting forward.</p>
<p>I&#8217;ve also talked about learning within organisations, product teams, and how management teams should step back and understand their new role as leaders instead of controllers of the company.</p>
<p>If it sounds interesting to you, there is more info <a href="http://blog.franktrindade.com/2012/02/28/why-most-companies-dont-learn/">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/franktrindade.wordpress.com/1030/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/franktrindade.wordpress.com/1030/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=1030&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/franktrindade?a=SubMpi5bzOk:U1dxGMZnGFI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/franktrindade?a=SubMpi5bzOk:U1dxGMZnGFI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://franktrindade.com/2012/08/06/last-conference-subject-to-change/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d340cf8d454f82eddcade05302ea6af3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Francisco Trindade</media:title>
		</media:content>
	<feedburner:origLink>http://franktrindade.com/2012/08/06/last-conference-subject-to-change/</feedburner:origLink></item>
		<item>
		<title>LAST Conference – Take it Offshore</title>
		<link>http://feedproxy.google.com/~r/franktrindade/~3/Cq5ntKwO7mU/</link>
		<comments>http://franktrindade.com/2012/08/03/last-conference-take-it-offshore/#comments</comments>
		<pubDate>Thu, 02 Aug 2012 23:09:14 +0000</pubDate>
		<dc:creator>Francisco Trindade</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Lean]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://blog.franktrindade.com/?p=1016</guid>
		<description><![CDATA[Last week I&#8217;ve presented with Herry at LAST Conference about our experience of helping forming a new distributed team in Melbourne and Xi&#8217;an while transferring the knowledge of an existing product. It was an interesting challenge since what we had a not so simple task to do, which was to finish a major release of &#8230;<p><a href="http://franktrindade.com/2012/08/03/last-conference-take-it-offshore/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=1016&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Last week I&#8217;ve presented with <a href="https://twitter.com/hwiputra">Herry</a> at <a href="http://www.lastconference.com">LAST Conference</a> about our experience of helping forming a new distributed team in Melbourne and Xi&#8217;an while transferring the knowledge of an existing product.</p>
<p>It was an interesting challenge since what we had a not so simple task to do, which was to</p>
<ul>
<li>finish a major release of an existing product</li>
<li>ramp down the existing team in Sydney</li>
<li>create a new team distributed between Melbourne and Xi&#8217;an</li>
<li>transfer the knowledge as smoothly as possible, so the new team could start delivering new functionalities as soon as possible</li>
</ul>
<p>It was great to talk about our experience for the first time, and the amount of questions that came from the audience showed us that it is a interesting (and controversial) topic for other people as well.</p>
<p>The slides are available here, unfortunately it&#8217;s hard to get all the content just based on them, but just get in touch with us if you have any.</p>
<p><a href="http://www.slideshare.net/frankmt/take-it-offshore"><iframe src='http://www.slideshare.net/slideshow/embed_code/13837428' width='427' height='350' scrolling='no'></iframe></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/franktrindade.wordpress.com/1016/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/franktrindade.wordpress.com/1016/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=1016&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/franktrindade?a=Cq5ntKwO7mU:EX-wB5_s6lU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/franktrindade?a=Cq5ntKwO7mU:EX-wB5_s6lU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://franktrindade.com/2012/08/03/last-conference-take-it-offshore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d340cf8d454f82eddcade05302ea6af3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Francisco Trindade</media:title>
		</media:content>
	<feedburner:origLink>http://franktrindade.com/2012/08/03/last-conference-take-it-offshore/</feedburner:origLink></item>
		<item>
		<title>LAST Conference 2012</title>
		<link>http://feedproxy.google.com/~r/franktrindade/~3/iWqmtSn36qM/</link>
		<comments>http://franktrindade.com/2012/08/03/last-conference-2012/#comments</comments>
		<pubDate>Thu, 02 Aug 2012 22:30:46 +0000</pubDate>
		<dc:creator>Francisco Trindade</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Lean]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[LAST]]></category>
		<category><![CDATA[melbourne]]></category>
		<category><![CDATA[swinburne]]></category>

		<guid isPermaLink="false">http://blog.franktrindade.com/?p=1007</guid>
		<description><![CDATA[Last Friday I&#8217;ve participated in the Lean, Agile &#38; Systems Thinking conference, which was a one day event organised by Craig and Ed  with the intention to be a day with content &#8220;from practitioners&#8221; and &#8220;to practitioners&#8221;. I have told both of them and a bunch of other people, but it won&#8217;t hurt to say again &#8230;<p><a href="http://franktrindade.com/2012/08/03/last-conference-2012/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=1007&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Last Friday I&#8217;ve participated in the <a href="http://www.lastconference.com/">Lean, Agile &amp; Systems Thinking conference</a>, which was a one day event organised by <a href="http://twitter.com/brown_note">Craig</a> and <a href="http://twitter.com/littlehelper">Ed</a>  with the intention to be a day with content &#8220;from practitioners&#8221; and &#8220;to practitioners&#8221;.</p>
<p>I have told both of them and a bunch of other people, but it won&#8217;t hurt to say again that I believe Australia was in need of an event like this, organised by the community and with focus in providing useful content more than anything. Its success was definitely proven by the attendance and also the <a href="http://twitter.com/#!/search/realtime/%23Lastconf">twittersphere</a> on the day, so if you haven&#8217;t congratulated them yet, don&#8217;t wait any longer!</p>
<p>I&#8217;m going to try to share what Ive heard around the event here, but there are definitely more places to look for, and videos of some sessions should be available soon.</p>
<p><strong>Storytelling by <a href="http://twitter.com/unorder">Shawn Callahan</a></strong></p>
<p>I&#8217;ve started the day by going to the double session from Shawn from <a href="http://www.anecdote.com/">Anecdote</a> on business storytelling. I&#8217;ve been reading on the subject for a while and the session was very interesting.</p>
<p>After proving in a story telling exercise that everyone has a story to tell (and that we start telling them after we hear other people doing it!), shawn spoke about the storytelling spectrum and how we should keep the business stories on what he called the small &#8216;s&#8217; version, avoiding the risk of telling something so epic that it makes us lose the engagement of our colleagues.</p>
<p>He also spoke about anecdote circles, where people gather to tell stories about the environment they are in, and gave a few examples and tips on how to create questions that will spark stories from people:</p>
<ul>
<li>Never ask why questions</li>
<li>Use when and where</li>
<li>Make open questions</li>
<li>Ask for an example if answer is too narrow</li>
<li>Include emotions, as in &#8220;when did you feel like &#8230; ?&#8221;</li>
</ul>
<p>Some examples of questions:</p>
<ul>
<li>What have you seen lately that has surprised you?</li>
<li>When was the last time that something small made a big difference?</li>
</ul>
<p>He finished the session talking about a story narrative and how you can construct a story, showing video examples of great story tellers and how they used the elements he was talking about.</p>
<p>Overall a great session, definitely recommended if you have the opportunity!</p>
<p><strong>Cynefin Model by <a href="http://twitter.com/kb2bkb">Kim Ballestrin</a></strong></p>
<p>Kim gave an overview of what the <a href="http://en.wikipedia.org/wiki/Cynefin">Cynefin</a> model is and how she is using that in her current work.</p>
<p>Having had a brief understanding of the model beforehand, it was really useful to see someone talking about it in action, and what it could be used for.</p>
<p>She gave an example of how the model can be used in classifying types of work, and then using the classification to execute them differently. She used three categories for that:</p>
<ul>
<li>Complex Work (with uncertain outcome) &#8211; Create experiment and test it the cheapest way possible, to verify if it&#8217;s worth being done</li>
<li>Complicated Work (where analysis is required)  - Analyze</li>
<li>Simple Work (where outcome is certain)  -Build</li>
</ul>
<p>She spoke about what an experiment actually is in that context and how it could be just a conversation, giving the example of a kids&#8217; party, where parents are constantly assessing risk and acting on weak signals.</p>
<p><strong>Live Below the Line by <a href="http://twitter.com/cepitchford/">Claire Pitchford</a></strong></p>
<p>Claire spoke about her experience as a business analyst in the <a href="http://livebelowtheline.com.au/">Live Below the Line</a> project, where they had to deliver a campaign website in six weeks.</p>
<p>She talked in some detail about the inception process that was performed with the client and the whole team during one week, helping everyone get to a shared understanding of the project, and how different tools as personas, storyboards, stories and estimation where used in the process.</p>
<p>It was a very practical talk about what was done, and also quite impressive that she was happy to talk about everything that went wrong, things she tried and didn&#8217;t work but also what she learned during it.</p>
<p>As I mentioned before, it was a great day above all. I also have presented on two sessions during the day, and will write about it in separate posts.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/franktrindade.wordpress.com/1007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/franktrindade.wordpress.com/1007/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=1007&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/franktrindade?a=iWqmtSn36qM:hTvvatDiLrQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/franktrindade?a=iWqmtSn36qM:hTvvatDiLrQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://franktrindade.com/2012/08/03/last-conference-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d340cf8d454f82eddcade05302ea6af3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Francisco Trindade</media:title>
		</media:content>
	<feedburner:origLink>http://franktrindade.com/2012/08/03/last-conference-2012/</feedburner:origLink></item>
		<item>
		<title>Beware of Technical Projects</title>
		<link>http://feedproxy.google.com/~r/franktrindade/~3/hNHO1rr4er8/</link>
		<comments>http://franktrindade.com/2012/07/17/beware-of-technical-projects/#comments</comments>
		<pubDate>Mon, 16 Jul 2012 22:30:43 +0000</pubDate>
		<dc:creator>Francisco Trindade</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[codebase]]></category>
		<category><![CDATA[legacy]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[rewrite]]></category>

		<guid isPermaLink="false">http://blog.franktrindade.com/?p=993</guid>
		<description><![CDATA[After working in IT for a while, one thing I&#8217;ve noticed is that there is a lot of legacy code hanging around. Some companies are better than others in dealing with it, but there are a lot of reasons while code becomes old and very hard to maintain (some discussed here), making it quite a &#8230;<p><a href="http://franktrindade.com/2012/07/17/beware-of-technical-projects/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=993&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>After working in IT for a while, one thing I&#8217;ve noticed is that there is a lot of legacy code hanging around. Some companies are better than others in dealing with it, but there are a lot of reasons while code becomes old and very hard to maintain (some discussed here), making it quite a difficult task to keep an organisations&#8217; codebase up do date.</p>
<p>Since every problem must have a solution, legacy code comes hand in hand with &#8221;technical&#8221; projects,  where the main goal is to rewrite an application (or part of it) in a new technology, or in a &#8220;better&#8221; way.</p>
<p>There are different reasons for this. Sometimes the company traditionally developed things in a specific technology and has since evolved, leaving behind a few systems that were never updated. Sometimes the original code was developed without long term aspirations (some would say hacked together) and it became more useful than expected, surviving years running in production, but also with high maintanance costs and lacking in efficiency.</p>
<p>Just making it clear, I agree with the need of retiring legacy code. I do believe it&#8217;s better not to create it in the first place, but once it&#8217;s there, something has to be done. However, these kind of projects come with more risks than usual in my opinion, and as <a href="http://twitter.com/jkordyback/">John</a> once told me,</p>
<blockquote><p><em>&#8220;any project thas starts with a laundry list of problems is not a good project&#8221;</em>.</p></blockquote>
<p>First of all, how can you tell what has to be delivered? If something got to the point of being called legacy code, you can be sure it has stayed a few months (or years!) without being properly mantained and evolved. In the current times, any customer needs that were being solved a few years ago are most likely not current anymore. In other words, if you are rewriting the same thing again you are definitely writing the wrong thing.</p>
<p>Besides the business issues, any legacy code that has been around in an organisation for a decent amount of time has lived in the imagination of most developers long enough for everyone to be sure they know what needs for it to be developed perfectly this time. And as in any technical solution that has no customer goals at the end, teams end up spinning their wheels and polishing the codebase over and over again, until they reach perfection or the money runs out (which, sadly, usually happens first).</p>
<p>But how to approach this by not focusing on the problems to be solved? Go back to the origin and find out what problem you are trying to solve. Then find the customers who care about it and start from there. There is nothing different from any other customer facing project organisations deliver.</p>
<p>Every line of code should exist and be mantained for a reason, and if no reason can be found, then it might as well be deleted.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/franktrindade.wordpress.com/993/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/franktrindade.wordpress.com/993/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=993&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/franktrindade?a=hNHO1rr4er8:Eh7p2b6WZ9Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/franktrindade?a=hNHO1rr4er8:Eh7p2b6WZ9Q:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://franktrindade.com/2012/07/17/beware-of-technical-projects/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d340cf8d454f82eddcade05302ea6af3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Francisco Trindade</media:title>
		</media:content>
	<feedburner:origLink>http://franktrindade.com/2012/07/17/beware-of-technical-projects/</feedburner:origLink></item>
		<item>
		<title>Scaling Agile and Making Sense While Doing It</title>
		<link>http://feedproxy.google.com/~r/franktrindade/~3/uEkhFZl1neM/</link>
		<comments>http://franktrindade.com/2012/07/10/scaling-agile-making-sense-while-doing-it/#comments</comments>
		<pubDate>Mon, 09 Jul 2012 22:30:03 +0000</pubDate>
		<dc:creator>Francisco Trindade</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Lean]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[lean startup]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[learning_organisation]]></category>
		<category><![CDATA[scaling]]></category>

		<guid isPermaLink="false">http://blog.franktrindade.com/?p=982</guid>
		<description><![CDATA[It is well known that Agile (not sure about the big/small &#8220;A&#8221; thing, it always gets me confused) has gone mainstream nowadays. With big companies and conferences endorsing it, long gone were the days when you actually had to convince people this was a good idea&#8230; and that&#8217;s great! However, with the early/late majority now adopting &#8230;<p><a href="http://franktrindade.com/2012/07/10/scaling-agile-making-sense-while-doing-it/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=982&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>It is well known that Agile (not sure about the big/small &#8220;A&#8221; thing, it always gets me confused) has gone mainstream nowadays. With big companies and conferences endorsing it, long gone were the days when you actually had to convince people this was a good idea&#8230; and that&#8217;s great!</p>
<p>However, with the <a href="http://en.wikipedia.org/wiki/Diffusion_of_innovations">early/late majority</a> now adopting Agile, we are not talking about small companies anymore, and that means that the challenge is not how to get teams delivering better, but whole departments and organisations. So yes, scaling agile is one of the current challenges, with the preferred approach being the dreaded (<a href="http://blog.franktrindade.com/2012/02/28/why-most-companies-dont-learn/">at least by me</a>) &#8220;Change Programs&#8221;.</p>
<p>I don&#8217;t believe agile is a fad or just a small team thing, since empowerment, short feedback loops and delivery of results it&#8217;s never going to be a fad and isnt IT specific either. There are many other examples, in different industries (errm… <a href="http://en.wikipedia.org/wiki/The_Toyota_Way">Toyota</a>?) which show that the same principles can be applied successfully in a much larger scale, on complete different problems.</p>
<p>The problem begins though, when by scaling agile, companies try to scale the practices, keeping the control mindset, instead of scaling what&#8217;s important, i.e. the principles.</p>
<p>It is common to see companies, for example, adopting a hierarchical structure to create multiple agile teams, all &#8220;reporting&#8221; to a main office, killing most of what was good about the idea.</p>
<p>If agile in the organisation is the challenge, we need to think about empowerment, short feedback and delivery of real results for the whole company. Unfortunately, the more common behaviour is to talk about bigger walls, how to standardise velocity across teams and synchronisation of iterations.</p>
<p>And if we go back to the roots, and look at the <a href="http://agilemanifesto.org/">manifesto</a>, I believe we can find a good guidance of what can be done:</p>
<p><strong>Individuals and interactions over processes and tools</strong>: Instead of scaling processes and tools to control teams, why not increase the ability of individuals to traverse the organisation, making software developers talk to real customers and sales people talk to qa&#8217;s?</p>
<p><strong>Working software over comprehensive documentation</strong>: Scale by making a working product the final goal, removing the necessity of internal product briefs, extensive training of sales staff and long delivery cycles.</p>
<p><strong>Customer collaboration over contract negotiation</strong>: It is actually impressive how this still makes sense now. We just need to change the customer. It&#8217;s not the product owner anymore, it&#8217;s _the_ customer, the one who buys your product and pays the bills.</p>
<p><strong>Responding to change over following a plan</strong>: Feedback, feedback and feedback. Not from a showcase though, but from the market.</p>
<p>Yes, if it feels like you&#8217;ve heard these ideas before, it&#8217;s because they are not new. Product teams are the way to scale agile in my opinion. Small and independent groups of people that can get to the best results in short iterations with feedback from the market, in a Lean Startup style. The game shouldn&#8217;t be about execution anymore, it is about innovation.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/franktrindade.wordpress.com/982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/franktrindade.wordpress.com/982/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=982&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/franktrindade?a=uEkhFZl1neM:n1M9iA5ERTQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/franktrindade?a=uEkhFZl1neM:n1M9iA5ERTQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://franktrindade.com/2012/07/10/scaling-agile-making-sense-while-doing-it/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d340cf8d454f82eddcade05302ea6af3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Francisco Trindade</media:title>
		</media:content>
	<feedburner:origLink>http://franktrindade.com/2012/07/10/scaling-agile-making-sense-while-doing-it/</feedburner:origLink></item>
		<item>
		<title>Who owns the codebase?</title>
		<link>http://feedproxy.google.com/~r/franktrindade/~3/LoigcH8MQY0/</link>
		<comments>http://franktrindade.com/2012/07/04/who-owns-the-codebase/#comments</comments>
		<pubDate>Wed, 04 Jul 2012 00:32:43 +0000</pubDate>
		<dc:creator>Francisco Trindade</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Lean]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[companies]]></category>
		<category><![CDATA[enterprise-it]]></category>
		<category><![CDATA[internal tools]]></category>
		<category><![CDATA[open source model]]></category>
		<category><![CDATA[organisations]]></category>
		<category><![CDATA[sharing]]></category>
		<category><![CDATA[software-development]]></category>

		<guid isPermaLink="false">http://blog.franktrindade.com/?p=973</guid>
		<description><![CDATA[Ive been involved in quite a few discussions about shared code lately, mostly because I&#8217;ve been working in a team that has developed a set of internal tools that are going to be used across the company. One of the common topics to debate in this area is what happens next? After the main part &#8230;<p><a href="http://franktrindade.com/2012/07/04/who-owns-the-codebase/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=973&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ive been involved in quite a few discussions about shared code lately, mostly because I&#8217;ve been working in a team that has developed a set of internal tools that are going to be used across the company. One of the common topics to debate in this area is what happens next?</p>
<p>After the main part of development has been done, who is responsible for mantaining and evolving this shared codebase?</p>
<p>I&#8217;ve written a little bit about <a href="http://blog.franktrindade.com/2012/06/14/duplication-yes-please/">shared code</a> and I don&#8217;t think it is the best solution for most cases, but in a few situations sharing is necessary, so how should we handle it?</p>
<p>As any popular topic, opinions are diverse, but here are my two cents to the conversation:</p>
<p><strong>It depends : )</strong></p>
<p>The way I see it, there are two main types of shared codebases that can exist in a company, and each of them should be treated in a different way.</p>
<p><strong>Components that are not critical for any team</strong></p>
<p>This is the case of the famous &#8220;utils&#8221; package, or any other component that was once written because someone needed it and then was reused since it was useful for other people. The main characteristic here is that this code doesn&#8217;t sit on the critical path of any team/application. In other words, I could choose to use it or not if it fills my needs.</p>
<p>In this situation, I believe that using an open source model is just fine. Think about your packages as an open source library, that someone can use it or not if they want, and if at some point it needs to be maintained or evolved, the people using it can spend some time doing it.</p>
<p>It doesn&#8217;t matter that much if they break things or take the codebase in a direction no one expected, since people can always use older versions or just find a replacement for it.</p>
<p><strong>Components that are critical to teams </strong></p>
<p><strong></strong>Now this is a more delicate situation. If teams depend on your component working all most of the time, I believe the open source model is not appropriate anymore.</p>
<p>As I mentioned <a href="http://blog.franktrindade.com/2012/06/21/developing-internally-you-are-not-special/">before</a>, developing internal applications should also use a customer-centric view, and that takes time and effort. As the number of users grow and diversify, it&#8217;s important to have people in your team that can steer the development in the right direction, thinking about the roadmap for the future and also development quality.</p>
<p>Being a critical component, the open source model makes it hard for anyone to own the responsibility to maintain the code, and hard decisions that will have to be made start to get postponed, while patches start happening more and more.</p>
<p>It doesn&#8217;t take long until everyone is attached to a codebase that no one really understands and is afraid to change. In other words, legacy is written.</p>
<p>In this situation, the biggest step is to realize you have a product to maintain, and that will cost, as it costs to maintain any product. There is the need for a focused team that can plan the future and guarantee that users are happy with what they are receiving, and avoiding the pain will just guarantee a greater amount of it in the future.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/franktrindade.wordpress.com/973/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/franktrindade.wordpress.com/973/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=973&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/franktrindade?a=LoigcH8MQY0:lkfttyqyKZU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/franktrindade?a=LoigcH8MQY0:lkfttyqyKZU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://franktrindade.com/2012/07/04/who-owns-the-codebase/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d340cf8d454f82eddcade05302ea6af3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Francisco Trindade</media:title>
		</media:content>
	<feedburner:origLink>http://franktrindade.com/2012/07/04/who-owns-the-codebase/</feedburner:origLink></item>
		<item>
		<title>Where to put my build tasks ?</title>
		<link>http://feedproxy.google.com/~r/franktrindade/~3/A9sh6yCLgqg/</link>
		<comments>http://franktrindade.com/2012/06/21/where-to-put-my-build-tasks/#comments</comments>
		<pubDate>Wed, 20 Jun 2012 22:30:12 +0000</pubDate>
		<dc:creator>Francisco Trindade</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[jenkins]]></category>
		<category><![CDATA[tasks]]></category>

		<guid isPermaLink="false">http://blog.franktrindade.com/?p=907</guid>
		<description><![CDATA[In my current project we are working with automation of deployments, so a lot of our work involves automating builds and (trying) to create a pipeline using build tasks (currently using Jenkins). One of the things that started to annoy us is that as a standard build tasks are part of the main code repository &#8230;<p><a href="http://franktrindade.com/2012/06/21/where-to-put-my-build-tasks/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=907&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In my current project we are working with automation of deployments, so a lot of our work involves automating builds and (trying) to create a pipeline using build tasks (currently using <a href="http://jenkins-ci.org/">Jenkins</a>).</p>
<p>One of the things that started to annoy us is that as a standard build tasks are part of the main code repository for an application, even when the tasks itself don&#8217;t depend at all on the codebase. In our case, we are using <a href="http://rake.rubyforge.org/">Rake</a> with Ruby, and using RPM&#8217;s to deploy, so our Rakefiles would contain tasks that involved testing and deploying RPM&#8217;s, but still were included in the application.</p>
<p>I can see the point of keeping the everything related to an app inside the same codebase, but add that to a slow git and gem server, and our build tasks would spend 90% of their time downloading and bundling the application.</p>
<p>So one simple practice that we are trying now is to create a separate repository for build tasks. If all you need is a Rakefile, why do we have to download more than that ?</p>
<p>Just to exemplify how simple it gets&#8230;</p>
<p><a href="http://franktrindade.files.wordpress.com/2012/06/screen-shot-2012-06-13-at-9-44-38-pm.png"><img class="alignnone size-full wp-image-910" title="Screen shot 2012-06-13 at 9.44.38 PM" src="http://franktrindade.files.wordpress.com/2012/06/screen-shot-2012-06-13-at-9-44-38-pm.png?w=545&#038;h=141" alt="" width="545" height="141" /></a></p>
<p>That&#8217;s it. Quite simple, but thought it was worth mentioning!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/franktrindade.wordpress.com/907/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/franktrindade.wordpress.com/907/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=franktrindade.com&#038;blog=2490980&#038;post=907&#038;subd=franktrindade&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/franktrindade?a=A9sh6yCLgqg:UFSZQ7twAXc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/franktrindade?a=A9sh6yCLgqg:UFSZQ7twAXc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/franktrindade?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://franktrindade.com/2012/06/21/where-to-put-my-build-tasks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d340cf8d454f82eddcade05302ea6af3?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Francisco Trindade</media:title>
		</media:content>

		<media:content url="http://franktrindade.files.wordpress.com/2012/06/screen-shot-2012-06-13-at-9-44-38-pm.png" medium="image">
			<media:title type="html">Screen shot 2012-06-13 at 9.44.38 PM</media:title>
		</media:content>
	<feedburner:origLink>http://franktrindade.com/2012/06/21/where-to-put-my-build-tasks/</feedburner:origLink></item>
	</channel>
</rss>
