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

<channel>
	<title>blog.caelum.com.br &#187; falando em java</title>
	<atom:link href="http://blog.caelum.com.br/tag/falando-em-java/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.caelum.com.br</link>
	<description>blog dos desenvolvedores da Caelum</description>
	<lastBuildDate>Thu, 09 Feb 2012 13:04:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>VRaptor 3 disponível para download</title>
		<link>http://blog.caelum.com.br/vraptor-3-disponivel-para-download/</link>
		<comments>http://blog.caelum.com.br/vraptor-3-disponivel-para-download/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 10:21:30 +0000</pubDate>
		<dc:creator>Guilherme Silveira</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[falando em java]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[palestra]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[vraptor]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webapp]]></category>

		<guid isPermaLink="false">http://blog.caelum.com.br/?p=1019</guid>
		<description><![CDATA[A versão beta do VRaptor 3 já se encontra disponível para download, juntamente com sua documentação: O VRaptor é um framework web, que faz o papel de controlador MVC, e nasceu dentro da universidade de São Paulo há 5 anos e hoje em dia é mantido pela Caelum, com comitters de diversas empresas. A melhor <a href="http://blog.caelum.com.br/vraptor-3-disponivel-para-download/#more-1019'" class="more-link">more &#187;</a>]]></description>
			<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://vraptor.caelum.com.br/images/marca.png" width="240" />
		</p><p>A versão beta do <a href="http://www.vraptor.com.br/">VRaptor 3</a> já se encontra disponível para download, juntamente com sua documentação:</p>
<p><center><a href="http://www.vraptor.com.br/"><img src="http://vraptor.caelum.com.br/images/marca.png" alt="vraptor"/></a></center></p>
<p>O VRaptor é um framework web, que faz o papel de controlador MVC, e nasceu dentro da universidade de São Paulo há 5 anos e hoje em dia é mantido pela Caelum, com comitters de diversas empresas. A melhor maneira de você conhecer os recursos e objetivos do VRaptor 3 é através da palestra que ocorreu no <a href="http://www.falandoemjava.com.br">Falando em Java</a> deste ano, apresentada por mim e pelo F<strong>i</strong>lipe Sabella:</p>
<p><center><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5961030&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5961030&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object></center></p>
<p>O VRaptor 3 traz um modelo simples de injeção de dependências, facilidade para se trabalhar com AJAX e Rest, conversores robustos e uma forma de trabalhar com componentes que facilita muito os seus testes unitários.</p>
<p>Para tirar dúvidas sobre o VRaptor agora você pode usar o <a href="http://guj.com.br/forums/show/23.java"> fórum do GUJ sobre frameworks brasileiros</a>. Contamos com o seu feedback e dos antigos usuários!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.caelum.com.br/vraptor-3-disponivel-para-download/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Vídeo da palestra do JBoss Seam no Falando em Java 2009</title>
		<link>http://blog.caelum.com.br/video-da-palestra-do-jboss-seam-no-falando-em-java-2009/</link>
		<comments>http://blog.caelum.com.br/video-da-palestra-do-jboss-seam-no-falando-em-java-2009/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 00:20:58 +0000</pubDate>
		<dc:creator>Ricardo Nakamura</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[falando em java]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[jpa]]></category>
		<category><![CDATA[seam]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.caelum.com.br/?p=1014</guid>
		<description><![CDATA[Estamos disponibilizando uma das palestras do Falando em Java de 2009, e esta é sobre JBoss Seam, um dos frameworks que mais tem ganho popularidade, que tem como seu líder Gavin King, também criador do Hibernate! É uma introdução ao Seam, junto com uma visão sobre seu futuro. JBoss Seam e WebBeans &#8211; Falando em <a href="http://blog.caelum.com.br/video-da-palestra-do-jboss-seam-no-falando-em-java-2009/#more-1014'" class="more-link">more &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Estamos disponibilizando uma das palestras do <a href="http://www.falandoemjava.com.br/">Falando em Java</a> de 2009, e esta é sobre <a href="http://seamframework.org/">JBoss Seam</a>, um dos frameworks que mais tem ganho popularidade, que tem como seu líder Gavin King, também criador do Hibernate! É uma introdução ao Seam, junto com uma visão sobre seu futuro.</p>
<p><center><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5965824&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5965824&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object>
<p><a href="http://vimeo.com/5965824">JBoss Seam e WebBeans &#8211; Falando em Java 2009</a> from <a href="http://vimeo.com/user1362352">Caelum</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p></center></p>
<p>Aproveitem a palestra que dei junto ao <a href="http://alessandrolazarotti.wordpress.com/">Alessandro Lazarotti</a>, da Red Hat/JBoss Brasil!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.caelum.com.br/video-da-palestra-do-jboss-seam-no-falando-em-java-2009/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Falando em Java 2009: eu fui!</title>
		<link>http://blog.caelum.com.br/falando-em-java-2009-eu-fui/</link>
		<comments>http://blog.caelum.com.br/falando-em-java-2009-eu-fui/#comments</comments>
		<pubDate>Wed, 27 May 2009 10:22:05 +0000</pubDate>
		<dc:creator>Guilherme Silveira</dc:creator>
				<category><![CDATA[Caelum]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[conferencia]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[falando em java]]></category>
		<category><![CDATA[falandoemjava]]></category>
		<category><![CDATA[jim webber]]></category>
		<category><![CDATA[palestras]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[soa]]></category>

		<guid isPermaLink="false">http://blog.caelum.com.br/?p=747</guid>
		<description><![CDATA[Este domingo aconteceu o Falando em Java 2009 com mais de 500 participantes, evento que nesta terceira edição trouxe o inglês Jim Webber, arquiteto global e diretor de serviços profissionais da ThoughtWorks. Jim falou de SOA e integração e encerrou o evento dando detalhes técnicos sobre restful webservices. O próprio Jim postou a respeito do <a href="http://blog.caelum.com.br/falando-em-java-2009-eu-fui/#more-747'" class="more-link">more &#187;</a>]]></description>
			<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://farm3.static.flickr.com/2429/3567450619_7a5d55eda3_m.jpg" width="240" />
		</p><p>Este domingo aconteceu o <a href="http://www.falandoemjava.com.br/">Falando em Java 2009</a> com mais de <strong>500 participantes</strong>, evento que nesta terceira edição trouxe o inglês <a href="http://jim.webber.name/">Jim Webber</a>, arquiteto global e diretor de serviços profissionais da <a href="http://www.thoughtworks.com/">ThoughtWorks</a>. Jim falou de SOA e integração e encerrou o evento dando detalhes técnicos sobre restful webservices. </p>
<p>O próprio Jim postou a respeito do evento <a href="http://jim.webber.name/2009/05/26/85eb97fc-c601-4103-a6bc-e0f9a0adc10c.aspx">aqui</a>, e suas palestras podem ser vistas <a href="http://jim.webber.name/presentations.html">neste link</a> (Falando em Java Keynote e Caelum Tech Talk). Jim demonstrou-se um exímio palestrante, e foi o destaque do evento. Ele também participou de nosso evento interno, o Caelum Tech Day, que ocorreu na sexta feira dentro da empresa.</p>
<p><center><br />
<a href="http://www.flickr.com/photos/silveira/3567437555/" title="_MG_8950 by Paulo Silveira, on Flickr"><img src="http://farm4.static.flickr.com/3310/3567437555_7946d372b3_m.jpg" width="240" height="160" alt="_MG_8950" /></a> <a href="http://www.flickr.com/photos/silveira/3567450619/" title="_MG_8973 by Paulo Silveira, on Flickr"><img src="http://farm3.static.flickr.com/2429/3567450619_7a5d55eda3_m.jpg" width="240" height="160" alt="_MG_8973" /></a><br />
<a href="http://www.flickr.com/photos/silveira/3567447913/" title="_MG_8962 by Paulo Silveira, on Flickr"><img src="http://farm4.static.flickr.com/3384/3567447913_78fef98615_m.jpg" width="240" height="160" alt="_MG_8962" /></a> <a href="http://www.flickr.com/photos/silveira/3568300684/" title="_MG_9010 by Paulo Silveira, on Flickr"><img src="http://farm4.static.flickr.com/3176/3568300684_8fdfa97f02_m.jpg" width="240" height="160" alt="_MG_9010" /></a><br />
</center></p>
<p>Tivemos importantes anúncios, como <a href="http://www.arquiteturajava.com.br/">o livro de Arquitetura e Design de Software: uma visão sobre a plataforma Java</a>, a futura Caelum Brasília, o <a href="http://www.caelum.com.br/curso/fj-29-aplicacoes-ricas-adobe-flex/">novo curso de Flex</a> em parceria com a pioneira <a href="http://www.dclick.com.br/">DClick</a>, além do estágio avançado do <a href="http://github.com/caelum/vraptor/tree/master">desenvolvimento do VRaptor3</a>.</p>
<p>Já existe <a href="http://guj.com.br/posts/list/127676.java">um post no GUJ discutindo como foi o evento</a> e lá você pode deixar a sua opinião. Há também muitos posts em blogs comentando, criticando, elogiando e dando sugestões em relação ao evento, por enquanto temos nos seguintes blogs: <a href="http://www.loiane.com/2009/05/falando-em-java-2009-eu-fui/">Loiane Groner</a>, <a href="http://www.rafaelcarneiro.net/blog/2009/05/25/falando-em-java-2009-eu-fui/">Rafael Carneiro</a>, <a href="http://www.jeveaux.com/blog/2009/comentarios-do-falando-em-java-09/">Paulo Jeveaux</a>,<a href="http://albertoleal.eti.br/2009/05/falando-em-java-2009-eu-fui/">Alberto Leal</a>, <a href="http://www.settech.com.br/blog/?p=86">Alberto Souza</a>, <a href="http://javawora.blogspot.com/2009/05/falando-em-java-eu-fui.html">Eduardo Bregaida</a>, <a href="http://ensinar.wordpress.com/2009/05/25/falando-em-java-nossas-impressoes/">André Pantalião e Rodrigo Ribeiro</a>, <a href="http://celodemelo.wordpress.com/2009/05/26/falando-em-java-2009/">Marcelo Madeira</a>, <a href="http://www.natanaelpantoja.com/tech/?p=248">Natanael Pantoja</a>, <a href="http://celsoavmartins.blogspot.com/2009/05/falando-em-java-2009-minhas-impressoes.html">Celso Martins</a>, <a href="http://valdemarjr.blogspot.com/2009/05/falandoemjava-2009.html">Valdemar Jr</a>, <a href="http://leandrosilva.com.br/2009/05/25/entao-falando-em-java/">Leandro silva</a>, <a href="http://www.rodrigolazoti.com.br/?p=237">Rodrigo Lazoti</a>, <a href="http://www.gonow.com.br/blog/falando-em-java">no blog da Go Now</a> e <a href="http://www.bluetalk.com.br/2009/06/12/equipe-blueeye-no-falando-em-java-2009/">da BlueEye</a></p>
<p>Confira também como foi o evento em <a href="http://blog.caelum.com.br/fatos-e-fotos-do-falando-em-java-2007/">2007</a> e em <a href="http://blog.caelum.com.br/falando-em-java-2008-eu-fui/">2008</a>! Agradecemos aos nossos patrocinadores: a <a href="http://globo.com">Globo.com</a>, <a href="http://jboss.org">o grupo JBoss </a>e a <a href="http://locaweb.com.br">Locaweb</a>. Agradecemos a todos vocês pela presença, e ficamos na certa de realizar o próximo evento ainda melhor, baseado na experiência e feedback de todos vocês!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.caelum.com.br/falando-em-java-2009-eu-fui/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Próximas palestras: mercado de trabalho, scrum e testes!</title>
		<link>http://blog.caelum.com.br/proximas-palestras-mercado-de-trabalho-scrum-e-testes/</link>
		<comments>http://blog.caelum.com.br/proximas-palestras-mercado-de-trabalho-scrum-e-testes/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 13:37:26 +0000</pubDate>
		<dc:creator>luiz.bassi</dc:creator>
				<category><![CDATA[Caelum]]></category>
		<category><![CDATA[Inovação]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[falando em java]]></category>
		<category><![CDATA[mercado de trabalho]]></category>
		<category><![CDATA[palestras]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[testes]]></category>

		<guid isPermaLink="false">http://blog.caelum.com.br/?p=808</guid>
		<description><![CDATA[Na sexta feira, dia 24 de abril, Paulo Silveira vai palestrar na Feira do Estudante, um evento gigante organizado pelo CIEE que foca no início da carreira do profissional, a respeito de oportunidades de trabalho no exterior com computação, contado a sua própria experiência e de diversos colegas da Caelum: http://www.empresas.ciee.org.br/portal/hotsites/feiradoestudante/… Já no sábado, dia <a href="http://blog.caelum.com.br/proximas-palestras-mercado-de-trabalho-scrum-e-testes/#more-808'" class="more-link">more &#187;</a>]]></description>
			<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://www.caelum.com.br/falando-em-java/images/logo_fj2009.jpg" width="240" />
		</p><div>
<p>Na sexta feira, dia 24 de abril, Paulo Silveira vai palestrar na Feira do Estudante, um evento gigante organizado pelo CIEE que foca no início da carreira do profissional, a respeito de oportunidades de trabalho no exterior com computação, contado a sua própria experiência e de diversos colegas da Caelum:<br />
<a target="_blank" href="http://www.empresas.ciee.org.br/portal/hotsites/feiradoestudante/estudante/palestras_resumo.asp?expandable=1">http://www.empresas.ciee.org.br/portal/hotsites/feiradoestudante/…</a></p>
<p>Já no sábado, dia 25 de abril, Fabiano Milani, da parceira <a target="_blank" href="http://www.adaptworks.com.br">AdaptWorks</a>, abordará o tema “Scrum na sua empresa” no 14o encontro de Design e Tecnologia digital:<br />
<a target="_blank" href="http://www.edted.com.br/ewd-14/index.php/palestras">http://www.edted.com.br/ewd-14/index.php/palestras</a></p>
<p>Na semana seguinte, na quarta feira dia 29 de abril, José Donizetti e Paulo Silveira farão uma apresentação entitulada “Desmistificando o TDD na prática” na reunião mensal do SouJava. Você pode ver a programação da palestra e se inscrever aqui:<br />
<a target="_blank" href="http://tinyurl.com/soujava290409">http://tinyurl.com/soujava290409</a></p>
<p>Essas são ótimas oportunidades de vocês conhecerem um pouco mais do nosso trabalho e do dia a dia da nossa equipe! Espero vocês lá. E no mês seguinte temos o <a target="_blank" href="http://www.falandoemjava.com.br/">Falando em Java 2009</a>, no domingo, dia 24 de maio.</p>
</p>
<p><center><a target="_blank" href="http://www.falandoemjava.com.br/"><img src="http://www.caelum.com.br/falando-em-java/images/logo_fj2009.jpg" alt="Falando em Java 2009" align="center"></a></center></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.caelum.com.br/proximas-palestras-mercado-de-trabalho-scrum-e-testes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Falando em Java 2009: inscrições abertas</title>
		<link>http://blog.caelum.com.br/falando-em-java-2009-inscricoes-abertas/</link>
		<comments>http://blog.caelum.com.br/falando-em-java-2009-inscricoes-abertas/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 13:35:21 +0000</pubDate>
		<dc:creator>Sérgio Lopes</dc:creator>
				<category><![CDATA[Caelum]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[falando em java]]></category>
		<category><![CDATA[inscricoes]]></category>

		<guid isPermaLink="false">http://blog.caelum.com.br/?p=806</guid>
		<description><![CDATA[Estão abertas as inscrições para o evento Falando em Java 2009. O já consolidado evento organizado pela Caelum chega a sua terceira edição esse ano com duas atrações internacionais e palestras de alto nível. E o evento desse ano promete superar o sucesso de anos anteriores. Jim Webber, diretor da ThoughtWorks, apresentará a palestra Guerrilha <a href="http://blog.caelum.com.br/falando-em-java-2009-inscricoes-abertas/#more-806'" class="more-link">more &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Estão abertas as inscrições para o evento <a target="_blank" href="http://www.falandoemjava.com.br">Falando em Java 2009</a>. O já consolidado evento organizado pela <b>Caelum</b> chega a sua terceira edição esse ano com duas atrações internacionais e palestras de alto nível. E o evento desse ano promete superar o <a target="_blank" href="http://blog.caelum.com.br/falando-em-java-2008-eu-fui/">sucesso de anos anteriores</a>.</p>
<p><b>Jim Webber</b>, diretor da ThoughtWorks, apresentará a palestra <b>Guerrilha SOA</b>. E <b>Bill Burke</b>, arquiteto da JBoss/RedHat e participante da JSR 311 do JAX-RS, apresentará <b>Web Services Restful: Putting Java to REST</b>. Além disso, contaremos com os instrutores e consultores da Caelum em palestras sobre Arquitetura, Plataforma Java, JavaTV, VRaptor 3 e JBoss Seam (essa última com participação de Alessandro Lazarotti, da RedHat Brasil). <a target="_blank" href="http://www.caelum.com.br/falando-em-java/">Veja a grade completa</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.caelum.com.br/falando-em-java-2009-inscricoes-abertas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qualidade com Scrum</title>
		<link>http://blog.caelum.com.br/qualidade-com-scrum/</link>
		<comments>http://blog.caelum.com.br/qualidade-com-scrum/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 22:22:01 +0000</pubDate>
		<dc:creator>Edmilson Miyasaki</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Ágil]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[falando em java]]></category>
		<category><![CDATA[metodologias]]></category>
		<category><![CDATA[Qualidade]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://blog.caelum.com.br/2008/06/02/qualidade-com-scrum/</guid>
		<description><![CDATA[Tive a oportunidade de palestrar juntamente com o Alexandre Magno no Falando em Java 2008. Um tema recorrente durante as discussões depois de palestras e workshops sobre Scrum é Qualidade. Quando falamos sobre qualidade em software, surgem diversas dúvidas quanto ao que significa ter qualidade em um software: ter um código bem escrito? Testes unitários? <a href="http://blog.caelum.com.br/qualidade-com-scrum/#more-217'" class="more-link">more &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Tive a oportunidade de palestrar juntamente com o <a href="http://amagno.blogspot.com/">Alexandre Magno</a> no <a href="http://blog.caelum.com.br/falando-em-java-2008-eu-fui/">Falando em Java 2008</a>. Um tema recorrente durante as discussões depois de palestras e workshops sobre Scrum é <strong>Qualidade</strong>.</p>
<p>Quando falamos sobre qualidade em software, surgem diversas dúvidas quanto ao que significa ter qualidade em um software: ter um código bem escrito? Testes unitários? Código que não apresente falhas? Boa performance no que se propõe a fazer? Documentação?</p>
<p>De acordo com a NBR 13596 (ISO/IEC 9126), existem algumas características que um software deve apresentar para ser considerado como um software de qualidade. Estas características são listadas na tabela a seguir:</p>
<table align="center" border="1" width="80%" style="margin-left:20px;">
<tr>
<th align="left" width="50%">Característica</th>
<th align="left">Descrição</th>
</tr>
<tr>
<td>Funcionalidade</td>
<td>Satisfaz as necessidades?</td>
</tr>
<tr>
<td>Confiabilidade</td>
<td>É imune a falhas?</td>
</tr>
<tr>
<td>Usabilidade</td>
<td>É fácil de usar?</td>
</tr>
<tr>
<td>Eficiência</td>
<td>É rápido e &#8220;enxuto&#8221;?</td>
</tr>
<tr>
<td>Manutenibilidade</td>
<td>É fácil de modificar?</td>
</tr>
<tr>
<td>Portabilidade</td>
<td>É fácil de usar em outro ambiente?</td>
</tr>
</table>
<p>A maioria das características que determinam um software com qualidade referem-se mais a boas práticas de engenharia de software ou eficiência da plataforma tecnológica. Entretanto, <strong>Scrum</strong>, como framework para gerenciamento de projetos, também é capaz de oferecer qualidade no processo de desenvolvimento.</p>
<p>Em Scrum, conseguimos uma melhora na qualidade através de diversos pontos. Obter esta melhora na qualidade depende muito se Scrum está sendo bem implementado ou não.</p>
<p>Dentre estes pontos, podemos destacar:</p>
<ul>
<li>Iterações</li>
<li>Remoção de impedimentos</li>
<li>Inspeção e adaptação</li>
<li>Autonomia</li>
<li>Times multifuncionais</li>
</ul>
<h3>Iterações</h3>
<p>Qualidade em software também significa entregar para o cliente algo que lhe seja <em>realmente útil</em>, de acordo com suas necessidades.</p>
<p>Por ser uma framework ágil, Scrum trabalha com <strong>iterações</strong>, onde a cada iteração entregamos software, ou incrementos de software, potencialmente usável e de acordo com a necessidade do cliente. E, a cada nova iteração, temos &#8220;feedback&#8221; do que foi entregue e que utilizamos para melhorar o produto (sempre de acordo com a prioridade do cliente).</p>
<p>O &#8220;<strong>feedback</strong>&#8221; do cliente existiria de qualquer forma, seja apresentando o produto ao final de uma iteração, seja ao final de todo o ciclo de desenvolvimento (o que normalmente acarreta em alterações no código). Entretanto, se estas alterações forem feitas no final do projeto, isto também pode causar efeitos colaterais indesejados, ao passo que, fazê-las de forma antecipada, impede este tipo de problemas.</p>
<p>Através das <strong>Sprints</strong>, times Scrum estão sempre desenvolvendo algo que realmente tenha valor para o cliente.</p>
<h3>Remoção de impedimentos</h3>
<p>Remover qualquer tipo de <em>impedimento</em> durante a execução de um projeto é essencial não importa qual metodologia seja utilizada. Em Scrum, é esperado que estes problemas apareçam. Mas, o que é feito após resolver este impedimento, determina se um time está utilizando Scrum corretamente ou não.</p>
<p>Durante a execução de uma Sprint, é recomendável que a execução das tarefas seja feita item a item ao invés de cada membro executar tarefas de itens diferentes. Isso tem duas razões: a primeira é relacionada ao valor para o cliente. Para um cliente, um item somente tem valor caso tenha sido entregue completamente &#8212; algo que esteja funcionando 80% não lhe trará vantagem alguma. Além disso, executar um item completamente ajuda a manter o foco da equipe na meta e no item em específico. Desenvolvedores em geral tendem a ser mais orientados a tarefas ao invés de orientados a valor. Manter o foco na meta ajuda a aumentar a qualidade do item sendo desenvolvido.</p>
<p>A outra razão é em relação à forma como os problemas são resolvidos e como suas correspondentes soluções são utilizadas. A execução completa de um item representa um fluxo completo de execução e faz parte do processo utilizado no desenvolvimento. Neste caso, problemas que poderiam se tornar recorrentes podem ser solucionados imediatamente, permitindo que isso não se repita na execução dos próximos itens. Desta forma, estamos aprimorando o processo, o que também reflete na qualidade do produto.</p>
<h3>Inspeção e adaptação</h3>
<p>Ao final da execução de uma Sprint, há a <strong>Sprint Retrospective</strong>, uma das cerimônias de Scrum. Nela, revisamos a Sprint (<strong>inspeção</strong>) e determinamos o que foi bom e o que precisa ser melhorado (<strong>adaptação</strong>). As adaptações podem ser individuais ou coletivas, mas, de qualquer forma, elas garantem a melhora do processo e consequente otimização, o que traz diversos benefícios.</p>
<p>Com um processo mais enxuto e mais eficiente, podemos ter um software com mais qualidade.</p>
<h3>Autonomia</h3>
<p>Times em Scrum são <strong>auto-gerenciados</strong>, o que significa uma menor pressão sobre eles. Desta forma, cada um dos membros pode selecionar o que fará e terá o tempo necessário para fazê-lo com qualidade. Estudos mostram que, sob pressão de prazos exíguos, a primeira coisa a ser deixada de lado pelos desenvolvedores é a qualidade.</p>
<p>Além disso, através desta autonomia, os membros do time passam a ter uma melhor qualidade de vida, o que reflete em uma melhoria na qualidade como um todo. Isso porque passam a ter mais tempo e disposição para pesquisar uma melhor forma de abordar e executar uma tarefa. Em um ambiente onde Scrum tenha sido bem implantado, este aprimoramento pessoal é compartilhado com os outros membros, o que traz mais incremento na qualidade.</p>
<h3>Times multifuncionais</h3>
<p>Quando montamos os times, procuramos sempre montá-los com membros que tenham diferentes características ou atribuições. Por exemplo, ao invés de um time formado só por desenvolvedores ou só de analistas de requisitos, procuramos misturá-los e formar diversos times Scrum.</p>
<p>Isto porque a experiência de cada um é extremamente útil no planejamento das tarefas a serem executadas na Sprint. Entretanto, existe um conceito maior escondido por trás disto: <strong>qualidade desde o início</strong>.</p>
<p>Pude presenciar em diversas ocasiões a seguinte situação: empresas utilizando o modelo em cascata, faziam o levantamento de requisitos no início do projeto. Em seguida, arquitetos de sistema e especialistas no negócio modelavam as classes para atender a todos os requisitos levantados na etapa anterior. Depois (bem depois, por sinal), estes modelos eram passados para a equipe de desenvolvimento e o resultado era testado pela equipe de Q&amp;A e homologação. No final do processo, isto era entregue à equipe de implantação.</p>
<p>Invariavelmente, o contato com o cliente era feito no início do projeto, onde este apresentava todos os requisitos possíveis e imagináveis para o produto. Embora saibamos que o cliente sabe o que precisa mas tenha somente uma vaga idéia do que quer, ele era obrigado a informar o que desejava que fosse desenvolvido, e por isso a quantidade de requisitos, algumas vezes desnecessários, era imensa.</p>
<p>Durante a modelagem, os analistas modelavam o que era necessário para a aplicação, muitas vezes deixando de lado alguns detalhes que poderiam facilitar o desenvolvimento ou ignorando outros detalhes que pudessem melhorar o acesso aos dados.</p>
<p>Os desenvolvedores, por sua vez, simplesmente executavam o que foi determinado pelos arquitetos e no prazo determinado pelo gerente de projeto.</p>
<p>Depois de devidamente codificado, o resultado era passado para a equipe de Q&amp;A, que testava o que tinha sido produzido e retornava o resultado dos testes à equipe de desenvolvimento. Infelizmente, isto era feito invariavelmente aos lotes &#8212; os testadores eram obrigados a testarem diversos recursos de uma vez, muitas vezes impossibilitando testes com aspectos mais amplos.</p>
<p>Como tudo isso feito às pressas, em algumas situações, a equipe de implantação era informada com poucos dias de antecedência (e em uma situação, a equipe foi informada que tinha até o final da tarde para implantar um sistema). Com tão pouco prazo, muitas vezes a implantação era feita sem qualquer teste, simplesmente esperando que a sorte sorrisse para eles.</p>
<p>Note que os cinco parágrafos anteriores descreveram cada um dos estágios no desenvolvimento. E isto reflete como o desenvolvimento era feito &#8212; sem qualquer comunicação adicional entre cada uma das etapas que não fosse a documentação do sistema. É fácil descobrir o resultado disso.</p>
<p>Através de <strong>times multifuncionais</strong>, a cada Sprint temos a opinião de especialistas em diferentes áreas definindo o que será feito naquela Sprint. Enquanto não sabemos o que o cliente realmente quer como produto, sabemos o que é mais importante para ele, com estes especialistas definindo a melhor abordagem possível, levando em consideração os aspectos nos quais cada um é melhor. Assim, arquitetos podem começar definindo as classes levando em consideração a opinião de um especialista em banco de dados, de domínio, etc.</p>
<p>Utilizando o princípio de qualidade desde o início, o código tende a ser mais enxuto, mais adaptável, a ter mais performance. Como a interação com o usuário é constante, o produto estará sempre de acordo com a necessidade do usuário. E com a presença de um especialista em testes, cada tarefa executada já pode ser testada e eventualmente corrigida rapidamente.</p>
<p>E finalmente, um especialista em implantação já sabe antecipadamente o que deve testar e providenciar como ambiente de produção.</p>
<h3>Conclusões</h3>
<p>Existe uma beleza singular na simplicidade apresentada por Scrum. Entretanto, por trás desta simplicidade, existem conceitos que não devem ser ignorados, sob pena de obter somente parte dos benefícios de Scrum.</p>
<p>Um ScrumMaster deve estar sempre atento aos diversos sinais que o time apresenta, bem como motiva-los e desafia-los, sempre em busca constante do aprimoramento individual como seres humanos e o time como um todo. Além disso, buscar a melhoria contínua do processo permite que a qualidade passe a ser uma constante em futuros projetos de software.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.caelum.com.br/qualidade-com-scrum/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Domain-Driven Design no Falando em Java 2008</title>
		<link>http://blog.caelum.com.br/domain-driven-design-no-falando-em-java-2008/</link>
		<comments>http://blog.caelum.com.br/domain-driven-design-no-falando-em-java-2008/#comments</comments>
		<pubDate>Tue, 27 May 2008 02:54:30 +0000</pubDate>
		<dc:creator>Sérgio Lopes</dc:creator>
				<category><![CDATA[Arquitetura]]></category>
		<category><![CDATA[ddd]]></category>
		<category><![CDATA[domain driven design]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[falando em java]]></category>

		<guid isPermaLink="false">http://blog.caelum.com.br/2008/05/26/domain-driven-design-no-falando-em-java-2008/</guid>
		<description><![CDATA[No Falando em Java 2008, apresentei uma palestra introdutória sobre Domain-Driven Design. Apesar do tempo curto, os comentários foram ótimos! Muito obrigado a todos os que comentaram: pessoas no evento, blogs e GUJ. Falar de DDD em 40 min foi meu maior desafio e acabou faltando um pouquinho de tempo no final, mas deu para <a href="http://blog.caelum.com.br/domain-driven-design-no-falando-em-java-2008/#more-216'" class="more-link">more &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>No <a href="http://blog.caelum.com.br/2008/05/20/falando-em-java-2008-eu-fui/">Falando em Java 2008</a>, apresentei uma palestra introdutória sobre <a href="http://www.domaindrivendesign.org/">Domain-Driven Design</a>. Apesar do tempo curto, os comentários foram ótimos! Muito obrigado a todos os que comentaram: pessoas no evento, blogs e GUJ. Falar de DDD em 40 min foi meu maior desafio e acabou faltando um pouquinho de tempo no final, mas deu para passar a mensagem.</p>
<h3>Domain e Ubiquitous Language</h3>
<p>O ponto fundamental do DDD é o primeiro D, o <strong>Domain</strong>. Tudo gira em torno desse tal de Domínio. O domínio é, em poucas palavras, o problema que queremos resolver com o programa que estamos desenvolvendo. <em>Alguém</em> (um cliente) tem um <em>problema</em> na área de atuação dele (geralmente nada a ver com informática) e contrata uma equipe de programação para ajudá-lo (nós <img src='http://caelum.wpengine.netdna-cdn.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Segundo o DDD, é <strong>impossível</strong> resolver esse problema satisfatoriamente sem entender direito o que acontece no domínio do cliente. Não basta os desenvolvedores saberem mais ou menos: é necessário entrar fundo no domínio do cliente.</p>
<p>Mas é claro que nosso objetivo não é se tornar um especialista completo na área do cliente, mas apenas compreendê-la. A palavra-chave para isso acontecer é <strong>Conversa</strong>. Conversa constante e profunda entre os especialistas de domínio e os desenvolvedores. </p>
<p>Aqueles que conhecem o domínio em detalhes devem conversar com aqueles que conhecem programação em detalhes. Juntos, tentarão chegar a uma <strong>língua comum</strong> em que todos consigam se entender e que será usada em todas as conversas. É o que o DDD chama de <strong>Ubiquitous Language</strong>: uma língua baseada nos termos do domínio, não totalmente aprofundada neste, mas suficiente para descrever o problema satisfatoriamente.</p>
<h3>Construção do Domain Model</h3>
<p>Durante a conversa constante, todos juntos chegarão a um consenso sobre o Domínio. Os especialistas de domínio eventualmente criarão simplificações para facilitar a conversa; e os desenvolvedores podem introduzir conceitos técnicos simples.</p>
<p>Com isso, todos criam um <em>modelo do domínio</em>. É uma abstração do problema real, desenvolvida em conjuntos pelos especialistas do domínio e desenvolvedores. No DDD, é chamado de <strong>Domain Model</strong>.</p>
<p><strong>É esse modelo que os desenvolvedores vão implementar em código</strong>. Literalmente. Item por item, como foi acordado por todos. Será desenvolvido um código limpo, com palavras do domínio, que representa, na programação, o domínio em discussão.</p>
<p>Usando DDD, seu programa orientado a objetos deve expressar a riqueza do domain model. Qualquer mudança no modelo (e, acredite, isso é muito comum) deve ser refletida imediatamente no código. Se algo do modelo torna-se inviável de se implementar tecnicamente, não se faz um &#8220;ajustezinho&#8221; no código; o modelo deve ser mudado para ser mais fácil de se implementar.</p>
<p>Ou seja, <strong>sempre seu código será expressão do modelo</strong>, que por sua vez é baseado totalmente no domínio.</p>
<h3>Implementando o Domain Model</h3>
<p>O DDD define uma série de patterns para facilitar a implementação do modelo em código. <strong>Mas, com absoluta certeza, esse não é o ponto principal do DDD</strong>. São apenas ferramentas que facilitam essa implementação.</p>
<p>Na palestra, mostrei alguns patterns de forma bem simples e rápida, como Entity e <a href="http://martinfowler.com/bliki/ValueObject.html">Value Object</a>. E mostrei o tão discutido, debatido e mal-compreendido <a href="http://martinfowler.com/eaaCatalog/repository.html">Repository</a>.</p>
<p>O cliente descreve ao desenvolvedor o seguinte problema: <em>&#8220;preciso saber todos os peixes que são da cor azul&#8221;</em>. (na palestra, usei o exemplo de uma loja de peixes) Para o cliente, é natural em seu domínio, que se consiga &#8220;buscar&#8221; coisas. A idéia é recuperar &#8220;objetos&#8221; do domínio (entities) previamente conhecidos, baseado eventualmente em algum critério.</p>
<p>A noção de <strong>repositório</strong> surge justo dessa necessidade: chegar nos objetos de conhecimento do domínio. Na palestra, eu levantei a questão de que o nome repositório não deve ser algo interno ao código, mas <strong>deve fazer parte da Ubiquitous Language</strong>, deve aparecer nas conversas e no Domain Model. Ou seja, repositório deve ser um conceito que o especialista de domínio também entende e, por que está no Model, é ele que vai para o código.</p>
<p>Não há problema em trazer palavriado técnico para a Ubiquitous Language, desde que o príncipio da UL seja mantida: todos entendem o conceito. E, se, eventualmente, no contexto do domínio sendo tratado, outro nome faça mais sentido que repositório, esse nome deve ser usado (mesmo que nós técnicos saibamos que no fundo aquilo é um repositório).</p>
<p><strong>Repositório como interface? Classe concreta delegando? DAO implementa Repository?</strong><br />
Tanto faz. Um outro ponto fundamental do DDD é: nada tem resposta definitiva. Se você entende a questão toda do Domain Model e aplica essa noção na programação, pode usar diversas formas diferentes de implementar tudo isso.</p>
<p>Na palestra, eu representei o Repository como uma interface dentro do Model. E a implementação (que, do ponto de vista do DDD, <em>não importa</em>) era um DAO com Hibernate na camada de infraestrutura.</p>
<h3>Concluindo</h3>
<p>Meu ponto principal na palestra foi mostrar a Ubiquitous Language e o Domain Model, que são o coração do DDD. Vou escrever um segundo artigo com códigos e mais comentários da palestra, mas paro esse artigo gigante por aqui.</p>
<p>Termino <a href="http://blog.fragmental.com.br/2008/05/22/domain-driven-design-e-simples/">linkando para um excelente post do Philip Calçado</a> que ele publicou essa semana (parece até que combinamos) sobre DDD falando justo que o que conta no DDD é o Domínio e não os Patterns. Ele conta uma historinha de um projeto onde todos &#8220;entendiam&#8221;  DDD, usavam Repositórios, Entities etc, mas infelizmente não falavam a mesma língua do domínio.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.caelum.com.br/domain-driven-design-no-falando-em-java-2008/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Falando em Java 2008, eu fui!</title>
		<link>http://blog.caelum.com.br/falando-em-java-2008-eu-fui/</link>
		<comments>http://blog.caelum.com.br/falando-em-java-2008-eu-fui/#comments</comments>
		<pubDate>Tue, 20 May 2008 11:50:46 +0000</pubDate>
		<dc:creator>Paulo Silveira</dc:creator>
				<category><![CDATA[Caelum]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[falando em java]]></category>
		<category><![CDATA[guj]]></category>
		<category><![CDATA[hibernat]]></category>
		<category><![CDATA[jpa]]></category>

		<guid isPermaLink="false">http://blog.caelum.com.br/2008/05/20/falando-em-java-2008-eu-fui/</guid>
		<description><![CDATA[Este domingo aconteceu o Falando em Java 2008, evento organizado pela Caelum e que nessa segunda edição trouxe Emmanuel Bernard. Emmanuel é um francês que já vive há dois anos em Atlanta, e é líder de diversos projetos do Hibernate: a implementação da JPA, o Hibernate Annotations, o Hibernate Search e o Hibernate Validator, além <a href="http://blog.caelum.com.br/falando-em-java-2008-eu-fui/#more-214'" class="more-link">more &#187;</a>]]></description>
			<content:encoded><![CDATA[<p style="float:right; margin:0 0 10px 15px; width:240px;">
		<img src="http://farm3.static.flickr.com/2327/2507993248_fc7d7c452d_m.jpg" width="240" />
		</p><p>Este domingo aconteceu o <a href="http://www.falandoemjava.com.br/">Falando em Java 2008</a>, evento organizado pela Caelum e que nessa segunda edição trouxe <a href="http://blog.emmanuelbernard.com/">Emmanuel Bernard</a>. Emmanuel é um francês que já vive há dois anos em Atlanta, e é líder de diversos projetos do Hibernate: <a href="http://www.hibernate.org/397.html">a implementação da JPA</a>, o Hibernate Annotations, o <a href="http://www.hibernate.org/410.html">Hibernate Search</a> e o <a href="http://www.hibernate.org/412.html">Hibernate Validator</a>, além de ser líder da especificação de <a href="http://jcp.org/en/jsr/detail?id=303">Beans Validation</a> e participar do expert group da <a href="http://jcp.org/en/jsr/detail?id=317">JPA2.0</a>.</p>
<p>Os 295 participantes desta edição lotaram o anfiteatro do colégio Arquidiocesano em São Paulo!</p>
<p><center><br />
<a href="http://www.flickr.com/photos/silveira/2507160277/" title="falando em java  - 004 by Paulo Silveira, on Flickr"><img src="http://farm4.static.flickr.com/3198/2507160277_3020310bde_m.jpg" width="240" height="160" alt="falando em java  - 004" /></a> <a href="http://www.flickr.com/photos/silveira/2507993248/" title="falando em java  - 083 by Paulo Silveira, on Flickr"><img src="http://farm3.static.flickr.com/2327/2507993248_fc7d7c452d_m.jpg" width="240" height="160" alt="falando em java  - 083" /></a><br />
<a href="http://www.flickr.com/photos/silveira/2507990762/" title="falando em java  - 077 by Paulo Silveira, on Flickr"><img src="http://farm3.static.flickr.com/2121/2507990762_f74f8e362a_m.jpg" width="240" height="160" alt="falando em java  - 077" /></a> <a href="http://www.flickr.com/photos/silveira/2507997246/" title="falando em java  - 181 by Paulo Silveira, on Flickr"><img src="http://farm3.static.flickr.com/2218/2507997246_520747bc63_m.jpg" width="240" height="160" alt="falando em java  - 181" /></a><br />
<a href="http://www.flickr.com/photos/silveira/2508046564/" title="DSC00272 by Paulo Silveira, on Flickr"><img src="http://farm3.static.flickr.com/2152/2508046564_5618fb5602_m.jpg" width="240" height="180" alt="DSC00272" /></a> <a href="http://www.flickr.com/photos/silveira/2507267847/" title="falando em java  - 215 by Paulo Silveira, on Flickr"><img src="http://farm4.static.flickr.com/3193/2507267847_b46ff75685_m.jpg" width="240" height="160" alt="falando em java  - 215" /></a><br />
</center></p>
<p>Já existem diversos comentários e posts sobre o evento pipocando por aí:</p>
<ul>
<li><a href="http://guj.com.br/posts/list/91275.java">Thread no GUJ.com.br sobre diversos pontos do evento, mais de 4 páginas</a></li>
<li><a href="http://gc.blog.br/2008/05/19/fej-2008-falando-sobre-o-falando-em-java/">Post no blog do Guilherme Chapiewski</a></li>
<li><a href="http://codezone.wordpress.com/2008/05/19/falando-em-java-2008-eu-fui/">Post no blog do Leandro Silva</a></li>
<li><a href="http://www.jeveaux.com/blog/2008/comentarios-falando-em-java/">Post no blog do Paulo Jeveaux</a></li>
<li><a href="http://twitter.com/pellegrino/statuses/814593439">Twitter do Vitor Pellegrino</a></li>
<li><a href="http://twitter.com/jeveaux/statuses/814879602">Twitter do Paulo Jeveaux</a></li>
<li><a href="http://twitter.com/gchapiewski/statuses/814511210">Twitter do Guilherme Chapiewski</a></li>
<li><a href="http://twitter.com/AkitaOnRails/statuses/814337743">Twitter do Fábio Akita</a></li>
<li><a href="http://twitter.com/brunocarvalho/statuses/814586106">Twitter do Bruno Carvalho</a></li>
<li><a href="http://twitter.com/azambuja/statuses/814406274">Twitter do Marcello Azambuja</a></li>
</ul>
<p>O evento até gerou uma interessante discussão sobre Rails e JRuby:<br />
<a href="http://www.guj.com.br/posts/list/91312.java">http://www.guj.com.br/posts/list/91312.java</a></p>
<p>Fica aqui o agradecimento ao Emmanuel Bernard, que se revelou extremamente simpático e solícito, indo conosco comer picanha, ao samba, a feira aberta e experimentado todo tipo de comida. Também um obrigado a todos vocês participantes e a toda equipe da Caelum, que batalhou muito pela realização dessa segunda edição do evento. Em breve teremos posts sobre cada um dos assuntos abordados nas palestras, junto com os slides e comentários!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.caelum.com.br/falando-em-java-2008-eu-fui/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

