<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>qcon &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/qcon/</link>
	<description>Feed of posts on WordPress.com tagged "qcon"</description>
	<pubDate>Tue, 08 Dec 2009 07:48:56 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[QCon San Francisco 2009]]></title>
<link>http://successfulsoftwaredevelopment.wordpress.com/2009/11/29/qcon-san-francisco-2009/</link>
<pubDate>Sun, 29 Nov 2009 13:00:28 +0000</pubDate>
<dc:creator>Martin van Vliet</dc:creator>
<guid>http://successfulsoftwaredevelopment.wordpress.com/2009/11/29/qcon-san-francisco-2009/</guid>
<description><![CDATA[This post was previously published on my employer&#8217;s blog. For a few years now, November has be]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><em>This post was previously published on <a href="http://blog.xebia.com">my employer&#8217;s blog</a>.</em></p>
<p>For a few years now, November has been the month of <a href="http://qconsf.com/">QCon San Francisco</a> for me. So far it has proven an excellent conference with lots of thought-provoking presentations and conversations. This year was no exception. Read on for my personal high- and lowlights.<br />
<!--more--></p>
<p><strong>The Conference</strong></p>
<p>If you&#8217;ve never heard of QCon before, the conference bills itself as a conference for and by software developers and architects of any &#8220;denomination&#8221;. Walking the hallways you are equally likely to encounter a Rubyist, Javaan or .NET afficionado. This refreshing diversity leads to interesting presentations and coffee-corner conversations. For me as a Java developer, it also meant that the news about Java 7&#8217;s closures by and large passed me by. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Given it&#8217;s target audience of predominantly teamleads and architects, QCon has less technical depth than, for instance, the <a href="http://www.devoxx.com/display/DV09/Home">Devoxx</a> conference. But with entire tracks dedicated to Ruby and emerging languages (including some C#/F# sessions), it certainly has more breadth. For me personally this is one of the key reasons to attend.</p>
<p><strong>Keynotes</strong></p>
<p>The keynotes this year were a bit of a mixed bag. On Wednesday, two venture capitalists spoke about what they looked for in startups when deciding where to invest. The process they described resembled the <a href="http://www.startuplessonslearned.com/2008/09/lean-startup.html">Lean Startup</a> ideas of iterating as fast as possible with direct customer involvement. Interestingly, they mentioned Scala and Groovy as developments that they as VCs keep a close eye on.</p>
<p>Don Box experimented with Twitter during his keynote. Not saying a word, he wrote tweets on his laptop for the first 20 minutes. An interesting experiment, but it didn&#8217;t manage to hold the attendees&#8217; attention. When the subsequent code demos either failed or proved unable to bring the audience back, Don himself also ran out of steam and brought the keynote to an abrupt and disappointing close. Still good of him to try something new.</p>
<p>The last keynote of the conference was by David Chappel of Oracle who presented and then demonstrated Oracle&#8217;s cloud tooling. Way too Oracle-centric for my money.</p>
<p>For next year, I really hope QCon will do away with the vendor keynotes, even if this means going back to 2 keynotes like the last few years. Someone like Kent Beck or Uncle Bob has much more interesting things to say.</p>
<p><strong>Highlights</strong></p>
<p>Dan North&#8217;s <a href="http://qconsf.com/sf2009/presentation/Adventures+of+an+Agile+Architect">presentation</a> about a challenging agile project was great. It was filled with lessons about transitional architecture and agile adoption and plenty of humor to boot.</p>
<p>In <a href="http://qconsf.com/sf2009/presentation/Lessons+Learned+from+Architecture+Reviews">Lessons learned from Architecture Reviews</a> Rebecca Wirfs-Brock discussed not only how to perform an architecture review, but also how to effectively present an architecture depending on your audience and the political environment.</p>
<p>Eric Evans talked about <a href="http://qconsf.com/sf2009/presentation/Sustainable+Design+for+Agile+Teams">incorporating modeling and design</a> into the agile development process and presented an early draft of his <a href="http://www.domainlanguage.com/processdraft/">model exploration process</a>. Eric uses this process when doing DDD consulting for clients and is useful for anyone applying the technique.</p>
<p>There was a lot of interest in lean software development and kanban as well. I attended presentations by <a href="http://qconsf.com/sf2009/presentation/Using+Kanban+to+help+dysfunctional+agile+teams">Jeff Patton</a> and <a href="http://qconsf.com/sf2009/presentation/A+Leaner+form+of+Agility">David Laribee</a> which provided useful practical tips and real-world experience. Though I didn&#8217;t attend it myself, I heard a lot of good things about <a href="http://qconsf.com/sf2009/presentation/Kanban+vs+Scrum+-+a+practical+guide">Henrik Kniberg&#8217;s</a> talk as well.</p>
<p>One of the most impressive tracks at QCon is <em>Architectures you&#8217;ve always wondered about</em>. I&#8217;m always inspired by seeing how sites such as eBay or LinkedIn handle their scaling requirements. This year&#8217;s session about <a href="http://qconsf.com/sf2009/presentation/Amazon+S3:++Architecting+for+Resiliency+in+the+Face+of+Failures">Amazon S3</a> was equally impressive, describing design patterns for building applications that can guarantee uptime in the face of hard drive, network or machine failures. To test their service, Amazon regularly holds unannounced &#8220;game days&#8221; where they take an entire datacenter offline to see if their architecture can handle it. That is some serious testing.</p>
<p><strong>Trends</strong></p>
<p>During the conference, I noticed a lot of interest in:</p>
<ul>
<li>teaching people the craft of agile software development. Presentations discussing personal traits required for programming and software apprenticeship were the result.</li>
<li>JVM-based languages like Scala and Clojure. This is hardly news, but what surprised me was the level of interest there was from non-Java developers. Several people I talked to told me that they were experimenting with these languages in their spare time while working .NET at their dayjob.</li>
<li>Continuous <strong>deployment</strong> (meaning continuous deployment to production).</li>
</ul>
<p>Bucking the trend I&#8217;ve been hearing about at other conferences, the wifi at QCon actually worked without a hitch for me. </p>
<p><strong>Conclusion</strong></p>
<p>For me, QCon was about re-discovering the agile software development craft this year. Talking with practitioners and hearing their experiences gave me lots of new ideas and inspiration to bring to my own projects. That said, most of the tracks and topics feel like they&#8217;ve been around for a while. Next year I&#8217;m hoping to hear about the &#8220;next big thing&#8221;.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Hadoop_J、PDC、Web 2.0 Expo、QCon、Chrome の Video など]]></title>
<link>http://agilecat.wordpress.com/2009/11/23/hadoop_j%e3%80%81pdc%e3%80%81web-2-0-expo%e3%80%81qcon%e3%80%81chrome-%e3%81%ae-video-%e3%81%aa%e3%81%a9/</link>
<pubDate>Mon, 23 Nov 2009 08:31:47 +0000</pubDate>
<dc:creator>Agile Cat</dc:creator>
<guid>http://agilecat.wordpress.com/2009/11/23/hadoop_j%e3%80%81pdc%e3%80%81web-2-0-expo%e3%80%81qcon%e3%80%81chrome-%e3%81%ae-video-%e3%81%aa%e3%81%a9/</guid>
<description><![CDATA[怒涛の 1週間でしたね。。。 11月13日の、東京での Hadoop Conference に始まり、翌週の PDC 2009（LA）、Web 2.0 Expo（NY）、QCon（SF）とイベントが続]]></description>
<content:encoded><![CDATA[怒涛の 1週間でしたね。。。 11月13日の、東京での Hadoop Conference に始まり、翌週の PDC 2009（LA）、Web 2.0 Expo（NY）、QCon（SF）とイベントが続]]></content:encoded>
</item>
<item>
<title><![CDATA[Open Source in Finance eXchange: December 15]]></title>
<link>http://skillsmatterblog.wordpress.com/2009/11/09/open-source-in-finance-exchange-december-15/</link>
<pubDate>Mon, 09 Nov 2009 17:07:56 +0000</pubDate>
<dc:creator>Skills Matter</dc:creator>
<guid>http://skillsmatterblog.wordpress.com/2009/11/09/open-source-in-finance-exchange-december-15/</guid>
<description><![CDATA[Places are going fast for this year&#8217;s Open Source in Finance eXchange on December 15.  Speakin]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:center;"><a href="http://skillsmatter.com/event/design-architecture/open-source-in-finance-exchange/js-432"><img class="aligncenter size-full wp-image-19" title="open-source-in-finance-456x100" src="http://skillsmatterblog.wordpress.com/files/2009/11/open-source-in-finance-456x1001.gif" alt="open-source-in-finance-456x100" width="450" height="98" /></a></p>
<p>Places are going fast for this year&#8217;s Open Source in Finance eXchange on December 15.  Speaking across six expert talks and two parkbench discussions on the day will be Alan  Hardy, Rob Davies, Angelo Corsaro and David Vincent.</p>
<p>This year&#8217;s eXchange is bringing together the leading experts in Open Source technology and Financial Services software development with innovators, technologists, architects and developers in the developer community.</p>
<p>The day promises to combine deep technical insight with friendly discussion around creating highly scalable, secure systems and leveraging OS technology within the finance sector.</p>
<p>The programme is structured to encourage discussion and bring together the leading thinkers and experts on the use open source technology in Financial Services with passionate members of the developer community in this sector.</p>
<p>To keep it as informal as possible we are strictly limiting the event to 125 delegates, and it is already proving to be popular.  What&#8217;s more, on the day we will be raffling off a ticket to this year&#8217;s QCon in London.</p>
<p><strong>Book now &#8212; and get your tickets for </strong><strong><strong>£65.  Just click the banner at the top of the page.</strong><br />
</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Retrospectivas Ágeis]]></title>
<link>http://andrefaria.com/2009/10/05/retrospectivas-ageis/</link>
<pubDate>Tue, 06 Oct 2009 02:29:53 +0000</pubDate>
<dc:creator>andrefaria</dc:creator>
<guid>http://andrefaria.com/2009/10/05/retrospectivas-ageis/</guid>
<description><![CDATA[Restrospectivas ágeis são sem dúvida, uma grande oportunidade para que equipes de desenvolvimento de]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Restrospectivas ágeis são sem dúvida, uma grande oportunidade para que equipes de desenvolvimento de software parem para pensar no trabalho que vem realizando e questionem o que pode se melhorado. É um execente ferramenta para que o famoso ciclo PDCA (Plan / Do / Check/ Act) possa ser aplicado.</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">O método ágil Scrum sugere que as reuniões de retrosprestiva aconteçam no final da iteração (sprint) e que a equipe se faça duas perguntas básicas:</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">- &#8220;O que está indo bem?&#8221;</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">- &#8220;O que pode ser melhorado?&#8221;.</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Alguns preferem perguntar:</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">- &#8220;O que devemos parar de fazer?&#8221;</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">- &#8220;O que devemos contunuar fazendo?&#8221;</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">- &#8220;O que devemos começar a fazer?&#8221;</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">No fim das contas o que realmente importa é que a reunião tenha como resultado ações a serem tomadas pela equipe para que a melhoria continua seja aplicada, e que na próxima restrospectiva, a equipe seja melhor do que era na última.</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Alguns dias atrás o Vinicius Teles da Improveit twitou o link de uma palestra que foi apresentada no Google por by Esther Derby e Diana Larsen sobre restrospectivas ágeis. As duas são especialistas sobre assunto e já até escrevem um livro que pode ser comprado por $20 em PDF. Vale a pena assitir a palestra:</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">[youtube:]</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Creio que uma das coisas mais importantes que as duas destacaram na apresentação é a necessidade de dividir as responsabilidades de tomar as ações entre os membros da equipe para que as mudanças realmente aconteçam.  De nada adianta reuniões de retrospectivas que apontam problemas que nunca são resolvidos por ninguém. Para evitar que isso aconteça na Bluesoft, ultimante em toda reunião de restrospectiva nós lemos os itens que identicamos como coisas que poderiam ser melhoradas no sprint anterior e então rapidamente discutimos se realmente já estão resolvidos, e caso não estejam, voltamos a incluir o item e insistímos até que finalmente seja resolvido.</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Um outro ponto interessante levantando por meu amigo Ricardo Almeida, é que devemos tomar cuidado para não transoformar a reunião de restrospectiva em um reunião de busca de culpados. O foco deve ser sempre na solução.</div>
<p>Restrospectivas ágeis são sem dúvida, uma grande oportunidade para que equipes de desenvolvimento de software parem para pensar no trabalho que vem realizando e questionem o que pode se melhorado. É uma execente ferramenta para que o famoso <a href="http://pt.wikipedia.org/wiki/Ciclo_PDCA">ciclo PDCA</a> (Plan / Do / Check/ Act) possa ser aplicado. O método ágil <a href="http://improveit.com.br/scrum">Scrum </a>sugere que as reuniões de retrospectiva aconteçam no final da iteração (sprint) e que a equipe se faça duas perguntas básicas:</p>
<ul>
<li>O que está indo bem?</li>
<li>O que pode ser melhorado?</li>
</ul>
<p>Alguns preferem perguntar:</p>
<ul>
<li>O que devemos parar de fazer?</li>
<li>O que devemos continuar fazendo?</li>
<li>O que devemos começar a fazer?</li>
</ul>
<p>No fim das contas o que realmente importa é que a reunião tenha como resultado ações a serem tomadas pela equipe para que a melhoria continua seja aplicada, e que na próxima restrospectiva, a equipe seja melhor do que era na última.</p>
<div style="text-align:center;">
<dl>
<dt><a href="http://www.flickr.com/photos/pagedooley/1856663523/"><img style="border:0 none initial;margin:0;padding:0;" title="Evolution - The Ride por kevindooley" src="http://farm3.static.flickr.com/2333/1856663523_cffa76bfbc.jpg" alt="Evolution - The Ride por kevindooley" width="500" height="375" /></a></dt>
<dd>Evolution &#8211; The Ride por kevindooley</dd>
</dl>
</div>
<p>Alguns dias atrás o Vinicius Teles da Improveit <a href="http://twitter.com/improveit_hq/status/4431483885">twitou o link de uma palestra</a> que foi apresentada no Google por by <strong>Esther Derby</strong> e <strong>Diana Larsen</strong> sobre restrospectivas ágeis. As duas são especialistas sobre assunto<a href="http://www.pragprog.com/titles/dlret/agile-retrospectives"> e já até escreveram um livro</a> que pode ser comprado por $20 em PDF. Vale a pena assitir a palestra:</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/qqtPZYigfNI&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/qqtPZYigfNI&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>Creio que uma das coisas mais importantes que as duas destacaram na apresentação é a necessidade de <strong>dividir as responsabilidades</strong> de tomar as ações entre os membros da equipe para que as mudanças realmente aconteçam.  De nada adianta reuniões de retrospectivas que apontam problemas que nunca são resolvidos por ninguém. Para evitar que isso aconteça na Bluesoft, ultimante em toda reunião de restrospectiva nós lemos os itens que identicamos como coisas que poderiam ser melhoradas no sprint anterior e então rapidamente discutimos se realmente já estão resolvidos, e caso não estejam, voltamos a incluir o item e insistímos até que finalmente seja resolvido.</p>
<p>Um outro ponto interessante <a href="http://manifestonaweb.wordpress.com/2009/10/05/retrospectiva/">levantando por meu amigo Ricardo Almeida</a>, é que devemos tomar cuidado para não transoformar a reunião de restrospectiva em uma mera busca de culpados. O foco deve estar sempre na<strong> solução</strong>.</p>
<p>No inicio desde ano <a href="http://bluesoft.wordpress.com/2009/03/17/qcon-londres-2009-tutorial-sobre-retrospectivas/">Linda Rising apresentou na QCon Londres 2009 um tutorial sobre retrospectivas</a>, uma de suas dicas, foi que as pessoas anotassem os acontecimentos bons e ruins ao longo do <a href="http://improveit.com.br/scrum">sprint</a> em post-its para que não os esquecessem. Na Bluesoft, <a href="http://bluesoft.wordpress.com/2008/09/17/como-montamos-o-quadro-do-scrum/">reservamos uma área do Kanban</a> para que estes post-its sejam anexados.</p>
<p>Para maiores informações sobre retrospectivas, visite o <a href="http://retrospectivewiki.org/index.php?title=Main_Page">Agile Restrospective Resource Wiki</a>, um wiki (em inglês) com uma série de dicas, exercícios e ferramentas para realização de retrospectivas. O site cmcrossroads possui <a href="http://www.cmcrossroads.com/brad-appletons-acme-blog/12915-resources-on-retrospectives">uma lista bem completa de sites</a> onde você pode encontrar excelente material sobre o assunto.</p>
<p>Boa Restrospectiva!</p>
<p><span style='text-align:center; display: block;'><br />
<object type="application/x-shockwave-flash" width="400" height="300" data="http://www.vimeo.com/moogaloop.swf?clip_id=2918354&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=01AAEA"><param name="quality" value="best" /><param name="allowfullscreen" value="true" /><param name="scale" value="showAll" /><param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=2918354&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=01AAEA" /></object><br />
</span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Particle physics, mocks and stubs]]></title>
<link>http://benbiddington.wordpress.com/2009/09/12/particle-physics-mocks-and-stubs/</link>
<pubDate>Sat, 12 Sep 2009 14:15:12 +0000</pubDate>
<dc:creator>benbiddington</dc:creator>
<guid>http://benbiddington.wordpress.com/2009/09/12/particle-physics-mocks-and-stubs/</guid>
<description><![CDATA[Steve Freeman had interesting analogy in TDD 10 years later (17m30s, slide 26: The origins of mock o]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Steve Freeman had interesting analogy in <a href="http://www.infoq.com/presentations/tdd-ten-years-later" target="_blank">TDD 10 years later</a> (17m30s, slide 26: <em>The origins of mock objects</em>). He describes mocked unit test being &#8220;rather like particle physics&#8221;.</p>
<blockquote><p>You fire something at a particle, things splinter off and you can detect what happens&#8230;</p></blockquote>
<p><img class="aligncenter size-full wp-image-1178" title="mocks-and-stubs" src="http://benbiddington.wordpress.com/files/2009/09/mocks-and-stubs.png" alt="mocks-and-stubs" width="485" height="338" /></p>
<p>A mock is used to both detect the emissions from the system under test (SUT), and verify expectations. Additionally, a mock object may perform stub duties. This doesn&#8217;t quite fit, since fission is one-way.</p>
<p>Testing &#8220;by detection&#8221; like this is considered <em>behaviour verification</em>:<em> </em>verifying<em> </em><span style="background-color:#ffffff;"><strong>collaborations</strong> between the SUT and other objects.</span></p>
<p><span style="background-color:#ffffff;">To be testable in such a manner:</span></p>
<ul>
<li><span style="background-color:#ffffff;">Requires the ability to <strong>isolate</strong> the SUT sufficiently, i.e., detach it completely from its context and collaborators. A test fixture should be able to create the SUT <strong>easily <span style="font-weight:normal;">by itself</span></strong>. </span></li>
<li><span style="background-color:#ffffff;">Then the SUT should minimize concrete dependencies.</span></li>
<li><span style="background-color:#ffffff;">Collaborators must be designed in such a way to allow a mock to be generated that can intercept interactions. This means identifying the abstraction(s) for collaborators. </span></li>
<li><span style="background-color:#ffffff;">Mock is a stub in the sense that it needs to stand in for a real (if inert) object. But a mock is also a &#8220;detector&#8221; and is used as the means of assertion.</span></li>
<li><a href="http://gojko.net/2009/09/21/mocks-are-not-about-isolation-but-about-responsibilities/" target="_blank">Stub queries and mock actions</a>. &#8220;we mock when the service changes the external world; we stub when it doesn’t change the external world – stub queries and mock actions&#8221;</li>
</ul>
<h2>References</h2>
<ul>
<li><span style="background-color:#ffffff;"><a href="http://www.mockobjects.com/files/mockrolesnotobjects.pdf" target="_blank">Mock Roles, not Objects</a> (Steve Freeman). Define abstractions for a collaboration, leaving concrete implementations until required.</span></li>
<li><span style="background-color:#ffffff;"><a href="http://qconlondon.com/london-2009/file?path=/qcon-london-2009/slides/MichaelFeathers_TestDrivenDevelopmentTenYearsLater.pdf" target="_blank">Slides &#8211; TDD 10 years later</a> (QCon London 2009).</span></li>
<li><span style="background-color:#ffffff;"><a href="http://martinfowler.com/articles/mocksArentStubs.html" target="_blank">Mocks Aren&#8217;t Stubs</a> (Fowler).</span></li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[O Estado da arte da DSL em Ruby]]></title>
<link>http://manifestonaweb.wordpress.com/2009/05/26/o-estado-da-arte-da-dsl-em-ruby/</link>
<pubDate>Tue, 26 May 2009 19:23:49 +0000</pubDate>
<dc:creator>Ricardo Almeida</dc:creator>
<guid>http://manifestonaweb.wordpress.com/2009/05/26/o-estado-da-arte-da-dsl-em-ruby/</guid>
<description><![CDATA[Estive na apresentação de Glenn Vanderburg, no QCon London 2009, que falou sobre o Estado da Arte da]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Estive na apresentação de <span style="font-family:'Lucida Grande';line-height:normal;">Glenn Vanderburg, no QCon London 2009, que falou sobre o Estado da Arte da DSL em Ruby. A apresentação e os slides você pode conferir <a href="http://www.infoq.com/presentations/vanderburg-state-of-dsl-ruby">aqui no site da infoq</a>.</span></p>
<div>A idéia de fazer uso de uma DSL interna originou-se aparentemente no Lisp. Em Lisp você não escreve seu programa apenas direcionado na linguagem, você também constrói a linguagem em cima do seu programa:</div>
<p><code><br />
(task “warn if websites is not alive ”<br />
&#160;&#160;every 3 seconds<br />
&#160;&#160;starting now<br />
&#160;&#160;when ( not (website-alive? “http://example.org”))<br />
&#160;&#160;then (notify “admin@example.org”, “server down!”))<br />
)<br />
</code></p>
<p style="font:12px Helvetica;margin:0;"><span style="letter-spacing:0;">DSL interna também foi um objetivo de design do Haskell</span></p>
<p><code><br />
keepleft (p :&#62;: ps)<br />
&#160;&#160;&#124; keepleft p = case partitionFL keepleft ps of<br />
&#160;&#160;&#160;&#160;a :&#62; b -&#62; p:&#62;: a :&#62;: b<br />
&#160;&#160;&#124; otherwise = case commuteWhatWeCanFL (p :&#62; ps) of<br />
&#160;&#160;&#160;&#160;a :&#62; p’ :&#62; b -&#62; case partitionFL keepleft a of<br />
&#160;&#160;&#160;&#160;&#160;&#160;a’ :&#62; b’ -&#62; a’ :&#62; b’ +&#62;+ p’ :&#62;: b<br />
</code></p>
<div><span style="font-family:Helvetica;font-size:small;"><span style="line-height:normal;">Agora falando em Ruby, uma das principais características da linguagem é a expressividade. O japonês Yukihiro Matsumoto (Matz), criador da linguagem, sempre teve como objetivo fazer o ruby extremamente legível. Para atingir esse objetivo a linguagem tem o recurso conhecido como &#8220;Sintax Sugar&#8221;. A performance da linguagem não foi o objetivo inicial, e sim a clareza. Por isso o ruby é uma linguagem mais lenta. Entretanto agora com a adoção maior nos projetos de mercado direcionados a web, a preocupação com performance cresceu e o resultado disso foi o recente release da versão 1.9.1 do ruby, com <a href="http://www.infoq.com/br/news/2009/05/performance-191-gc-compiler">resultados impressionantes de performance</a>.</span></span></div>
<p>
<div>Deixando a performance de lado e voltando à DSL, em um projeto Rails você pode fazer as seguintes associações em uma classe model:</div>
<div><span style="font-family:Helvetica;"><span style="line-height:normal;"><span style="font-family:Georgia;"><span style="line-height:19px;"></p>
<p style="font:12px Helvetica;margin:0;"><span style="letter-spacing:0;">has_many :favorites, :conditions =&#62; {:state =&#62; ‘public’}</span></p>
<p style="font:12px Helvetica;margin:0;"><span style="letter-spacing:0;">has_many :roles, :through =&#62; :projects, :uniq =&#62; true</span></p>
<p style="font:12px Helvetica;min-height:14px;margin:0;"><span style="letter-spacing:0;"> </span></p>
<p style="font:12px Helvetica;margin:0;"><span style="letter-spacing:0;">validates_length_of :login, :within =&#62; 3..40, on =&#62; :create</span></p>
<p style="font:12px Helvetica;min-height:14px;margin:0;"><span style="letter-spacing:0;"> </span></p>
<p style="font:12px Helvetica;margin:0;"><span style="letter-spacing:0;">validates_presence_of :authority, :if =&#62; :in_leadership_role, :message =&#62; “must be authorized for leadership”</span></p>
<p style="font:12px Helvetica;margin:0;">
<p>
<div>Fica claro e limpo que o modelo tem uma associação a duas coleções (favorites e roles), e validações ficam explícitas no próprio model. Outro exemplo usado na apresentação citada acima:</div>
<p></p>
<p style="font:12px Helvetica;margin:0;">
<p style="font:12px Helvetica;margin:0;"><span style="letter-spacing:0;">#Um intervalo de tempo:</span></p>
<p style="font:12px Helvetica;margin:0;"><span style="letter-spacing:0;">3.years + 13.days + 2.hours</span></p>
<p style="font:12px Helvetica;margin:0;"><span style="letter-spacing:0;"># Quatro meses de agora, na segunda_feira</span></p>
<p style="font:12px Helvetica;margin:0;"><span style="letter-spacing:0;">4.months.from_now.next_week.monday</span></p>
<p>
<div>Muita coisa é possível fazer no ruby por causa do &#8220;method_missing&#8221; que existe nos objetos. Por exemplo, você pode sobrescrever esse método e incluir um código como esse:</div>
<p><code><br />
def element(element_name, opts={})<br />
&#160;&#160;write “&#60;#{element_name}#{encode_opts(opts)}”<br />
&#160;&#160;if block_given?<br />
&#160;&#160;&#160;&#160;puts ”&#62;#{yield}”</code><br />
&#160;&#160;else<br />
&#160;&#160;&#160;&#160;puts “/&#62;”<br />
&#160;&#160;end<br />
end</p>
<p></span></span></span></span></div>
<div>E o resultado disso pode ser fazer uma manipulação simples de html:</div>
<div><code><br />
xml.html {<br />
&#160;&#160;xml.head{<br />
&#160;&#160;&#160;&#160;xml.title(“History”)<br />
&#160;&#160;}<br />
&#160;&#160;xml.body{<br />
&#160;&#160;&#160;&#160;xml.h1(“Header”)<br />
&#160;&#160;&#160;&#160;xml.p(“paragraph”)<br />
&#160;&#160;}<br />
}</code></div>
<div>Outro exemplo que eu adoro é o uso de Active Record  do Rails. Graças ao &#8220;method_missing&#8221; podemos fazer uso de métodos que não existem, como por exemplo:</div>
<div><code><br />
Funcionario.find_by_nome_and_cargo( "Fulano", "Gerente")</code></div>
<p>
<div>E ainda fazer uso de Named Scopes:</div>
<div><code>Funcionario.gerente.pelo_nome</code></div>
<p>
<div>Na linha acima o Active Record vai trazer todos gerentes ordenados pelo nome.</div>
<p>
<div>Ruby é uma linguagem muito boa para escrever DSL internas por ser uma linguagem não-obstrusiva e permite que muitas pontuações sejam opcionais. Porém,  DSL não faz o seu software magicamente melhor e devem ser usados com precauções. Nem sempre o código fica mais limpo com esse uso.</div>
<div>Glenn fala sobre a complexidade do software e a indicação do famoso livro de DDD do Eric Evans, e do livro The Mythical Man-Month.</div>
<p>
<div>Um bom design de software:</div>
<div>
<ul>
<li>E<span style="font-family:'Lucida Grande';line-height:normal;">limine tudo que possível da complexidade acidental</span></li>
<li><span style="font-family:'Lucida Grande';"><span style="line-height:normal;">Separe o resto</span></span></li>
</ul>
</div>
<p>Outras frases muito interessantes dessa apresentação:</p>
<ul>
<li><span style="font-family:'Lucida Grande';line-height:normal;">Linguagens são para pessoas entenderem o domínio</span></li>
<li><span style="font-family:'Lucida Grande';"><span style="line-height:normal;">Coisas que são implícitas na verdade são complexidades acidentais</span></span></li>
<li><span style="font-family:'Lucida Grande';"><span style="line-height:normal;">Aprender a linguagem ajuda a entender o domínio</span></span></li>
</ul>
<p>Um bom design de API:</p>
<ul>
<li>C<span style="font-family:'Lucida Grande';line-height:normal;">riar uma DSL para determinada construção é poderoso</span></li>
<li><span style="font-family:'Lucida Grande';"><span style="line-height:normal;">Você pode refatorar ela quando achar duplicação, complexidade, etc</span></span></li>
<li><span style="font-family:'Lucida Grande';"><span style="line-height:normal;">DSL interna é apenas uma parte do bom design da API no Ruby</span></span></li>
</ul>
<p style="font:12px Helvetica;margin:0;"><span style="letter-spacing:0;"><br />
</span></p>
<div><span style="font-family:Helvetica;font-size:small;"><span style="line-height:normal;"><br />
</span></span></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[A Note on Transparency]]></title>
<link>http://theagileexecutive.com/2009/04/22/a-note-on-transparency/</link>
<pubDate>Wed, 22 Apr 2009 17:01:44 +0000</pubDate>
<dc:creator>israelgat</dc:creator>
<guid>http://theagileexecutive.com/2009/04/22/a-note-on-transparency/</guid>
<description><![CDATA[InfoQ posted the London 2008 QCon panel on the topic Transparency: A Great Leap Forward or Exposed A]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://www.infoq.com/">InfoQ</a> posted the <a href="http://jaoo.dk/london-2008/conference/">London 2008 QCon</a> panel on the topic <a href="http://www.infoq.com/presentations/transparency-leap-or-exposure">Transparency: A Great Leap Forward or Exposed Artery?</a> The question addressed by this panel is summarized as follows:</p>
<blockquote><p>Agile propagandists make great claims about the advantages of being transparent about the state of their projects. They claim that this how mature relationships work and that &#8220;Honesty is the best policy&#8221;. But is this true? Many of us work in dysfunctional organisations where honesty is the best way to get cheated. Surely Transparency is just not pragmatic?</p></blockquote>
<p>Quite a few interesting facets are highlighted in the discourse between the audience and panelists Kent Beck, Keith Braithwaite, Steve Freeman, Chris Matts and John Nolan. For example:</p>
<ul>
<li>The power of the simple statement &#8220;It is what it is.&#8221;</li>
<li>Is the issue deeper than &#8220;just&#8221; transparency? For example, is it a matter of values?</li>
<li>The harsh reality in the trenches that revolves around transparency. Meaningless statements like &#8220;I need it for SOX compliance&#8221; have been known to be made.</li>
<li>How does one induce organizational change to improve transparency? In particular, how does one do so amidst organizational dysfunction?</li>
</ul>
<p>I would add one observation to the numerous good points made by the panelists. Ultimately, the most critical form of transparency is with respect to the user. There is no substitute to his/her feedback on an on-going basis. If you need to address transparency as part of your Agile roll-out or evolution, start with transparency to the user. It can be as simple as making the arrangements for some real customers to attend your release planning and bi-weekly demos.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Qcon London 2009 - Mais sobre o evento, por Junior]]></title>
<link>http://manifestonaweb.wordpress.com/2009/03/31/qcon-london-2009-mais-sobre-o-evento-por-junior/</link>
<pubDate>Tue, 31 Mar 2009 16:53:08 +0000</pubDate>
<dc:creator>Ricardo Almeida</dc:creator>
<guid>http://manifestonaweb.wordpress.com/2009/03/31/qcon-london-2009-mais-sobre-o-evento-por-junior/</guid>
<description><![CDATA[O Junior da Bluesoft também está escrevendo sobre os eventos do QCon London 2009. Podem conferir aba]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>O <a href="http://bluesoft.wordpress.com/">Junior da Bluesoft</a> também está escrevendo sobre os eventos do QCon London 2009. Podem conferir abaixo:</p>
<p><a href="http://bluesoft.wordpress.com/2009/03/16/qcon-londres-2009-resumo-do-evento/">QCon Londres 2009: resumo do evento</a></p>
<p><a href="http://bluesoft.wordpress.com/2009/03/17/qcon-londres-2009-tutorial-sobre-retrospectivas/">QCon Londres 2009: Tutorial sobre retrospectivas</a></p>
<p><a href="http://bluesoft.wordpress.com/2009/03/18/qcon-londres-2009-outros-tutoriais/">QCon Londres 2009: outros tutoriais</a></p>
<p><a href="http://bluesoft.wordpress.com/2009/03/20/qcon-londres-2009-palestras-da-quarta-feira/">QCon Londres 2009: palestras da quarta-feira</a></p>
<p><a href="http://bluesoft.wordpress.com/2009/03/26/qcon-londres-2009-palestras-da-quinta-feira/">QCon Londres 2009: palestras da quinta-feira</a></p>
<p><a href="http://bluesoft.wordpress.com/2009/03/29/qcon-londres-2009-sexta-feira-ultimo-dia/">QCon Londres 2009: sexta-feira (último dia)</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[David Anderson on "A Kanban System for Software Engineering"]]></title>
<link>http://runningagile.com/2009/03/30/david-anderson-on-a-kanban-system-for-software-engineering/</link>
<pubDate>Mon, 30 Mar 2009 23:36:38 +0000</pubDate>
<dc:creator>Christophe</dc:creator>
<guid>http://runningagile.com/2009/03/30/david-anderson-on-a-kanban-system-for-software-engineering/</guid>
<description><![CDATA[In this Qcon 2008 presentation, David Anderson presents a brief history of the kanban system through]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignright size-full wp-image-359" title="david-anderson1" src="http://runningagile.wordpress.com/files/2009/03/david-anderson1.jpg" alt="david-anderson1" width="194" height="259" /></p>
<p style="text-align:center;">
<p>In this <a href="http://www.infoq.com/presentations/kanban-for-software;jsessionid=9423BFE82AC4BC6177F6D41D6C71CB9D">Qcon 2008 presentation</a>, <a href="http://runningagile.com/category/david-anderson/">David Anderson</a> presents a brief history of the <a href="http://runningagile.com/category/kanban/">kanban</a> system through case study reports from teams at Microsoft and Corbis. Kanban acts to limit work-in-progress and focus the team on achieving a continuous flow of value to the customer and innovates on accepted agile management practices by providing an iteration-less process with a regular release cadence.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[QCon London 2009 - Projetos De Banco de Dados para ver de Perto]]></title>
<link>http://manifestonaweb.wordpress.com/2009/03/27/qcon-london-2009-database-projects/</link>
<pubDate>Fri, 27 Mar 2009 05:29:06 +0000</pubDate>
<dc:creator>Ricardo Almeida</dc:creator>
<guid>http://manifestonaweb.wordpress.com/2009/03/27/qcon-london-2009-database-projects/</guid>
<description><![CDATA[Geir Magnusson apresentou sobre  Cloud Data Persistence ou &#8220;We’re in a database reneaissance ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://blogs.codehaus.org/people/geir/">Geir Magnusson</a> apresentou sobre  Cloud Data Persistence ou <a href="http://qconlondon.com/london-2009/presentation/Cloud+Data+Persistence">&#8220;We’re in a database reneaissance &#8211; pay attention”</a> no QCon London 2009. A principal mensagem dessa apresentação foi que limitações físicas da tecnologia de hoje combinada com a complexidade computacional de bancos de dados relacionais convencionais estão nos levando a olhar para espaços novos e excitantes.</p>
<p>Apresentando soluções como <a href="http://labs.google.com/papers/bigtable.html">Google&#8217;s BigTable</a> e <a href="http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf">Amazon Dynamo</a> , Magnusson diz que banco de dados distribuídos nos permite gerenciar um enorme volume de dados (BigTable é preparado para tabelas petabyte) mas questões de alta disponibilidade, com distribuição através de muitos sistemas, trás alguns requerimentos que geralmente necessitam de uma solução que diverge de um modelo relacional e direciona para modelos de armazenagem de documentos.</p>
<p>Magnusson mencionou alguns projetos interessantes para olhar de perto.</p>
<p>Alternativas Open Source do Google BigTable:</p>
<ul>
<li><a href="http://hypertable.org/">Hypertable</a></li>
<li><a href="http://hadoop.apache.org/hbase">Apache Hbase</a></li>
</ul>
<p>Alternativas Open Source para o Amazon Dynamo:</p>
<ul>
<li><a href="http://project-voldemort.com/">Projeto Voldemort</a></li>
<li><a href="http://incubator.apache.org/projects/cassandra.html">Cassandra</a></li>
<li><a href="http://github.com/cliffmoon/dynomite/tree/master">Dynomite</a></li>
</ul>
<p>Outros projetos Open Source interessantes:</p>
<ul>
<li><a href="http://www.mongodb.org/">MongoDB</a>, armazenagem de documento<a href="http://www.mongodb.org/"><br />
</a></li>
<li><a href="http://couchdb.apache.org/">CouchDB,</a> armazenagem de documento JSon<a href="http://couchdb.apache.org/"><br />
</a></li>
<li><a href="http://memcachedb.org/">MemcachedDB</a>, banco de dados distribuído a armazenagem chave/valor, acessado via api memcached<a href="http://memcachedb.org/"><br />
</a></li>
<li><a href="http://launchpad.net/drizzle">Drizzle, </a>fork do mysql direcionado a cloud<a href="http://launchpad.net/drizzle"><br />
</a></li>
<li><a href="http://hadoop.apache.org/">Hadoop, </a>sistema de arquivo distribuído, framework M/R<a href="http://hadoop.apache.org/"><br />
</a></li>
<li><a href="http://opensource.plurk.com/LightCloud/">LightCloud,</a> banco de dados distribuído a armazenagem chave/valor, baseado no Tokyo Cabinet<a href="http://opensource.plurk.com/LightCloud/"><br />
</a></li>
<li><a href="http://code.google.com/p/scalaris">Scalaris</a>, escalavel, transacional, armazenagem chave/valor distribuído, em Erlang</li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[QCon London 2009 - Um Exemplo Completo em DDD]]></title>
<link>http://manifestonaweb.wordpress.com/2009/03/25/qcon-london-ddd-um-exemplo-completo/</link>
<pubDate>Wed, 25 Mar 2009 06:08:26 +0000</pubDate>
<dc:creator>Ricardo Almeida</dc:creator>
<guid>http://manifestonaweb.wordpress.com/2009/03/25/qcon-london-ddd-um-exemplo-completo/</guid>
<description><![CDATA[Estive no tutorial do QCon realizado por Peter Backlund e Patrik Fredriksson, que falaram sobre DDD ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Estive no tutorial do QCon realizado por <a href="http://qconlondon.com/london-2009/speaker/Peter+Backlund">Peter Backlund </a>e <a href="http://qconlondon.com/london-2009/speaker/Patrik+Fredriksson">Patrik Fredriksson</a>, que falaram sobre DDD e mostraram um exemplo com uma tecnologia atual.</p>
<p>Publiquei a notícia completa no site da <a href="http://www.infoq.com/br/news/2009/03/exemplo-completo-ddd">Infoq Br nesse link</a>.</p>
<p>Eles começaram com uma frase bem famosa do Eric Evans</p>
<blockquote><p>&#8220;A complexidade crítica de muitos projetos de software está no entendimento do próprio domínio&#8221;</p></blockquote>
<p>O maior desafio está na transferência de conhecimento entre as pessoas.</p>
<p><strong>Domain-Driven Design</strong></p>
<p>É a maneira de aproximar os problemas da complexidade de software através da cooperação próxima entre desenvolvedores e experts no domínio (domain). A complexidade está no domínio. Usamos modelos para manipular o domínio.</p>
<p><strong>Exemplo: <a href="http://dddsample.sourceforge.net/">DDDSample</a></strong></p>
<p>Essa aplicação de exemplo tem vários usos:</p>
<ul>
<li>Um exemplo &#8220;how to&#8221; para implementação de uma típica aplicação DDD</li>
<li>Suporte para discussão e práticas de implementação</li>
<li>Laboratório para experimentos controlados.</li>
</ul>
<p>Tecnologia</p>
<ul>
<li>Frameworks e componentes baseados em Open Source</li>
<li>Bom suporte para DDD e OO.</li>
<li>Java 6</li>
<li>Spring Core/ORM/JEE/Web</li>
<li>Hibernate</li>
<li>ActiveMQ JMS</li>
<li>Apache CXF Web Services</li>
<li>Jakarta Commons</li>
<li>Maven</li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[QCon London 2009 - O que Evans aprendeu sobre DDD desde seu Livro]]></title>
<link>http://manifestonaweb.wordpress.com/2009/03/25/qcon-london-o-que-evans-aprendeu-sobre-ddd-desde-seu-livro/</link>
<pubDate>Wed, 25 Mar 2009 05:35:23 +0000</pubDate>
<dc:creator>Ricardo Almeida</dc:creator>
<guid>http://manifestonaweb.wordpress.com/2009/03/25/qcon-london-o-que-evans-aprendeu-sobre-ddd-desde-seu-livro/</guid>
<description><![CDATA[Eric Evans Estive no evento QCon London 2009 e assisti a apresentação do Eric Evans sobre o que ele ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div id="attachment_388" class="wp-caption aligncenter" style="width: 310px"><a href="http://manifestonaweb.wordpress.com/files/2009/03/dsc077352.jpg"><img class="size-medium wp-image-388" title="dsc077352" src="http://manifestonaweb.wordpress.com/files/2009/03/dsc077352.jpg?w=300" alt="Eric Evans" width="300" height="225" /></a><p class="wp-caption-text">Eric Evans</p></div>
<p>Estive no evento QCon London 2009 e assisti a apresentação do Eric Evans sobre o que ele aprendeu após a publicação se seu <a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215">famoso livro sobre DDD</a>. Escrevi sobre o evento no site da Infoq Br</p>
<p>Publiquei a notícia completa no site da <a href="http://www.infoq.com/br/news/2009/03/ddd-desde-o-livro">Infoq Br</a>.</p>
<p>Os Slides da apresentação estão disponíveis <a href="http://qconlondon.com/london-2009/file?path=/qcon-london-2009/slides/EricEvans_WhatIveLearnedAboutDDDSinceTheBook.pdf">aqui</a>.</p>
<p><strong>Model</strong> é um <span style="text-decoration:underline;">sistema de abstração</span> que descreve aspectos <span style="text-decoration:underline;">selecionados</span> de um domínio e pode ser <span style="text-decoration:underline;">usado</span> para resolver problemas.</p>
<p><strong>Ubiquitous Language</strong> é uma linguagem estruturada dentro do domain model e usado por todos membros do time para comunicação.</p>
<p><strong>O que é essencial?</strong></p>
<ul>
<li>Colaboração criativa dos experts do domínio e experts em software.</li>
<li>Exploração e experimentação. Podem surgir idéias ruins, porém a exploração desse domínio é muito importante para um bom compreendimento</li>
<li>Modelos emergentes de elaboração e re-elaboração de uma ubiquitous language.</li>
<li>Camadas explícitas de contextos.</li>
<li>Foco no principal domínio.</li>
</ul>
<p><strong>Considerações Finais</strong></p>
<ul>
<li>Modelagens precisas são frágeis</li>
<li>Técnicas de Modelagem sofisticadas são gastas em uma <a href="http://www.laputan.org/mud/">bola de lama</a>.</li>
<li>É necessário uma camada &#8220;anti-corrupção&#8221;.</li>
<li>Nem tudo de um grande sistema será bem modelado</li>
</ul>
<p>Outros relatos dessa apresentação:</p>
<p>http://gojko.net/2009/03/12/qcon-london-2009-eric-evans-what-ive-learned-about-ddd-since-the-book/</p>
<p>http://www.markhneedham.com/blog/2009/03/13/qcon-london-2009-what-ive-learned-about-ddd-since-the-book-eric-evans/</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[QCon London 2009 - A huge breath of air before a long apnea in the IT real world]]></title>
<link>http://tnlessone.wordpress.com/2009/03/22/qcon-london-2009/</link>
<pubDate>Sun, 22 Mar 2009 21:21:27 +0000</pubDate>
<dc:creator>tnlessone</dc:creator>
<guid>http://tnlessone.wordpress.com/2009/03/22/qcon-london-2009/</guid>
<description><![CDATA[That&#8217;s a long time since I didn&#8217;t post here. After 4 days at QCon London and one week of]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="size-full wp-image-104 alignright" title="qconbadge" src="http://tnlessone.wordpress.com/files/2009/03/qconbadge.png" alt="QCon Badge" width="173" height="244" /></p>
<p>That&#8217;s a long time since I didn&#8217;t post here. After 4 days at <a title="QCon London" href="http://www.qconlondon.com/" target="_blank">QCon London</a> and one week of ski in <a title="Argentiere" href="http://en.wikipedia.org/wiki/Argenti%C3%A8re" target="_blank">Argentière</a>, I decided I would bend the rules of this blog by exposing my <em>feelings</em>, here about QCon.</p>
<p>To make it short, it was a great moment of thoughts and convivial discussions. It is by far the best conference and IT event I attended so far for different reasons:</p>
<ul>
<li>It covers an extremely broad spectrum of the IT World. With 5 main tracks at the same time during the whole days, the content is well diversified: Languages (functional, mainstream, &#8230;), Architecture, SOA, Agile, Performances, Finance and a newly very original track about Historically bad ideas.</li>
<li>The panel of speaker is incredible: <a title="Sir Tony Hoare" href="http://en.wikipedia.org/wiki/C._A._R._Hoare" target="_blank"> Sir Tony Hoare</a> (Quicksort inventor and much more), <a href="http://martinfowler.com/" target="_blank">Martin Fowler</a>, <a href="http://armstrongonsoftware.blogspot.com/">Joe Armstrong</a> (father of <a href="http://erlang.org/" target="_blank">Erlang</a>), Rich Hickey (<a href="http://clojure.org/" target="_blank">Clojure</a> inventor), <a href="http://olabini.com/blog/" target="_blank">Ola Bini</a> (JRuby developer and more),  <a href="http://blog.springsource.com/author/rodj/">Rod Johnson</a> (Spring Inventor), <a href="http://dannorth.net/" target="_blank">Dan North</a>,  Eric Evans (Mister DDD), and many more&#8230; Now you have an idea of the amount of experience and research accumulated by such a group of people.</li>
<li>It is not polluted all around with commercial presentation with stuff to sell.</li>
<li>The organization was very good, conference center is quite central (my <a href="http://www.parkplaza.com/londonuk_riverbank" target="_blank">hotel</a> was 20min walk from there) and comfortable, wifi, food (very good for such event!), a free beer night for speakers and audience.</li>
<li>I had the chance to meet Floyd and other editors from <a href="http://www.infoq.com/" target="_blank">InfoQ</a> (Dionysios, Stefan, Ryan, Diana, Sadek, Werner, Mirko, David, Jon, Roxanne, Alex) and we had a pleasant time in restaurants and pub.</li>
</ul>
<p>Now getting back to the presentation it started with a Keynote from Sir Tony Hoare about scientist and engineers and how to qualify software development. This is very well summarized by <a href="http://gojko.net/2009/03/11/qcon-london-2009-is-software-engineering/" target="_blank">Gojko</a>. This was definitely a great introduction to QCons.</p>
<p>Unfortunately I did a mistake by choosing <em>Architectures in Financial Applications</em> track. As a developer for various financial institution and vendor, I was expecting striking real world finance applications, but I was mostly disappointed. I didn&#8217;t learn much from it. And it was a wise decision to part this track and attend Martin Fowler presentation instead. In <em>Three years of real-world Ruby</em>, Martin talked about his feedbacks on the 64 (or 63..  I cannot remember) projects done at ThoughtWorks. Martin is a brilliant speaker and by relying on a nice metric his whole presentation was convincing. That&#8217;s too bad I was too shy to ask Martin this question: 10 years ago, cool kids were doing Java, 5 years ago they were doing Ruby, today cool kids are working with Haskell, or Erlang, do you plan to follow the cool kids again and give a presentation about <em>Three years of real-world Functional programming</em> in QCon 2012? But well I had an idea of the answer in the multi-paradigm IT world we live in today.</p>
<p>This first QCon day ended with <em>QCon Conference Party</em> in a pub not far from the conference center, with free beers and serious talks with <a href="http://www.innoq.com/blog/st/" target="_blank">Stefan Tilkov</a>, <a href="http://jroller.com/page/murphee" target="_blank">Werner</a>, &#8230; and less serious ones about wine and miscellaneous stuff with <a href="http://www.jroller.com/cpurdy/">Cameron Purdy</a>, and other attendees. Was nice to see such people like Ola, Kirk Pepperdine or Rod Johnson hanging around with a pint.</p>
<p>I spent the second day on the <em>Functional and Concurrent Programming Languages Applied</em> track which was led by <a href="http://www.erlang-consulting.com/">Francesco Cesarini</a>. The high moment of the day was the presentation by Rich Hickey about <a href="http://qconlondon.com/london-2009/file?path=/qcon-london-2009/slides/RichHickey_PersistentDataStructuresAndManagedReferences.pdf">Persistent Data Structures and Managed References</a> about states, process, identity and applications to Clojure. <em>Multicore Programming in Erlang</em> was also quite interesting. This whole track convinced me to have a closer look at Clojure, but also confirmed my choice to learn a functional language in 2009 which is the reason why I came back in Paris with Real World Haskell book in my bag (Yeah I know, Erlang is cool and was well covered during QCon but a <a href="http://offthelip.org/?p=125" target="_blank">friend</a> advised me to have a look at Haskell). At the end, I learnt many concepts and ideas that could be applied in my day-to-day job or side projects. Second day ended with a pleasant time with InfoQ editors at a restaurant.</p>
<p>Third day was again very rich intellectually. I followed most of the <em>Historically bad ideas</em> track. This track was a very original <em>good idea</em>. But as Aino Corry stated, convincing speakers to participate to such a track was far from being a piece of cake (we all have our egos <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ), unless&#8230; Sir Tony Hoare would be part of the track. His <em>Null References: The Billion Dollar Mistake</em> session was a good historical overview of what lead him to introduce Null References. Later I parted the <em>Historically bad ideas</em> track to join <em>Systems that never stop</em>, with Joe Armstrong introducing <a href="http://qconlondon.com/london-2009/file?path=/qcon-london-2009/slides/JoeArmstrong_ErlangALanguageForProgrammingReliableSystems.pdf">Erlang (A language for programming reliable systems)</a>. He introduced Erlang and why he invented it (for Ericsson Telecom Infrastructures). Relying on quotes from <a href="http://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist)" target="_blank">prestigious</a> <a href="http://en.wikipedia.org/wiki/Alan_Kay" target="_blank">sources</a>, Joe outlined the six laws Erlang is based on:</p>
<ul>
<li>Isolation</li>
<li>Concurrency</li>
<li>Must Detect Failure</li>
<li>Fault Identification</li>
<li>Live Code Upgrade</li>
<li>Stable Storage</li>
</ul>
<p>If you need all this, Erlang should be a good candidate for you. The presentation was one of the best I attended and Joe made it a very pleasant moment.</p>
<p>To finish this last day, I decided to attend the interview with Tony Hoare and another one about <em>REST for SOA: Using the Web for Integration</em> with Ian Robinson &#38; Jim Webber. Apart from being very charismatic persons, Ian and Jim are very pragmatic architects, and Stefan asked them the perfect questions.</p>
<p>We had a last dinner with Floyd and InfoQ team, and some more beers at the pub.</p>
<p>So well, as soon as the videos are out on <a href="http://www.infoq.com/" target="_blank">InfoQ</a>, you must absolutely have a look at the following presentations:</p>
<ul>
<li>Opening Keynote: The Science of Computing and the Engineering of Software by Sir Tony Hoare,</li>
<li>Null References: The Billion Dollar Mistake by Sir Tony Hoare,</li>
<li>Erlang: A language for programming reliable systems by Joe Armstrong,</li>
<li>Persistent Data Structures and Managed References by Rich Hickey.</li>
</ul>
<p>And interviews:</p>
<ul>
<li>REST for SOA: Using the Web for Integration with Ian Robinson &#38; Jim Webber.</li>
</ul>
<p>Now some random thoughts:</p>
<ul>
<li>It&#8217;s funny to see the success of retro-engineering and empiric architectures or languages: REST, Erlang. Compared to Sun&#8217;s first-specify-then-implement approach.</li>
<li>QCon is a tasty moment for a computer science enthusiast like me but well it&#8217;s so frustrating to see the IT enterprise reality: java, java and java and the rest only for the <em>Happy Few</em>&#8230; And in big structures even when you would be pushing to adopt more suited solutions discovered at QCon (or wherever: blogs, &#8230;), there will always be a higher ranked guy who is reluctant to changes and everything it implies.</li>
</ul>
<p>I just wish I had chosen a different track instead of the Financial one on the first day. It should be interesting to have a small fun and provocative  introductory session next time on <em>How to schedule your QCon, what to avoid</em>. I already imagine Jim Webber presenting this and nagging Martin Fowler. But seriously this is a very hard task. Basically you&#8217;re never disappointed by big names, so you should favor them but still you can be surprised by other small sessions.</p>
<p>All in all, the feedbacks I had from people in the audience, and speakers or people on the net tend to confirm my opinion that QCon London 2009 was a great success. I&#8217;d like to thank Floyd, and the whole <a href="http://www.infoq.com/" target="_blank">InfoQ</a> Team for this great moment.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[QCon London 2009 - Retrospectivas]]></title>
<link>http://manifestonaweb.wordpress.com/2009/03/20/qcon-london-2009-retrospectivas/</link>
<pubDate>Fri, 20 Mar 2009 04:32:35 +0000</pubDate>
<dc:creator>Ricardo Almeida</dc:creator>
<guid>http://manifestonaweb.wordpress.com/2009/03/20/qcon-london-2009-retrospectivas/</guid>
<description><![CDATA[Retrospectivas de times ágeis parecem ser algo bem simples de se fazer, porém na prática muitas difi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://manifestonaweb.wordpress.com/files/2009/03/dsc07711.jpg"><img class="aligncenter size-medium wp-image-352" title="dsc07711" src="http://manifestonaweb.wordpress.com/files/2009/03/dsc07711.jpg?w=300" alt="dsc07711" width="300" height="225" /></a></p>
<p>Retrospectivas de times ágeis parecem ser algo bem simples de se fazer, porém na prática muitas dificuldades podem surgir. Durante sua apresentação no <a href="http://www.qconlondon.com/">QCon 2009</a>, <a href="http://www.lindarising.org/">Linda Rising</a> falou sobre aplicar boas Retrospectivas e como não deixar que elas tenham efeitos colaterais.</p>
<p>Na retrospectiva acontece de o time não lembrar das coisas ruins e boas para ser discutidas e, portanto, os problemas podem continuar ocorrendo posteriormente. Outro problema que ocorre é eleger culpados, ao invés de pensar em soluções.</p>
<p>Algumas considerações da Linda Rising abaixo:</p>
<p>Em intervalos regulares, o time reflete sobre como se tornar mais efetivo, então melhora e ajusta seu comportamento em conformidade. Esses intervalos não podem ser muito longos porque os acontecimentos podem cair em esquecimento na hora da retrospectiva. O ideal é que ocorra uma mini-retrospectiva durante todos os dias. Devemos nos perguntar: &#8220;O que aconteceu nessa manhã?&#8221;. &#8220;O que eu deveria fazer para evitar que algo ruim que ocorreu hoje não ocorra mais?&#8221;. E para não cair em esquecimento, a pessoa pode escrever a idéia no cartão e colocar na parede para ser discutido na retrospectiva do sprint. Os cartões devem estar em um lugar fácil para todo o time visualizar, assim alguém pode até resolver um problema antes mesmo de ser discutido na reunião de retrospectiva. Usar cartões coloridos para identificar algo bom ou ruim também é interessante.</p>
<blockquote><p>&#8220;Uma retrospectiva é uma oportunidade para os participantes aprender como melhorar. O foco é no aprendizado &#8211; não na busca de culpados.&#8221; Norm Kerth do livro <em>Project Retrospectives</em></p></blockquote>
<p>Reflita e encontre uma melhor maneira.</p>
<p><strong>O que é uma retrospectiva?</strong></p>
<blockquote><p>&#8220;Temos que testar nosso conhecimento constantemente &#8211; usando práticas como retrospectivas. Isso deve ser feito depois de cada ciclo iterativo ao invés de esperar o final do projeto.&#8221; Jim Highsmith</p></blockquote>
<p><strong>Por que uma retrospectiva?</strong></p>
<p>Retrospectivas são para aprender do passado. Queremos acreditar que aprender de experiências é automático, mas para isso é necessário habilidades profundas. Experiência fornece dados, não conhecimento.</p>
<p>O objetivo é planejar o futuro para se aprimorar.</p>
<blockquote><p>&#8220;Pessoas querem aprimorar-se mas geralmente elas não sabem em que trabalhar para isso. Quando elas recebem bom feedback em pontos específicos, libera uma inclunação natural interna para melhorar&#8221; James Fallows.</p></blockquote>
<blockquote><p><span style="color:#000000;">&#8220;Tenho visto um um time inteiro fazendo reflexão, descobrindo, e ensinando muito. Acredito que não existe melhor maneira de melhorar a performance e qualidade do time.&#8221; Norm Kerth</span></p></blockquote>
<p><strong>Exemplos de Retrospectivas</strong></p>
<p><span style="color:#000000;">Linda apresenta dois exemplos clássicos sobre retrospectivas. <a href="http://www.chiefmontagna.com/Articles/post%20fire%20critique.htm"></a></span></p>
<ul>
<li><span style="color:#000000;"><a href="http://www.chiefmontagna.com/Articles/post%20fire%20critique.htm">Post-fire Critiques</a> é um artigo que explica como uma retrospectiva pode ser importante em trabalhos que envolvem a vida de humanos. </span>Bombeiros, tal como todos os seres humanos, cometem erros. Quando bombeiros cometem um erro no emprego, no entanto, pode colocar a própria vida em risco, aos seus colaboradores, e para o público que servem. No entanto, bombeiros vão continuar cometendo erros e podem repetir um erro grave.</li>
<li><a href="http://www.amazon.com/CEO-Monk-Companys-Journey-Purpose/dp/0471450111">The CEO &#38; The Monk &#8211; corporate funeral</a>.</li>
</ul>
<p><strong>O que retrospectiva não é?</strong></p>
<p>Uma coisa muito importante é o que a retrospectiva não é.</p>
<blockquote><p>&#8220;Não nomeie, não culpe. Mas um louvor é sempre bem vindo.&#8221;</p></blockquote>
<p>Essa frase quer dizer que em uma retrospectiva, nunca devemos &#8220;dar nome aos bois&#8221;. Não devemos citar nomes em hipótese nenhuma. O objetivo também não é achar culpados. Por mais que todos saibam quem é o culpado, na retrospectiva devemos falar do problema mas sem falar em nomes. Linda deu um exemplo: &#8220;Devemos melhorar os processos de banco de dados. Todos sabem quem é o DBA, mas não deve ser citado nomes nunca. O objetivo é de refletir e melhorar&#8221;.</p>
<p>Primeira diretiva de Kerth:</p>
<blockquote><p>&#8220;Independentemente daquilo que descobrir, temos de entender e realmente acredito que todos fizeram o melhor trabalho que poderia, dado o que ficou conhecido na época, a sua competência e habilidades, os recursos disponíveis, bem como a situação na mão&#8221;</p></blockquote>
<p>Essa diretiva é excelente para que não sejamos direcionados a achar culpados dos erros.</p>
<p><strong>Por que ter tanto tempo?</strong></p>
<p>Nossa memória é pequena e seletiva. Temos a tendência em focar em eventos recentes, especialmente se eles são dolorosos. Humanos necessitam de ajuda para lembrar, transformar experiência (dados) em aprendizado (conhecimento). Facilitadores externos são requeridos</p>
<p><strong>Horas apropriadas para retrospectivas</strong></p>
<p><span style="color:#000000;">Realizar tanto no final do projeto quanto durante o projeto. Durante o projeto pode ser feita depois de um sprint ou em resposta a uma &#8220;surpresa&#8221;. </span></p>
<p><span style="color:#000000;"><strong>Quem deve participar?</strong></span></p>
<p><span style="color:#000000;">Desenvolvedores, Marketing, QA, Gerentes.</span></p>
<p><strong>Exercício</strong></p>
<p>Linda Rising fez um exercício muito interessante sobre a linha do tempo. Pediu para as pessoas escreverem sobre acontecimentos em cartões, durante um período que representa a linha do tempo. Cartões que representam: Desafio, Surpresa e Felicidade. Cada um com sua cor respectiva. Analisando essa linha do tempo sabemos o que foi bom (What Worked Well), o que tivemos dificuldade e que surpresas ocorreram (What To Do Differently). Essa informação também ajuda a saber se tem algo mehorando, priorando ou algo que sempre ocorre dentro dos sprints.</p>
<div id="attachment_356" class="wp-caption aligncenter" style="width: 310px"><a href="http://manifestonaweb.wordpress.com/files/2009/03/img_03892.jpg"><img class="size-medium wp-image-356" title="img_03892" src="http://manifestonaweb.wordpress.com/files/2009/03/img_03892.jpg?w=300" alt="Linha do Tempo - Sprint 1" width="300" height="225" /></a><p class="wp-caption-text">Linha do Tempo - Sprint 1</p></div>
<div id="attachment_357" class="wp-caption aligncenter" style="width: 310px"><a href="http://manifestonaweb.wordpress.com/files/2009/03/img_0390.jpg"><img class="size-medium wp-image-357" title="img_0390" src="http://manifestonaweb.wordpress.com/files/2009/03/img_0390.jpg?w=300" alt="Linha do Tempo - Sprint 2" width="300" height="225" /></a><p class="wp-caption-text">Linha do Tempo - Sprint 2</p></div>
<div id="attachment_358" class="wp-caption aligncenter" style="width: 310px"><a href="http://manifestonaweb.wordpress.com/files/2009/03/img_0392.jpg"><img class="size-medium wp-image-358" title="img_0392" src="http://manifestonaweb.wordpress.com/files/2009/03/img_0392.jpg?w=300" alt="Linha do Tempo - Sprint 3" width="300" height="225" /></a><p class="wp-caption-text">Linha do Tempo - Sprint 3</p></div>
<p><span style="color:#000000;"><strong>O que acoontece antes da retrospectiva?</strong></span></p>
<p><span style="color:#000000;">Requisitos de dados de eventos, dados de esforço e artefatos. Conversa com gerentes. Inquéritos com os participantes.</span></p>
<p><strong>O que acontece durante?</strong></p>
<p>Leituras, analise do passado, e preparo para o futuro. Existem alguns exercícios como: Definir Sucesso, Linha do Tempo. Durante a retrospectiva podemos determinar ações a ser tomadas nos próximos releases ou projetos e criar planos de ação para identificar o próximo &#8220;experimento&#8221;.</p>
<p><strong>O que acontece depois?</strong></p>
<p>Podem ser feitos Relatórios de Retrospectivas, sobre o que aconteceu bem que não deve ser esquecido. Documentar o que pode ser feito diferentemente, planos de ação, definir experimentos, aplicar patterns.</p>
<p><strong>Crie Segurança</strong></p>
<p>É comum que pessoas se sintam desconfortáveis em falar de problemas, principalmente se estiverem diante de seu chefe. Crie uma atmosfera segura no qual o time se sinta bem confortável para falar abertamente e honestamente.</p>
<p><strong>Como o conhecimento é compartilhado?</strong></p>
<p>Postando na web, encontros de time, foruns técnicos, cursos de treinamento.</p>
<p><strong>Como vender retrospectivas?</strong></p>
<p>Pessoas podem achar que é perca de tempo, mas o propósito de retrospectivas é o <span style="text-decoration:underline;">aprendizado</span>. Evitar erros recorrentes, identificar e compartilhar práticas bem sucedidas, preparar para a próxima interação e projetos futuros.</p>
<blockquote><p>&#8220;Todos dizem que querem aprender, mas poucos separam tempo para fazer isso&#8221;</p></blockquote>
<p>E finalmente Linda recomenda seu livro sobre patterns:</p>
<p>Fearless Change: Patterns for introducing new ideas, May Lynn Manns &#38; Linda Rising, Addison-Wesley, 2005</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Relatos do QCon London 2009]]></title>
<link>http://manifestonaweb.wordpress.com/2009/03/16/relatos-do-qcon-london-2009/</link>
<pubDate>Mon, 16 Mar 2009 05:20:02 +0000</pubDate>
<dc:creator>Ricardo Almeida</dc:creator>
<guid>http://manifestonaweb.wordpress.com/2009/03/16/relatos-do-qcon-london-2009/</guid>
<description><![CDATA[Big Ben e London Eye Semana passada o Junior da Bluesoft , Dairton do Agilcoop e eu estivemos em Lon]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div id="attachment_334" class="wp-caption alignleft" style="width: 310px"><a href="http://manifestonaweb.files.wordpress.com/2009/03/dsc07574.jpg"><img class="size-medium wp-image-334" title="dsc07574" src="http://manifestonaweb.wordpress.com/files/2009/03/dsc07574.jpg?w=300" alt="dsc07574" width="300" height="225" /></a><p class="wp-caption-text">Big Ben e London Eye</p></div>
<p>Semana passada o <a href="http://blog.bluesoft.com.br/">Junior da Bluesoft </a>, Dairton do Agilcoop e eu estivemos em Londres para participar de um dos maiores eventos de tecnologia: <a href="http://qconlondon.com/london-2009">QCon</a>. O evento ocorreu em Londres, local do Big Ben e London Eye. Uma cidade muito bonita que mistura o novo e o velho. Construções muito antigas e belas ao lado de prédios moderníssimos. No evento conhecemos André e Daniel da UOL. Também tive o prazer de encontrar com os <a href="http://www.thoughtworks.com/">TWers</a> <a href="http://www.dtsato.com/">Danilo Sato</a>, <a href="http://franktrindade.wordpress.com/">Francisco Trindade</a> e <a href="http://www.lixo.org/">Carlos Villela</a>.</p>
<p>As apresentações foram de alto nível e os assuntos interessavam em todos os setores da área de desenvolvimento de software, pois abrangeu tópicos como Agile, Java, Ruby, Arquitetura, etc. Interessou tanto para quem trabalha com desenvolvimento como pré-venda, negócios ou gerentes.</p>
<p>O evento foi muito bem organizado. Havia tempo para perguntas no final de cada apresentação. No intervalo de cada palestra havia um coffee-break. Os almoços organizados pelo evento também foram muito bons. Bastante networking entre pessoas das mais diversas nacionalidades. O feedback das palestras eram representadas por cartões verdes, amarelos ou vermelhos que os congressistas colocavam em uma caixa no final de cada apresentação.</p>
<div id="attachment_337" class="wp-caption alignleft" style="width: 310px"><a href="http://manifestonaweb.files.wordpress.com/2009/03/img_0432.jpg"><img class="size-medium wp-image-337" title="img_0432" src="http://manifestonaweb.wordpress.com/files/2009/03/img_0432.jpg?w=300" alt="Junior e Eu" width="300" height="225" /></a><p class="wp-caption-text">Junior e Eu</p></div>
<p style="text-align:auto;">
<p style="text-align:auto;">Começei na segunda e terça assistindo os tutoriais. Terça a noite teve uma apresentação do Ola Bini sobre &#8220;Creating a language on the JVM&#8221;, na ThoughtWorks. Na quarta-feira, depois das palestras, ocorreu o QCon Conference Party em um pub próximo do evento. Na quinta, logo após o término das palestras, começou o Cloud Camp, uma desconferência onde algumas pessoas apresentaram rapidamente suas experiências com Cloud Computing, seguido por open spaces. Sexta teve as palestras e o encerramento.</p>
<p>Na segunda a tarde, durante o tutorial de DDD, estava passando por perto da conferência a Rainha da Inglaterra. Muitos sinos tocavam. Porém a palestra não foi tão prejudicada, apesar do barulho.</p>
<div id="attachment_360" class="wp-caption aligncenter" style="width: 1034px"><a href="http://manifestonaweb.wordpress.com/files/2009/03/dsc07726.jpg"><img class="size-full wp-image-360" title="dsc07726" src="http://manifestonaweb.wordpress.com/files/2009/03/dsc07726.jpg" alt="Rainha da Inglaterrra" width="1024" height="768" /></a><p class="wp-caption-text">Rainha da Inglaterrra</p></div>
<p>Os próximos posts nesse blog vou escrever sobre as apresentações do QCon London 2009.</p>
<p>Tutoriais (Segunda):</p>
<ul>
<li><a href="http://manifestonaweb.wordpress.com/2009/03/20/qcon-london-2009-retrospectivas/">&#8220;Retrospectives&#8221;</a>, Linda Rising.</li>
<li><a href="http://manifestonaweb.wordpress.com/2009/03/25/qcon-london-ddd-um-exemplo-completo/">&#8220;Domain-Driven Design &#8211; a complete example in a current technology stack&#8221;</a>, Peter Backlund e Patrik Fredriksson.</li>
</ul>
<p>Tutoriais (Terça)</p>
<ul>
<li><a class="textlink" href="http://qconlondon.com/london-2009/presentation/Influence+Strategies">&#8220;Influence Strategies&#8221;,</a><span class="textlink"> </span>Linda Rising.</li>
<li><a class="textlink" href="http://qconlondon.com/london-2009/presentation/Behaviour-driven+development%3A+writing+software+that+matters">&#8220;Behaviour-driven development: writing software that matters&#8221;</a>, Dan North.</li>
</ul>
<p>Extra (Terça)</p>
<ul>
<li>Ola Bini sobre &#8220;Creating a language on the JVM&#8221;, na ThoughtWorks</li>
</ul>
<p>Conferência (Quarta):</p>
<ul>
<li>Painél de discussão sobre performance e escalabilidade, moderado por Floyd Marinescu.</li>
<li>Programming in the Small, por Mike Hill e Ivan More</li>
<li>Test Driven Development: Ten Years Later. Por Michael Feathers e Steve Freeman</li>
<li><a href="http://manifestonaweb.wordpress.com/2009/03/27/qcon-london-2009-database-projects/">Cloud Data Persistence</a>. Por Geir Magnusson</li>
<li>Three years of real-world Ruby. Por Martin Fowler.</li>
<li>CI from the trenches: real-world Continuous Integration challenges. Por Julian Simpson.</li>
</ul>
<p>Conferência (Quinta):</p>
<ul>
<li><a href="http://manifestonaweb.wordpress.com/2009/03/25/qcon-london-o-que-evans-aprendeu-sobre-ddd-desde-seu-livro/">What I&#8217;ve learned about DDD since the book</a>. Por Eric Evans</li>
<li>Coaching self-organizing teams. Por Joseph Petrine</li>
<li>The Power of Value Objects in Domain Driven Design. Por San Johnsson</li>
<li>Is Domain-Driven Design more than Entities and Repositories? Por Jimmy Nilsson</li>
</ul>
<p>Conferência (Sexta):</p>
<ul>
<li>Pimp my architeture. Por Dan North</li>
<li>Java Enterprise application standards and why the industry moved to lightweight open source. Por Rod Jonson.</li>
<li>Strategic Design. Por Eric Evans</li>
<li>DSL in Oslo. Por Amanda Laucher</li>
<li>The State of DLS Art in Ruby. Glenn Vanderburg</li>
</ul>
</div>]]></content:encoded>
</item>

</channel>
</rss>
