<?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>codificando.com &#187; pragmatic</title>
	<atom:link href="http://codificando.com/tag/pragmatic/feed/" rel="self" type="application/rss+xml" />
	<link>http://codificando.com</link>
	<description>Desenvolvimento de Software com qualidade</description>
	<lastBuildDate>Tue, 31 Jan 2012 09:49:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Experiência do Usuário sob a ótica do usuário</title>
		<link>http://codificando.com/2011/04/experincia-usurio-sob-tica-usurio/</link>
		<comments>http://codificando.com/2011/04/experincia-usurio-sob-tica-usurio/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 18:40:10 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[pensamentos]]></category>
		<category><![CDATA[pragmatic]]></category>
		<category><![CDATA[reflexao]]></category>
		<category><![CDATA[experiencias]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=843</guid>
		<description><![CDATA[Na última semana, estive passeando de férias em Natal/RN. Foi uma semana de muita diversão. Apesar disso, vivi algumas situações que me fizeram refletir sobre a experiência do usuário, mas não somente focado na nossa área de TI, mas num &#8230; <a href="http://codificando.com/2011/04/experincia-usurio-sob-tica-usurio/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Na última semana, estive passeando de férias em Natal/RN. Foi uma semana de muita diversão. Apesar disso, vivi algumas situações que me fizeram refletir sobre a experiência do usuário, mas não somente focado na nossa área de TI, mas num âmbito geral, atuando como o próprio usuário/cliente.</p>
<p>Em um dos dias do passeio, resolvi jantar com a minha esposa e um casal de amigos numa pizzaria famosa da região. A pizzaria era bem indicada, tem um website bem legal e tudo que tem direito. Com uma estrutura linda, uma faixada de dar inveja, toda em madeira, com um lugar bem estilizado e com direito a música ao vivo. Para minha surpresa, a pizza não era a das melhores. Eu até sai satisfeito, mas a minha esposa não gostou e acabou nem comendo tudo. De fato a pizza não era tão boa.</p>
<p>No dia seguinte, saímos novamente para comer a noite, mas dessa vez tinha que ser algo rápido, pois era necessário dormir cedo devido ao voo ser as 5 da manhã do dia seguinte. Perguntamos ao recepcionista da pousada se havia algum lugar por perto onde tinha lanche e ele nos indicou comer uma Pizza (novamente ?!?) ali bem próximo, no quarteirão seguinte. Ele também disse que os donos da pousada eram frequentadores. Depois que ele nos explicou onde ficava a pizzaria, saímos a pé mesmo pois era muito perto. Chegando em frente ao local, percebemos ser um lugar bem simples, ao ponto de nos fazer pensar se era aquele realmente o lugar que os donos da pousada frequentavam. Para ter uma idéia, nem lembro de como era a fachada/letreiro/etc. O recepcionista do hotel havia dito que esse lugar servia apenas pizzas individuais (um pouco maior que uma pizza brotinho) e confirmamos isso, tenho assim certeza que estávamos no lugar certo. Olhei o cardápio e vi que tudo era bem barato. Fizemos o pedido e aguardamos. A pizza era simplesmente muito gostosa. Muito mesmo. Em poucos lugares eu comi uma pizza tão gostosa por um preço tão barato. E olha que não é questão de custo/benefício. Se a pizza fosse mais cara que na outra pizzaria eu pagaria certamente, mesmo sendo uma pizza menor. Saímos dali muito satisfeitos e entendi o motivo que fazia os donos da pousada frequentarem aquele local. Por sinal, nem lembro o nome do lugar, mas lembro exatamente onde fica e se eu voltar algum dia a Natal certamente irei nessa pizzaria. E o que raios essa pizza tem a ver com experiência do usuário?</p>
<p>Essa minha passagem pelas pizzarias não foi premeditada, simplesmente aconteceu. Como cliente (ou usuário se você preferir), fiquei mais satisfeito com a pizzaria mais simples do que com a pizzaria mais bonita, requintada, que tinha website e tudo mais. E por que eu gostei da mais simples? Será que é por que eu não gosto de coisas requintadas? Claro que não. Eu gostei do lugar simples porque eles me serviram uma pizza melhor. O mais importante de uma pizzaria é a pizza ser gostosa ora bolas. Não adianta ter uma cadeira linda, usar um iPad pra fazer pedidos, guardanapo imperial e talher de outro se a pizza não for saborosa. É simples assim. E o que isso tem a ver com a nossa área?</p>
<p>Vamos pensar nas aplicações que fazemos no dia a dia. O Youtube, por exemplo, tem um site bem simples. Não considero o site deles uma obra de arte, muito pelo contrário. O player de vídeos deles provavelmente é um dos mais simples e feios que existem na web. Então por que será que ele é um produto de sucesso? Simples: o youtube da muita importância para o que tem realmente valor para o usuário do site deles, que é ver e compartilhar vídeos. É muito simples enviar um vídeo e mais simples ainda ver videos. Qualquer leigo consegue fazer isso. O player de vídeos deles funciona perfeitamente bem, apesar de não ter uma aparência linda. E o usuário se importa com essa aparência não muito bonita? Alguma vez você pensou em deixar de acessar o Youtube porque o site não é lá tão bonito? Acredito que não. Eu poderia citar diversos exemplos de produtos de sucesso que são extremamente simples e as vezes feios mas que são sucesso exatamente por focarem na necessidade do usuário, mas nem preciso citar porque acho que já deu pra entender onde eu quero chegar.</p>
<p>Parece chover no molhado, mas é impressionante o número de vezes que me pego discutindo ou observando discussões sobre se um site/aplicação precisa de borda arredondada, gradiente, se o cinza está um pouco mais claro ou escuro, ou se o botão está 1 píxel pra direita ou pra baixo, quando por vezes o que tem mais valor para o usuário nem está ótimo ainda. Não que esses detalhes não tenham importância, muito pelo contrário. O ponto aqui é que o foco deve estar primeiro no core business e depois nos acessórios. É o exemplo da pizzaria. Me lixei pra decoração linda, música ao vivo e requinte da primeira pizzaria, pois a pizza não era tão boa (se fosse certamente eu voltaria). Ao meu ver eles se preocuparam demais com coisas secundárias e esqueceram de contratar ótimos pizzaiolos. Certamente me lembrarei muito mais da segunda pizzaria, que era um lugar bem mais simples mas tinha uma deliciosa pizza.</p>
<p>Pra finalizar, pense um pouco sobre os motivos que fazem do iPhone um produto de sucesso. Provavelmente você perceberá que um dos menos relevantes é a sua beleza.
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2011/04/experincia-usurio-sob-tica-usurio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Não se apaixone pela sua tecnologia</title>
		<link>http://codificando.com/2010/02/nao-se-apaixone-pela-sua-tecnologia/</link>
		<comments>http://codificando.com/2010/02/nao-se-apaixone-pela-sua-tecnologia/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 00:06:03 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[pragmatic]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[arquitetura]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=324</guid>
		<description><![CDATA[Cansado das briguinhas recentes em listas de discussão, blogs e foruns sobre Ruby x Python, resolvi escrever sobre o assunto de forma totalmente imparcial. Serei imparcial, não por causa do blog, mas porque com esse tipo de assunto eu sempre &#8230; <a href="http://codificando.com/2010/02/nao-se-apaixone-pela-sua-tecnologia/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Cansado das briguinhas recentes em listas de discussão, blogs e foruns sobre Ruby x Python, resolvi escrever sobre o assunto de forma totalmente imparcial. Serei imparcial, não por causa do blog, mas porque com esse tipo de assunto eu <del datetime="2010-02-03T22:29:37+00:00">sempre</del> geralmente sou imparcial, pois pela diversidade de empresas que trabalhei durante os meus mais de 12 anos de carreira, acabei sempre trabalhando com as 2 linguagens que eram o motivo da briguinha, em cada época distinta.</p>
<p><strong>No início</strong></p>
<p>Em meados de 1997/1998, pouco antes da bolha da internet, quando eu comecei a trabalhar profissionalmente, eu trabalhava com eletrônica e informática em uma empresa de automação de ponto e acesso. Tive a oportunidade de usar Delphi para desenvolver um protótipo de sistema integrado ao hardware de ponto e acesso dessa empresa, pois eles usavam um programas DOS para extrair dados e jogar num arquivo texto, e o outro programa DOS fazia a leitura desse arquivo para gerar o resuldado de ponto e o acesso. Foi uma experiência ótima, pois meu protótipo acessava diretamente o equipamento pela porta serial e já mostrava as informações em tempo real. Essa idéia foi pouco tempo depois usada pela fábrica para novas versões do software.</p>
<p>Nessa época, a programação desktop ainda reinava e as opções mais comuns  eram Delphi e Visual Basic, então sempre algum colega ou outro puxava a sardinha pro lado do Delphi ou do VB. Nessa época, confesso que eu era meio bobo no assunto e eu acabava entrando na onda também, principalmente falando mau do coitado do VB. Tempos depois acabei trabalhando com VB em outros lugares e pude perceber que existia aplicação para ele dependendo do caso. Confesso que sempre gostei mais do Delphi, mas nesse momento eu deixava de ser um apaixonado e passava a fazer a escolha de forma mais racional.</p>
<p><strong>Surge o desenvolvimento pra Web</strong></p>
<p>Quando começei a trabalhar com web em meados de 2000, trabalhei com PERL, depois ASP e ColdFusion. Nesse tempo, surgiu a versão Beta do DotNET em 2001. Foi quando comecei a desenvolver aplicações desktop em WindowsForms e alguma coisa web, com o objetivo de aprender.</p>
<p>Passado pouco tempo e fui trabalhar numa empresa onde usavam tudo da Microsoft. Java nem pensar nessa empresa. Todos falavam mau da Sun e do Java. Nessa época eu já estava bem escaldado com isso e não ia cair nessa novamente, perdendo meu tempo discutindo sobre quem era melhor, Java ou DotNET.</p>
<p>Passado mais um tempo, fui para uma outra empresa onde tinha projetos em DotNET, mas também tinha projetos Java. Como eu já estava estudando Java fazia um tempo, era uma ótima oportunidade para por em prática em algum projeto. Assim que surgiu uma vaga, me ofereci para entrar num projeto de um grande ecommerce brasileiro (que por algumas questões não posso citar o nome). Esse projeto foi ótimo para eu por em prática meus conhecimentos de Java. Nesse momento eu percebi que o pessoal de Java também gostava de falar mau do pessoal de DotNET. Na minha mente estava bem claro que isso era pura perda de tempo, pois claramente nos projetos que eu havia trabalhado eu pude perceber o valor de cada uma dessas tecnologias em cada contexto.</p>
<p>Passou o tempo e acabei não trabalhando mais com DotNET. As empresas seguintes foram todas com Java, exceto aqui na <a href="http://globo.com">globo.com</a>, onde voltarei a falar mais pra frente.</p>
<p><strong>Muitos FUDs</strong></p>
<p>Uma coisa que sempre percebi nessas brigas é que raramente usava-se argumentos lógicos e bem fundamentados. Geralmente as discussões eram baseadas em achismos e usavam algum argumento <a href="http://pt.wikipedia.org/wiki/Fal%C3%A1cia" target="_blank">falacioso</a> ou <a href="http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt" target="_blank">duvidoso/pouco claro</a>.</p>
<p>Quando trabalhei para algumas empresas de Telecomunicações, Bancos e Seguradoras aqui no Rio de Janeiro, quase sempre havia um bom legado em COBOL e seus velhinhos de plantão dando manutenção nesses sistemas. Volta e meia eu ouvia algo do tipo: <em>&#8220;Esse negócio de Java é apertar botãozinho e ta tudo pronto. Homem que é homem programa em COBOL&#8221;</em>. Isso não fazia o menor sentido e por mais que eu tentasse explicar pros caras que não era bem assim, não adiantava, já existia uma opinião sem fundamentos formada na cabeça deles.</p>
<p>Numa dessas últimas empresas que trabalhei (para um dos maiores Bancos do nosso país), eu era Arquiteto junto com mais 14 desenvolvedores em um projeto Java que precisava se comunicar com programas COBOL/CICS. Sabe o que os COBOLEIROS diziam? <em>&#8220;Só usem java pra pegar o que for processado aqui no COBOL porque aqui é que aguenta o tranco. Esse negócio de Java só serve para a parte levinha</em>&#8220;. Apesar de conhecer sobre todo o poder de processamento dos <a href="http://pt.wikipedia.org/wiki/Mainframe" target="_blank">Mainframes</a>, eu sabia que aquilo era apenas uma provocação, pois eu já havia trabalhado em sistemas web feitos com Java com volumes bem maiores que os desse sistema e tudo correu muito bem. Sendo assim, nem entrei em discussão sobre isso, pois eles já tinham se fechado para o assunto.</p>
<p><strong>Nossos dias atuais</strong></p>
<p>Hoje em dia está muito na moda o uso de linguagens dinâmicas como Ruby e Python para desenvolvimento de software, muitos deles aplicações web. Existem diversos casos de sucesso usando essas tecnologias, e mais uma vez surgem as brigas pra saber qual é a melhor: Ruby ou Python.</p>
<p>Não espere aqui uma opinião minha sobre o que é melhor entre as 2, pois isso não vai acontecer. Não porque eu não tenha preferências, mas simplesmente porque melhor ou pior sempre dependerá do contexto e não somente da tecnologia.</p>
<p>Python é uma linguagem muito usada no mundo opensource, tendo muitos aplicativos console e desktop desenvolvidos para linux. A primeira versão do <a href="http://www.youtube.com" target="_blank">Youtube</a> foi escrita em Python (não sei se ainda é). O <a href="http://code.google.com/intl/pt-BR/appengine/" target="_blank">Google AppEngine</a> apesar de suportar Java, foi construido para Python. Existem diversas iniciativas que usam Python e são bem sucedidas.</p>
<p>Ruby apesar de ser uma linguagem bem antiga (1993), só explodiu mesmo com a chegada do Rails (2004/2005). Antes disso ninguém ouvia falar de Ruby. Mesmo assim, Rails trouxe uma ascensão meteórica para o Ruby, surgindo um ecosistema incrível, com uma série de produtos bem sucedidos e documentações fantasticas, screencasts, entre outros. Destacou-se muito com as <a href="http://rspec.info/" target="_blank">ferramentas de testes</a> <a href="http://cukes.info/">automatizados</a> que tanto precisamos hoje em dia para desenvolvermos software com qualidade.</p>
<p>No time onde eu trabalho na <a href="http://globo.com">globo.com</a>, desenvolvemos projetos em Java, em Python/Django e Ruby on Rails (projeto atual). Cada uma das escolhas teve razões lógicas e seus benefícios (que se comprovaram). Essa versatilidade faz com que esse time possa trabalhar em praticamente qualquer projeto da empresa, já que tem conhecimento nas principais linguagens que a empresa trabalha. Isso é muito mais benéfico do que ficar preso a uma tecnologia, defendendo-a com unhas e dentes.</p>
<p><strong>O Mito do não escala</strong></p>
<p>Com o advento dessas linguagens dinâmicas, deu bem pra perceber como a maioria dos profissionais não entendia/não entende quase nada sobre escalabilidade de sistemas web. Assim como o COBOLEIRO falava que o Java não aguentava o tranco, começaram a falar que linguagens dinâmicas não escalavam, principalmente o famoso &#8220;Rails não escala&#8221;.</p>
<p>Certa vez eu lí um post de 2004 (antes do Rails) que já falava sobre esse mito de não escala. Vale a pena conferir <a href="http://www.infoworld.com/d/developer-world/it-myth-6-it-doesnt-scale-007" target="_blank">aqui</a>. E tem também <a href="http://content.newrelic.com/railslab/videos/01-ScalingRails-Page-Responsiveness.mp4" target="_blank">um screencast mais recente</a>(baixe o vídeo e assista) do <a href="http://twitter.com/GreggPollack">Gregg Pollack</a> que nos primeiros minutos mostra na maioria das vezes o que deixa um site lento. Dica: tem pouco a ver com a tecnologia usada.</p>
<p>Portanto, não caia nessa. Pesquise e aprenda como escalar sua aplicação, independente de você estar usando Python/Django Ruby/Rails, Java, DotNET ou qualquer outra tenologia do seu projeto.</p>
<p><strong>Conclusão</strong></p>
<p>Mesmo com essas 2 tecnologias (Ruby e Python) fazendo seu sucesso nos dias de hoje e tendo seu contexto para serem aplicadas, o pessoal ainda continua brigando pra defender a sua tecnologia preferida. Parece que cria-se uma paixão cega pela linguagem, como se fosse uma espécie de religião, saindo do racional e passando a ser totalmente irracional.</p>
<p>Dessa forma, meu conselho para todos os profissionais é que não entrem nessa de ficar defendendo sua tecnologia preferida e atirando pedra na tecnologia concorrente. Aprenda ambas e saiba onde e quando usar cada uma delas.
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2010/02/nao-se-apaixone-pela-sua-tecnologia/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
<enclosure url="http://content.newrelic.com/railslab/videos/01-ScalingRails-Page-Responsiveness.mp4" length="52234333" type="video/mp4" />
		</item>
		<item>
		<title>O Servidor ta dormindo &#8230;</title>
		<link>http://codificando.com/2009/01/o-servidor-ta-dormindo/</link>
		<comments>http://codificando.com/2009/01/o-servidor-ta-dormindo/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 16:16:23 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[gestão]]></category>
		<category><![CDATA[pragmatic]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=56</guid>
		<description><![CDATA[Outro dia aqui na globo.com, estavamos numa reunião com uma determinada equipe que cuida de infra-estrutura sobre um projeto do meu time que estamos desenvolvendo. Num determinado momento da reunião, quando conversavamos sobre um determinado servidor de banco de dados, &#8230; <a href="http://codificando.com/2009/01/o-servidor-ta-dormindo/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Outro dia aqui na <a href="http://globo.com">globo.com</a>, estavamos numa reunião com uma determinada equipe que cuida de<a href="http://codificando.com/wp-content/uploads/2008/10/pirulito.jpg"><img class="alignright size-full wp-image-45" title="pirulito" src="http://codificando.com/wp-content/uploads/2009/01/garfield_dormindo.jpg" alt="" width="204" height="153" /></a> infra-estrutura sobre um projeto do meu time que estamos desenvolvendo. Num determinado momento da reunião, quando conversavamos sobre um determinado servidor de banco de dados, uma pessoa da equipe de infra disse que esse tal servidor estava dormindo (i.e. Trabalhando bem abaixo da sua capacidade). Como nosso projeto demandará grande volume, esse servidor será melhorado para que suporte nosso projeto e continue &#8220;dormindo&#8221;.</p>
<p>Pensando sobre essa situação imaginei nós, os desenvolvedores. Muitas vezes trabalhamos com muito stress, sobrecarga de trabalho e umas boas horas extras.</p>
<p><a href="http://codificando.com/wp-content/uploads/2008/10/pirulito.jpg"><img class="alignleft size-full wp-image-45" title="pirulito" src="http://codificando.com/wp-content/uploads/2009/01/fadiga.jpg" alt="" width="198" height="149" /></a></p>
<p>O que será que acontece quando sobrecarregamos um servidor? Quando estressamos o mesmo? Quando fazemos testes de carga e performance, vemos que num determinado momento o servidor não aguenta e literalmente abre o bico.</p>
<p>Agora, se os servidores (que são máquinas, não humanos) precisam estar abaixo da capacidade produtiva pra não perder sua qualidade, imagine pessoas sem um tempo pra respirar, pensar e descansar?</p>
<p>Trabalhar no limite da sua capacidade produtiva torna o trabalho improdutivo, apesar de ser contra-intuitivo, talvez.
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/01/o-servidor-ta-dormindo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A diferença entre Criar e Fabricar</title>
		<link>http://codificando.com/2008/12/a-diferenca-entre-criar-e-fabricar/</link>
		<comments>http://codificando.com/2008/12/a-diferenca-entre-criar-e-fabricar/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 16:35:40 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[engenharia]]></category>
		<category><![CDATA[gestão]]></category>
		<category><![CDATA[pragmatic]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=55</guid>
		<description><![CDATA[Sempre que eu ouço a frase &#8220;Fábrica de Software&#8221; meus ouvidos doem bastante. Outro dia, conversando com algumas pessoas, havia um colega que não entendia muito bem a minha aversão por essa tal de &#8220;Fábrica de Software&#8221;. Após explicar que &#8230; <a href="http://codificando.com/2008/12/a-diferenca-entre-criar-e-fabricar/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sempre que eu ouço a frase &#8220;Fábrica de Software&#8221; meus ouvidos doem bastante. Outro dia, <img class="alignright" src="http://codificando.com/wp-content/uploads/2008/12/fabrica-toyota-p.jpg" alt="" width="285" height="189" />conversando com algumas pessoas, havia um colega que não entendia muito bem a minha aversão por essa tal de &#8220;Fábrica de Software&#8221;. Após explicar que software é um trabalho criativo, ficou uma dúvida entre algumas pessoas. Afinal de contas, qual a diferença entre criar e fabricar?</p>
<p>Passeando um pouco pelo dicionário, algumas definições me chamaram um pouco a atenção:</p>
<ul>
<li>Criar: <strong>inventar</strong>; imaginar; dar existência a; <strong>desenvolver</strong>;</li>
<li>Fabricar: <span id="lblDlpoDefinicao"><span><span class="texto"><span style="cursor: pointer;" ondblclick="javascript:SeleccionaEntrada_v2(getSel(),'0')"><strong>executar</strong> ou fazer executar certos produtos por <strong>processos mecânicos</strong>; </span></span></span></span><span id="lblDlpoDefinicao"><span><span class="texto"><span style="cursor: pointer;" ondblclick="javascript:SeleccionaEntrada_v2(getSel(),'0')"><strong>manufacturar</strong>; </span></span></span></span><span id="lblDlpoDefinicao"><span><span class="texto"><span style="cursor: pointer;" ondblclick="javascript:SeleccionaEntrada_v2(getSel(),'0')"><strong>construir</strong>;</span></span></span></span></li>
</ul>
<p>É difícil perceber a diferença? Acho que não &#8230;</p>
<p>Se formos na <a href="http://pt.wikipedia.org/" target="_blank">Wikipedia</a> podemos encontrar <a href="http://pt.wikipedia.org/wiki/F%C3%A1brica" target="_blank">algumas informações ainda mais relevantes</a>. Vejamos parte do texto:</p>
<blockquote><p>&#8230; trabalhadores <strong>manufaturam bens</strong> ou supervisionam o funcionamento de máquinas que <strong>processam um produto</strong>, transformando-o em outro. A maioria das fábricas atuais têm grandes armazéns e depósitos com equipamentos pesados, utilizados na <strong>produção da linha de montagem</strong> &#8230;</p></blockquote>
<p><a href="http://martinfowler.com/articles/newMethodology.html#SeparationOfDesignAndConstruction" target="_blank">Oito anos atrás, Fowler escreveu sobre isso</a>, explicando claramente que a parte de &#8220;fabricar&#8221; o software é geralmente uma simples task do ant ou um goal do maven ou alguma coisa no rake, etc.</p>
<p><a href="http://www.guj.com.br/posts/list/84053.java" target="_blank">Já foi falado</a> <a href="http://www.guj.com.br/posts/list/59536.java" target="_blank">zilhões de vezes</a> <a href="http://www.guj.com.br/posts/list/66379.java" target="_blank">nos foruns de tecnologia</a> que fábrica presupõe trabalho repetitivo, fazer o mesmo produto várias vezes (você faz o mesmo software várias vezes ou quando precisa de uma cópia simplesmente faz um cp arquivo1 arquivo2?), desenvolvimento em fazes (i.e. waterfall). Portanto, não faz sentido comparar nosso trabalho com trabalho de fábrica.</p>
<p>O trabalho do desenvolvedor é <strong>criar o software</strong>, fazer design do código em todo o tempo, assim como <img class="alignleft" src="http://www.oficina.it/photo/_thumbs/OfiCentral_iStock_000000216119_L1.jpg" alt="" width="202" height="134" />os arquitetos da contrução civil fazem no autocad, ou no bom e velho papel. A diferença é que nós temos a condição de construir (i.e fabricar) o nosso software com <strong>custo &#8220;zero&#8221;. </strong>Não precisamos de pedreiros, tijolos, vigas, argamassa, etc. Agente usa o Ant, Maven, Rake, Make ou wathever ora bolas. É tudo de graça. O resultado do trabalho deles é físico, o nosso são bits e bytes.</p>
<p>O erro sempre foi fazer a associação: <strong>desenvolver = construir/fabricar</strong>. A associação mais correta é <strong>desenvolver = projetar/arquitetar/desenhar</strong>.</p>
<p>Até a próxima &#8230;
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2008/12/a-diferenca-entre-criar-e-fabricar/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

