<?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>Coding4Food &#187; metodologia</title>
	<atom:link href="http://coding4food.com/tag/metodologia/feed/" rel="self" type="application/rss+xml" />
	<link>http://coding4food.com</link>
	<description>software development and IT stuff</description>
	<lastBuildDate>Sun, 26 Dec 2010 12:46:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>agile na sociesc</title>
		<link>http://coding4food.com/2010/08/31/agile-na-sociesc/</link>
		<comments>http://coding4food.com/2010/08/31/agile-na-sociesc/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 05:09:48 +0000</pubDate>
		<dc:creator>Eduardo Kruger</dc:creator>
				<category><![CDATA[metodologia]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://coding4food.com/?p=862</guid>
		<description><![CDATA[
Semana passada estive na Sociesc conversando um pouco sobre desenvolvimento ágil na Semana da Computação, realizada entre os dias 23 e 28 de agosto. Falei um pouco da minha experiência pessoal com desenvolvimento de software e no que estou trabalhando atualmente.
Segue o vídeo da apresentação:

Correções:
*Fiz um comentário sobre uma fábrica de software com mil programadores [...]]]></description>
			<content:encoded><![CDATA[<div class="TweetButton_button" style="float: right; margin-left: 10px;;height:20px;margin-bottom:5px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fcoding4food.com%2F2010%2F08%2F31%2Fagile-na-sociesc%2F&amp;text=agile na sociesc&amp;count=vertical&amp;lang=en&amp;related=agile,metodologia"><img src="http://coding4food.com/wp-content/plugins/tweetbutton-for-wordpress/images/tweet.png" style="border:none" /></a></div>
<p>Semana passada estive na <a href="http://www.sociesc.org.br/pt/home/" target="_blank">Sociesc</a> conversando um pouco sobre desenvolvimento ágil na <a href="http://computacao.sociesc.org.br/joomla/index.php?option=com_content&amp;view=article&amp;id=90&amp;Itemid=119" target="_blank">Semana da Computação</a>, realizada entre os dias 23 e 28 de agosto. Falei um pouco da minha experiência pessoal com desenvolvimento de software e no que estou <a href="http://teamblog.informant.com.br/" target="_blank">trabalhando</a> atualmente.</p>
<p>Segue o vídeo da apresentação:</p>
<p><object width="540" height="320"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=14498897&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=14498897&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="540" height="320"></embed></object><br /></p>
<p><em>Correções:</em><br />
*Fiz um comentário sobre uma fábrica de software com mil programadores no Refice. Não sei porque falei esse número. É uma empresa com no máximo 400 funcionários.<br />
*Logo após eu falei que NÃO sou especialista em nenhuma metodologia ágil e por isso não iria entrar em detalhes em nenhuma delas (aka XP, scrum, kanbam)</p>
]]></content:encoded>
			<wfw:commentRss>http://coding4food.com/2010/08/31/agile-na-sociesc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>todo mundo quer ser ágil</title>
		<link>http://coding4food.com/2010/07/05/todo-mundo-quer-ser-agil/</link>
		<comments>http://coding4food.com/2010/07/05/todo-mundo-quer-ser-agil/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 05:34:07 +0000</pubDate>
		<dc:creator>Eduardo Kruger</dc:creator>
				<category><![CDATA[metodologia]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://coding4food.com/?p=703</guid>
		<description><![CDATA[
Alguns dias atrás eu comentava com um colega de trabalho, sobre o meu sentimento de que o &#8220;agilismo&#8221; (ou seja lá qual for o termo) já se tornou a moda da vez. Os &#8220;xipezeiros&#8221;, &#8220;scrunzeiros&#8221; e agilistas de plantão estufam o peito pra falar dos seus &#8220;sprints&#8221;&#8230; que utilizam quadros brancos&#8230; que tem post-its colados [...]]]></description>
			<content:encoded><![CDATA[<div class="TweetButton_button" style="float: right; margin-left: 10px;;height:20px;margin-bottom:5px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fcoding4food.com%2F2010%2F07%2F05%2Ftodo-mundo-quer-ser-agil%2F&amp;text=todo mundo quer ser ágil&amp;count=vertical&amp;lang=en&amp;related=agile,metodologia"><img src="http://coding4food.com/wp-content/plugins/tweetbutton-for-wordpress/images/tweet.png" style="border:none" /></a></div>
<p>Alguns dias atrás eu comentava com um colega de <a href="http://blog.informant.com.br" target="_blank">trabalho</a>, sobre o meu sentimento de que o &#8220;agilismo&#8221; (ou seja lá qual for o termo) já se tornou a moda da vez. Os &#8220;xipezeiros&#8221;, &#8220;scrunzeiros&#8221; e agilistas de plantão estufam o peito pra falar dos seus &#8220;sprints&#8221;&#8230; que utilizam quadros brancos&#8230; que tem post-its colados por toda empresa&#8230; que UML  não serve pra náda&#8230; e que ser ágil é sentar e sair programando.<br />
Tenho o sentimento que muitas pessoas e consequentemente empresas, se juntam a <a href="http://pt.wikipedia.org/wiki/Comportamento_de_manada" target="_blank">manáda</a> e começam a utilizar alguma metodologia, porque alguém disse que é bom, ou porque o blog do momento falou que é &#8220;<em>cool</em>&#8221; ser ágil.</p>
<p>Qual a empresa de tecnologia hoje, ser arriscaria a dizer para seu cliente que não é &#8220;Ágil&#8221; ?<br />
Todo mundo tenta desesperadamente ser ágil.<br />
Até a IBM, <a href="http://www-01.ibm.com/software/rational/agile/" target="_blank">quer ser ágil</a>.</p>
<p><img class="aligncenter" title="The Agile Mess" src="http://coding4food.com/wp-content/themes/blueprint/images/post-its.jpg" alt="" width="500" height="400" /></p>
<p>Tenho a impressão que essa busca incansável, é motivada principalmente por 2 coisas:</p>
<p><strong>- <em>a primeira é que já sofremos muito durante os últimos anos  tentando fazer software</em></strong><br />
Quem já trabalhou numa fábrica de software, numa consultoria de 3  letrinhas, já encarou caso de uso de mais de 100 páginas, ou quis modelar um ERP inteiro em UML antes de começar a programar, sabe bem do que estou falando. Para quem já está na <a href="http://www.dicionarioweb.com.br/labuta.html" target="_blank">labuta</a> a pelo menos uns 10 anos e passou por tudo isso já aprendeu que<em> <a href="http://en.wikipedia.org/wiki/Big_Design_Up_Front">algumas</a> <a href="http://en.wikipedia.org/wiki/Waterfall_model" target="_blank">coisas</a> </em>nem sempre funcionam. E vêem o agile como a melhor opção disponível para desenvolver software atualmente.</p>
<p><strong>-</strong><em><strong> a segunda é a falsa idéia de que as metodologias ágeis pregam&#8230; não utilizar metodologia alguma..!!!</strong><br />
</em>Isso é fato quando se vê muita gente em fóruns e afins, falando que na suas empresas não tem análise, não tem documentação ou burocracia alguma..<em>.</em>que após uma reunião, todos os programadores se debruçam-se sobre seus teclados e se põe a codificar até que algo seja &#8220;entregável&#8221; para o cliente.<br />
Bem, IMHO isso me parece muito mais um <a href="http://gohorseprocess.wordpress.com/extreme-go-horse-xgh/" target="_blank">XGH</a>&#8230;. ou um <em>&#8220;Just Do-it Programming&#8221;</em> disfarçado de scrum.<br />
Acho que muita gente que está entrando no mercado de trabalho recentemente (a uns 3 ou 4 anos), diz que utiliza <a href="http://c2.com/cgi/wiki?ExtremeProgramming" target="_blank">XP</a>, <a href="http://www.scrumalliance.org/" target="_blank">Scrum</a>, <a href="http://www.lean.org/" target="_blank">Lean</a> ou qualquer metodolgia ágil porque tem a ilusão de que é fácil de implementar.</p>
<p>&#8220;<em>Se não tem documentação&#8230; não tem formalidade alguma&#8230;.se é só fazer uma reunião de 15 min durante a manhã e programar durante o resto do dia&#8230; eu também posso ser ágil&#8230; vamos implementar isso aqui na nossa empresa !!!</em>&#8221;</p>
<p>Essa é uma das maiores <a href="http://coding4food.com/2008/09/28/as-falacias-da-programacao/" target="_blank">falácias</a> do desenvolvimento de software. Por experiência própria, eu posso dizer que aplicar uma metodologia como Scrum ou XP na prática numa empresa e obter resultados positivos é um trabalho árduo. É difícil e vai requerer uma paciência que você achava que não tinha. Ao contrário do que muitos pensam, aplicar algumas práticas do XP, como o <a href="http://improveit.com.br/xp/praticas/tdd" target="_blank">TDD</a> por exemplo, vai exigir muito mais disciplina de uma equipe, do que se ela estivesse trabalhando numa fábrica de software com CMM5.</p>
<p><a href="http://coding4food.com/wp-content/themes/blueprint/images/mythical-man-month.jpg"><img class="alignleft" style="border: 1px solid black;" title="There is no silver bullet" src="http://coding4food.com/wp-content/themes/blueprint/images/mythical-man-month.jpg" alt="" width="158" height="240" /></a>Com tudo isso, surgiram inúmeros cursos Scrum e XP por aí&#8230; apareceram centanas de especialistas em agile, que prometem demonstrar um conjunto de práticas para tornar qualquer empresa ágil&#8230;acabando com seus problemas de escopo, prazo e relacionamento com o cliente.</p>
<p>A verdade é que não existe uma fórmula, ou receita de bolo pra isso. <a href="http://en.wikipedia.org/wiki/No_Silver_Bullet" target="_blank">A bala de prata não existe</a>. Cada empresa tem uma caracterísitca&#8230;.cada projeto tem um contexto&#8230; que faz com que seja necessário escolher as melhores práticas em cada situação.</p>
<p>A melhor idéia de agile que tenho até o momento, foram as palavras de <a href="http://en.wikipedia.org/wiki/Philippe_Kruchten" target="_blank">Philippe Kruchten</a> no seu <a href="http://www.agilebrazil.com/2010/pt/detalhes.html#key_kruchten" target="_blank">keynote</a> no final semana passado, no <a href="http://www.agilebrazil.com/" target="_blank">agile brazil 2010</a>:</p>
<p>&#8220;<em>Software development is not a <a href="http://en.wikipedia.org/wiki/Natural_science" target="_blank">Natural Science</a> like Physics or any other. In Agile Software Develpment, we have different methods (aka: scrum, xp, lean) for diferente issues. We have to ask ourselves which practices or methods will fit better in our project context&#8221;<br />
</em></p>
<p><em>&#8220;Why we&#8217;re using XP ? What practices will fit better in these project ? &#8230; and why we&#8217;re doing this any way?&#8221;</em></p>
<p>Você consegue imaginar a utilização de XP no desenvolvimento do software que contola um caça <a href="http://pt.wikipedia.org/wiki/F-35_Lightning_II" target="_blank">F-35</a> ?</p>
<p style="text-align: left;"><em>Xispezeiro: &#8220;Sem problemas,  nessas duas primeiras semanas vamos entregar a parte que faz ligar o motor e você já pode decolar com o avião&#8221;<br />
Piloto: &#8220;E o controlador de vôo ?&#8221;<br />
</em><em>Xispezeiro</em><em>: &#8220;O que ? O controlador de vôo ? Mas você vai precisar disso mesmo ? O mais importante agora é decolar&#8230; depois conversamos sobre o controlador de vôo&#8230;&#8221;<br />
</em></p>
<p style="text-align: center;"><a href="http://en.wikipedia.org/wiki/Lockheed_Martin_F-35_Lightning_II"><em><img class="aligncenter" style="border: 1px solid black;" title="F-35 Jet" src="http://coding4food.com/wp-content/themes/blueprint/images/f-35.jpg" alt="" width="470" height="314" /></em></a></p>
<p>Não conheço náda de aeronáutica, mas é bem provável que um projeto de desse tipo seja obrigado a ter uma fase muito detalhada de design e documentação, porque um erro de projeto, pode gerar um prejuízo <a href="http://www.dicionarioinformal.com.br/buscar.php?palavra=estratosf%E9rico" target="_blank">estratosférico</a>.<br />
E gerar muita documentação nesse caso está errado? Você faria uma reunião de 4 horinhas pra modelar uma funcionalidade num F-35 ?<br />
Claro que esse é um exemplo extremo, mas existem muitas organizações e ramos de negócio que precisam de mais formalidade e provavelmente teriam muitas dificuldades implementando métodos ágeis.<br />
Por isso que contexto, é fundamental.</p>
<p>Com toda essa confusão de post-its e sprints do <a href="http://coding4food.com/2010/07/05/todo-mundo-quer-ser-agil/" target="_self"><em>falso agile</em></a>, os verdadeiros <a href="http://agilemanifesto.org/" target="_blank">valores</a> do manifesto ágil acabam ficando em segundo plano para maioria das pessoas. Acabamos desconsiderando o mais importante: o contexto no qual estamos tentando implementar agilidade.</p>
<p><em>Por que estamos utlizando essa metodologia ? Qual o problema que estamos tentando resolver ? Essas práticas se encaixam no contexto desse projeto ?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://coding4food.com/2010/07/05/todo-mundo-quer-ser-agil/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Analistas de Sistemas. Quem ainda acredita neles ?</title>
		<link>http://coding4food.com/2008/10/28/analistas-de-sistemas-quem-ainda-acredita-neles/</link>
		<comments>http://coding4food.com/2008/10/28/analistas-de-sistemas-quem-ainda-acredita-neles/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 15:37:26 +0000</pubDate>
		<dc:creator>Eduardo Kruger</dc:creator>
				<category><![CDATA[metodologia]]></category>
		<category><![CDATA[analistas]]></category>
		<category><![CDATA[programação]]></category>

		<guid isPermaLink="false">http://coding4food.com/?p=241</guid>
		<description><![CDATA[
Alguns dias atrás, me vi numa discussão com alguns colegas, sobre funções, atividades e cargos dentro de uma empresa. Apensar desse assunto ainda ser bem confuso em TI, a maioria soube descrever suas atividades diárias como programadores. Porém, essa descrição não foi obtida tão facilmente quando nos perguntamos: Afinal de contas, o que um &#8220;Analista [...]]]></description>
			<content:encoded><![CDATA[<div class="TweetButton_button" style="float: right; margin-left: 10px;;height:20px;margin-bottom:5px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fcoding4food.com%2F2008%2F10%2F28%2Fanalistas-de-sistemas-quem-ainda-acredita-neles%2F&amp;text=Analistas de Sistemas. Quem ainda acredita neles ?&amp;count=vertical&amp;lang=en&amp;related=analistas,metodologia,programa%C3%A7%C3%A3o"><img src="http://coding4food.com/wp-content/plugins/tweetbutton-for-wordpress/images/tweet.png" style="border:none" /></a></div>
<p>Alguns dias atrás, me vi numa discussão com alguns colegas, sobre funções, atividades e cargos dentro de uma empresa. Apensar desse assunto ainda ser bem confuso em TI, a maioria soube descrever suas atividades diárias como programadores. Porém, essa descrição não foi obtida tão facilmente quando nos perguntamos: Afinal de contas, o que um &#8220;Analista de Sistemas&#8221; faz ?</p>
<p>Alguns me falaram que o analista de sistemas é um profissional com mais experiência, com perfil investigativo, que deve fazer a análise dos requisitos e modelar uma solução. Outros disseram que analista de sistema não devem &#8220;perder&#8221;  tempo com detalhes sobre linguagem ou tecnologia, porque &#8220;análise&#8221; de sistemas deve ser feita em alto nível, a.k.a UML. Escutei também alguns comentários clássicos: analista de sistemas necessariamente não precisa saber programar, precisa apenas conhecer UML e algum editor de texto. <em>( &#8220;analistas de sitemas não precisam saber programar&#8230;&#8221;. Com certeza essa merece estar nas próximas <a href="http://coding4food.com/2008/09/28/as-falacias-da-programacao/" target="_blank">falácias da programação</a>, parte ll &#8230; hehe )</em></p>
<p>Sobre esse assunto, tenho que dizer que concordo com <a href="http://www.yepthatsme.com/" target="_blank">Barry Hawkins</a>: a <a href="http://coding4food.com/2008/08/03/fabricas-de-software/" target="_blank">super divisão de trabalho</a><a href="http://coding4food.com/2008/08/03/fabricas-de-software/" target="_blank"> no desenvolvimento de software, </a>foi umas das piores experiências da indústria de software nos últimos anos.</p>
<blockquote><p><strong>One of the most widespread tragedies in the practice of software development has been the tendency of corporate culture to over-compartmentalize the activities of software development. </strong>In the upper echelon of the artificial hierarchy of task separation sits the software architect. Sequestered away from the disturbing din of real life within the company, these persons are liberated from the mundane, in order that they may orchestrate plans that set in motion the work of many, unfettered by such things as domain knowledge and implementation constraints.<br />
Know this; the only people who belong in white towers are the captured princesses of fairy tales, and even then it was not of their volition. <strong>Partitioning the activity of design away from implementation destroys the call-and-response cycle between design and implementation.</strong> The relevance of your work is directly related to how engaged you are in the domain.<br />
- <a href="http://www.yepthatsme.com/" target="_blank">Barry Hawkins</a>.</p></blockquote>
<p>Estou convencido, que a separação das atividades de design e programação deveria ser qualificada como um anti-pattern do desenvolvimento de software. O <a href="http://en.wikipedia.org/wiki/Waterfall_model" target="_blank">waterfall</a> já vem mostrando por anos, que essa abordagem é um erro.</p>
<p>Porque é necessário criar um cargo especial para atividades, que deveriam ser de responsabilidade do programador ?! Análise, design, programação e arquitetura são atividades e não cargos. Nós, como programadores, precisamos vestir &#8220;chapéus&#8221; diferentes dentro de um projeto.</p>
<p>Quando questionamos requisitos, buscamos informações de nossos usuários, organizamos e priorizamos tarefas, estamos vestindo nosso chapéu de analista e gerente de projetos. Quando estamos codificando, nos preocupando com manutenabilidade, performance e com a correta aplicação de patterns, estamos vestindo nosso chapéu de programador e projetista. Ao escolhermos por um framework, por uma API, estamos com certeza tomando decisões de arquitetura.<br />
Não quero dizer aqui, que todo programador dever ser um  <a href="http://en.wikipedia.org/wiki/MacGyver" target="_blank">Macgyver</a> em TI. Mas tenho certeza, que se você é programador, é bem provável que você precise colocar à prova diariamente suas habilidades como programador, analista, arquiteto ou gerente.</p>
<p>A maioria dos programadores <a href="http://blog.fragmental.com.br/2008/01/15/quando-eu-crescer-quero-ser-analista-de-sistemas/" target="_blank">passam anos querendo se tornar analista de sistemas</a>, e quando conseguem, descobrem que como programadores, já desempenhavam atividades de análise a muito tempo. Além do mais, achar que um monte de diagramas UML podem modelar um sistema inteiro sem programar uma linha de código, não é algo muito inteligente. Analistas, arquitetos, projetistas, seja lá como for o nome que deram para ele, mas esse cara precisa saber programar - <em> <a href="http://97-things.near-time.net/wiki/show/if-you-design-it-you-should-be-able-to-code-it" target="_blank">If you design it, you should be able to code it </a>- <a href="http://comitservices.com/wp/" target="_blank">Mike Brown</a>:</em></p>
<blockquote><p>When designing the architecture for your project, you need to have a feel for what amount of effort is necessary to implement the various elements of your design. <strong>The easiest way to have the knowledge of the effort that a specific design element will take is to have developed it before.</strong></p>
<p>Don’t use a pattern in your design that you haven’t personally implemented before. Don’t rely on a framework that you haven’t coded against before. Don’t use a server that you haven’t configured before. If your architecture depends on design elements that you haven’t personally used, there are a number of negative side effects. <a href="http://comitservices.com/wp/" target="_blank">Mike Brown</a></p></blockquote>
<p>Muitas empresas de TI estão procurando &#8220;achatar&#8221; hierarquias, procurando manter profissionais mais qualificados, com conhecimentos multidisciplinares e que possam atuar em diversos papéis diferentes. Que possam programar, tomar decisões de arquitetura ou conversar com usuários se for necessário. Por mais que muita gente ainda pense o contrário: <strong>Profissionais competentes e equipes motivadas são fundamentais em qualquer empresa.</strong></p>
<p><strong></strong>E mesmo que os &#8220;Analistas de Sistemas&#8221; ainda existam para enfeitar alguns crachás corporativos ou anúncios de RH, eu já deixei de acreditar neles já faz algum tempo &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://coding4food.com/2008/10/28/analistas-de-sistemas-quem-ainda-acredita-neles/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

