<?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>timeBox &#187; Documentação</title>
	<atom:link href="http://www.timebox.com.br/category/documentacao/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.timebox.com.br</link>
	<description>5 minutos de software</description>
	<lastBuildDate>Mon, 05 Apr 2010 20:49:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bom senso minha gente&#8230;bom senso.</title>
		<link>http://www.timebox.com.br/2009/07/13/bom-senso-minha-gentebom-senso/</link>
		<comments>http://www.timebox.com.br/2009/07/13/bom-senso-minha-gentebom-senso/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 00:44:26 +0000</pubDate>
		<dc:creator>Marcelo C. Araujo</dc:creator>
				<category><![CDATA[Documentação]]></category>
		<category><![CDATA[Metodologia]]></category>

		<guid isPermaLink="false">http://www.timebox.com.br/?p=75</guid>
		<description><![CDATA[Você é chamado para fazer parte de um projeto que não vai necessariamente entregar um sistema classicão (do tipo com telinhas, usuários de carne e osso, etc). Sua função é criar uma interface java com um content management de mercado.
Ok.
Você então projeta sua solução com base em JUnit.
Testa a chamada a interface, verifica que está [...]]]></description>
			<content:encoded><![CDATA[<p>Você é chamado para fazer parte de um projeto que não vai necessariamente entregar um sistema classicão (do tipo com telinhas, usuários de carne e osso, etc). Sua função é criar uma interface java com um <a href="http://en.wikipedia.org/wiki/Content_management">content management</a> de mercado.</p>
<p>Ok.</p>
<p>Você então projeta sua solução com base em <a href="http://pt.wikipedia.org/wiki/JUnit">JUnit</a>.<br />
Testa a chamada a interface, verifica que está tudo ok e entrega o produto.<br />
Pra não ficar só em código, você até documenta a interface gerada em uma espécie de contrato. Dizendo como ela deve ser chamada e o que se esperar dela e tal. Tudo bonitinho.</p>
<p>Ai alguém chega pra você e diz que sua entrega não está aderente a metodologia da casa.<br />
Afinal, faltou criar o diagrama de caso de uso e seu respectivo documento word de descrição do mesmo.<br />
Então você entrega o tal caso de uso e algumas semanas depois ele volta pra você num e-mail que diz: Seu caso de uso não está aderente as melhores práticas pregadas pela casa para o mesmo. O fluxo básico está usando de termos técnicos e não representa com clareza uma interação entre o ator e o sistema.</p>
<p>Agora me diga. Qual a utilidade de se fazer um caso de uso numa situação como essa? Onde seu trabalho se resume a produzir um serviço de comunicação com uma ferramenta, o qual será chamado por outros serviços?</p>
<p>Qual a utilidade de se engessar de tal forma a quantidade e qualidade da documentação que deve ser feita?</p>
<p>Não pegou a idéia ainda?<br />
Imagine só. Alguém te convida pra ser padrinho de casamento. Um outro alguém te alerta que você deve ir de terno a um casamento. Gravata, sapato, tudo certinho.<br />
Mas o casamento que te convidaram pra ser padrinho será na praia, ali na areia e tal. Sei lá, a noiva viu um assim numa revista e resolveu que o dela seria assim também!</p>
<p>E ai? Você vai aparecer por la de terno? Gravata no sol de meio dia? Sapato na areia?<br />
Seu bom senso vai te dizer alguma coisa sobre isso, não?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.timebox.com.br/2009/07/13/bom-senso-minha-gentebom-senso/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Blitz Corporativa</title>
		<link>http://www.timebox.com.br/2008/08/11/blitz-corporativa/</link>
		<comments>http://www.timebox.com.br/2008/08/11/blitz-corporativa/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 02:09:05 +0000</pubDate>
		<dc:creator>Marcelo C. Araujo</dc:creator>
				<category><![CDATA[Documentação]]></category>
		<category><![CDATA[Modelagem Ágil]]></category>

		<guid isPermaLink="false">http://www.timebox.com.br/?p=46</guid>
		<description><![CDATA[-	Documentos por favor.
-	Sim senhor.
-	É&#8230;você tem uma irregularidade aqui.
-	É mesmo é?
-	É mesmo! Não vai poder seguir em frente não.
Não, eu não estou fugindo do tema desse blog e relatando um desfecho  comum para os engarrafamentos de 1 hora no aterro do flamengo ( o tempo normal pra atravessa-lo é de 5 min). 
Quando se desenvolve [...]]]></description>
			<content:encoded><![CDATA[<p>-	Documentos por favor.<br />
-	Sim senhor.<br />
-	É&#8230;você tem uma irregularidade aqui.<br />
-	É mesmo é?<br />
-	É mesmo! Não vai poder seguir em frente não.</p>
<p>Não, eu não estou fugindo do tema desse blog e relatando um desfecho  comum para os engarrafamentos de 1 hora no aterro do flamengo ( o tempo normal pra atravessa-lo é de 5 min). </p>
<p>Quando se desenvolve software para uma grande corporação, não é raro se deparar com essa situação ai do diálogo. No papel do policial normalmente está algum membro  da EIB (Equipe de Infra-estrutura Básica) e na pele do motorista está algum desenvolvedor com a inevitável missão de submeter um sistema (ou pedaço de um) à aprovação da EIB.</p>
<p>Uma EIB normalmente é composta por um conjunto de pessoas, onde cada uma tem uma aptidão específica, como administração de banco de dados, ou arquitetura SOA por exemplo.  Muitas  vezes uma EIB é  até composta  por um conjunto de equipes menores, cada qual com sua especialidade. Mas enfim, a função dessa galera de infra é dar apoio as equipes de desenvolvimento de software, criando diretrizes e convenções corporativas, as quais devem ser seguidas pelas equipes de desenvolvimento.</p>
<p>Existem duas formas de se trabalhar essa questão “EIB vs equipes de desenvolvimento”:</p>
<p>1 &#8211; Colocando uma contra a outra nessa estratégia de BLITZ CORPORATIVA, onde o pessoal de EIB apenas gera um mar de documentos-diretrizes, envia esse &#8220;manual de trânsito&#8221; para as equipes de desenvolvimento e marca uma data (normalmente ao final de alguma entrega importante) para revistar (ops!) digo&#8230;.analisar, o trabalho da galera de desenvolvimento.</p>
<p><a href="http://www.timebox.com.br/wp-content/uploads/2008/08/blitz.jpg"><img src="http://www.timebox.com.br/wp-content/uploads/2008/08/blitz.jpg" alt="" title="blitz" width="500" height="250" class="alignnone size-full wp-image-49" /></a></p>
<p>2 &#8211;   Promovendo a comunicação e a humildade (<a href="http://www.ambysoft.com/books/agileModeling.html">valores da modelagem ágil</a>) entre ambas as partes. Isso se faz inserindo as pessoas de EIB em determinados projetos de desenvolvimento por algum período de tempo,  fazendo com que elas compartilhem sua maturidade profissional nas áreas em que se especializaram. Assim, as diretrizes corporativas passam a ser amadurecidas, repassadas e colocadas em prática em um cenário real. De quebra, ainda se cria um ambiente amigável e colaborativo entre as partes.  Isso funciona! Dia desses estava conversando sobre isso com o <a href="http://www.soacorporativa.com.br/">Gustavo Serafim</a> e ele diz estar tendo bons resultados com essa abordagem.</p>
<p>Ah! não posso deixar de dizer isso. Um grande risco de insucesso que se corre usando essa segunda abordagem, é colocando pessoas com pouca ou nenhuma habilidade de comunicação na EIB.  Para isso funcionar é preciso ter profissionais bons tecnicamente mas que sejam sociáveis também. Já imaginou  a pessoa ser apresentada como nova especialista XPTO pra apoiar o projeto durante algumas semanas, daí após essas semanas sem falar um “ah” ela manda um “manual de trânsito” por e-mail e some? <img src='http://www.timebox.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.timebox.com.br/2008/08/11/blitz-corporativa/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Documento de arquitetura. Quando e pra que.</title>
		<link>http://www.timebox.com.br/2008/07/23/documento-de-arquitetura-quando-e-pra-que/</link>
		<comments>http://www.timebox.com.br/2008/07/23/documento-de-arquitetura-quando-e-pra-que/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 01:05:06 +0000</pubDate>
		<dc:creator>Marcelo C. Araujo</dc:creator>
				<category><![CDATA[Arquitetura]]></category>
		<category><![CDATA[Documentação]]></category>
		<category><![CDATA[Modelagem Ágil]]></category>

		<guid isPermaLink="false">http://www.timebox.com.br/?p=15</guid>
		<description><![CDATA[Já trabalhei em diversos projetos que continham como parte de sua documentação um SAD (Software Architecture Description)  normalmente criado a partir de um template do RUP. Sem entrar em muitos detalhes, posso dizer que um SAD serve para documentar aspectos arquiteturais de forma geral, fornecendo varias visões complementares sobre o sistema. A ideia é [...]]]></description>
			<content:encoded><![CDATA[<p>Já trabalhei em diversos projetos que continham como parte de sua documentação um SAD (Software Architecture Description)  normalmente criado a partir de um template do RUP. Sem entrar em muitos detalhes, posso dizer que um SAD serve para documentar aspectos arquiteturais de forma geral, fornecendo varias visões complementares sobre o sistema. A ideia é que esse documento vá amadurecendo ao longo do projeto. O iniciamos de forma tímida e o detalhemos melhor a medida em que a arquitetura for ficando mais estável. Dessa forma, teremos um ótimo guia de entendimento arquitetural para futuras equipes que venham a dar manutenção no sistema.</p>
<p>Ok. Vamos produzir SADs em nossos projetos então!<br />
Mas&#8230;.<br />
Porque tendemos a achar que esse documento também é muito bom para comunicar (informar, ensinar) a própria equipe envolvida atualmente no projeto sobre a arquitetura do mesmo? Pergunto isso justamente pelas experiências que tive nos projetos em que o usei. Nesses projetos, o principal movitador de criação do SAD era a ideia de disseminar o conhecimento referente a arquitetura do sistema para os membros da equipe de desenvolvimento, que na maioria das vezes, estavam unidos em um mesmo local.</p>
<p>&#8230;.<br />
Pra falar a verdade, na maioria das vezes a “equipe de desenvovimento” trabalhava remotamente (estratégia “fábrica de código”), então problemas como falha de comunicação, modelagem excessiva e eventualmente atrasos faziam com que a “fábrica” fosse transferida para o mesmo local físico onde ficavam os outros membros da equipe, ou então, os “analistas”, “arquitetos” e demais “especialistas “ acabavam por produzir software de verdade.<br />
&#8230;.</p>
<p>Nosso relacionamento com o SAD acaba sendo mais ou menos assim:<br />
 A equipe de modelagem e o arquiteto se reuniam no inicio do projeto e discutiam a arquitetura base do sistema rabiscando modelos em quadros. A partir dai o arquiteto se responsabilizava pela criação do SAD, como base no que foi discutido na reunião  e por mantê-lo  atualizado durante o desenvolvimento do sistema. Sempre que alguma nova questão arquitetural surgia, ou era alterada, essa informação era passada por e-mail ou através de reuniões rápidas com a equipe, utilizando uma sala com um quadro pra rabiscar ou mesmo uma baia de algum dos desenvolvedores com algumas folhas de papel. Depois disso, o arquiteto arrumava algum tempo pra atualizar o SAD com textos e diagramas UML mais formais.</p>
<p>Agora me diga. Quem mais alem do arquiteto, teve realmente necessidade de manter um contato continuo com o SAD durante o tempo de desenvolvimento do sistema? Ninguém. Então, pra que criar esse documento no inicio do projeto e continuar dando manutenção nele enquanto o sistema ainda está sendo feito, se ele não é a forma mais direta, mais viável, de se comunicar questões arquiteturais pra sua própria equipe?<br />
Seu cliente é que pode precisar dele, no final do projeto, como um guia arquitetural para novos desenvolvedores que possam vir a dar manutenção no sistema. Alias, seu cliente é que deve decidir se esse documento deve ou não ser produzido, afinal, quem está pagando é ele.<br />
Então, se seu cliente decidir que é valido ter um SAD (e eu creio que seja) atrase a sua criação o máximo que puder, você não vai precisar dele pra dizer algo as pessoas que trabalham com você. Seja ágil e <a href="http://www.agilemodeling.com/essays/agileDocumentation.htm">documente somente o necessário e quando necessário</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.timebox.com.br/2008/07/23/documento-de-arquitetura-quando-e-pra-que/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
