<?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>BeckLog: Beck Novaes&#039; Web Log &#187; Outbox</title>
	<atom:link href="http://www.becklog.org/category/outbox/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.becklog.org</link>
	<description>Blog pessoal do Beck Novaes</description>
	<lastBuildDate>Sat, 24 Jul 2010 16:04:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Trade-off com Foco no Valor Agregado</title>
		<link>http://www.becklog.org/2009/08/31/trade-off-com-foco-no-valor-agregado/</link>
		<comments>http://www.becklog.org/2009/08/31/trade-off-com-foco-no-valor-agregado/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 12:00:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Outbox]]></category>

		<guid isPermaLink="false">http://www.becklog.org/?p=412</guid>
		<description><![CDATA[Ninguém compra um carro apenas por causa do motor. As pessoas não buscam apenas resolver seu problema de transporte. Hoje em dia, ninguém mais compra um celular só porque ele faz ligações. Então, por que o Software tem apenas que resolver um problema, mesmo que de forma feia? Desenvolvimento de Software, ao contrário de outras [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.becklog.org%2F2009%2F08%2F31%2Ftrade-off-com-foco-no-valor-agregado%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.becklog.org%2F2009%2F08%2F31%2Ftrade-off-com-foco-no-valor-agregado%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Ninguém compra um carro <em>apenas</em> por causa do motor. As pessoas não buscam apenas resolver seu problema de transporte. Hoje em dia, ninguém mais compra um celular só porque ele faz ligações. Então, por que o Software tem apenas que resolver um problema, mesmo que de forma feia?</p>
<p>Desenvolvimento de Software, ao contrário de outras áreas como construção civil e arquitetura ainda é uma área relativamente nova.  Nestas e em inúmeras outras áreas num primeiro instante não havia preocupação com a estética por uma questão de prioridade: prioriza-se a solução do problema essencial. Mas passada esta fase (que acredito que estamos chegando próximo no que diz respeito ao desenvolvimento de software) começa a pesar os fatores humanos, os fatores psicológicos, etc. Como diz <a href="http://pt.wikipedia.org/wiki/Donald_Norman">Donald Norman</a> &#8220;As coisas mais bonitas funcionam melhor&#8221;. Por que? Porque somos seres humanos e as coisas mais bonitas colocam nosso cérebro num estado muito mais propicio para uma determinada atividade: seja dirigir um carro, manusear um celular ou usar uma aplicação. Aqui entra uma outra tese minha junto com o <a href="http://www.becklog.org/2009/08/06/ti-centrismo-vs-usuario-centrismo/">TI-Centrismo Vs. Usuário-Centrismo</a> que é o <strong>Trade-off com Foco no Valor Agregado</strong>.</p>
<p><img src="http://www.becklog.org/wp-content/uploads/2009/08/ser-ou-nao-ser.jpg" alt="" title="Ser ou não ser?" width="468" height="414" class="alignnone size-full wp-image-384" /></p>
<p>Desenvolver softwares é também saber tomar as decisões certas com foco no todo e não em partes isoladas. E este conceito é sutil mas poderoso (e acredito que possui certa relação com a <a href="http://en.wikipedia.org/wiki/Gestalt_psychology">Gestalt</a>). Daí a importância do <a href="http://en.wikipedia.org/wiki/Trade-off">Trade-off</a> &#8211; que para quem não sabe é, basicamente, você fazer uma escolha entre um número de opções mas sempre sair perdendo umas coisas e ganhando outras. O grande problema do Trade-off em desenvolvimento do Software é que ele é influenciado pelo <a href="http://www.becklog.org/2009/08/06/ti-centrismo-vs-usuario-centrismo/">TI-Centrismo</a> e não pelo valor agregado à experiência final do usuário como deveria ser.</p>
<p>Vejam exemplos:</p>
<p><img src="http://www.becklog.org/wp-content/uploads/2009/08/tradeoff-1.png" alt="" title="Trade-off Tradicional" width="441" height="145" class="alignnone size-full wp-image-385" /></p>
<p>A tabela acima deixa duas coisas bem claras:<br />
1. Desenvolvimento sempre ganha<br />
2. Estética sempre perde</p>
<p>Porém, dada a premissa de que a estética é importante porque somos seres humanos, será que, visando o produto final, visando a experiência como um todo, não seria interessante considerar eventualmente fazer um <a href="http://www.becklog.org/wp-content/uploads/2009/08/pog-do-bem2.png">POG do Bem</a> para oferecer uma melhor estética pois o usuário vai se sentir melhor com a sua aplicação? Será que você não deveria considerar que a Usabilidade não precisa ser a melhor do mundo, num dado contexto, para deixar o Designer Gráfico mais livre para trabalhar a estética? <em>(sim, a Usabilidade cria restrições para o Designer Gráfico. Perguntem aos Designers se eles não se sentem um tanto limitados pelos Wireframes).</em></p>
<p>Quando eu falei da idéia do Trade-off com foco no valor agregado com o <a href="http://www.nahipermidia.com/">Luciano Lobato</a> da DClick ele disse: mas todo Trade-off não deveria ser com foco no valor agregado? Sim, deveria, mas não é! Por quê? Porque na maioria das empresas cada tipo de profissional olha para o seu próprio umbigo e não para o software como produto final.</p>
<p><img src="http://www.becklog.org/wp-content/uploads/2009/08/motal-kombat1.jpg" alt="Motal Kombat" title="Motal Kombat" width="500" height="319" class="alignnone size-full wp-image-452" /></p>
<p>Que designers e programadores não se bicam não é novidade. Mas isto não é uma questão pessoal (pelo menos não no começo) . O problema, paradoxalmente, é que cada um de nós quer fazer o melhor trabalho possível. O Arquiteto da Informação quer oferecer a melhor usabilidade. O Programador quer fazer o melhor código. E o Designer quer fazer a aplicação mais bonita. Mas como cada um trabalha de forma independente, o que geralmente acontece é que um complica a vida do outro e ninguém sabe de fato o que é mais importante para a experiência final do usuário como um todo &#8211; chamo isto de <strong><em>Egocentrismo Funcional</em>: o ego criado pela função que você exerce o impede de enxergar o que é melhor para o produto final</strong>. Desta forma, o programador se recusa a implementar algo muito complexo definido pelo arquiteto de informação &#8211; mas perde um baita tempo aplicando patterns desnecessários. O arquiteto de informação se recusa a mudar um wireframe sugerido pelo designer para deixar as coisas mais bonitas &#8211; e não pensa que talvez tal mudança agregue muito mais em estética do que perde em Usabilidade. Enfim, quando nenhum destes profissionais olham para o software como um todo, o que eles mais fazem é criar restrições que impactam negativamente o trabalho dos demais. E, além disso, quando se trata de tomar uma decisão isto não é deliberado e sim imposto por uma questão hierárquica (quem manda) ou pelo TI-Centrismo (Estética perde sempre. Usabilidade perde sempre.)</p>
<p>O <a href="http://www.becklog.org/wp-content/uploads/2009/08/pog-do-bem2.png">POG do Bem</a> nada mais é do que um exemplo de Trade-off com foco no valor agregado envolvendo programação e estética/usabilidade. Vamos agora a um exemplo de Usabilidade Vs. Estética. </p>
<p>Antigamente na DClick os arquitetos de informação definiam a usabilidade e depois restava ao Designer colorir os Wireframes. Certa vez uma alteração proposta pelo designer estava para ser recusada (como freqüentemente acontece) com argumentos dos arquitetos do tipo:<br />
- Isso é ruim. O usuário terá que dar dois cliques no lugar de um.<br />
Como eu estava de fora, observando o produto como um todo, eu perguntei:<br />
- Mas espere um pouco! Com que freqüência ele terá que dar dois cliques?<br />
- Não muita. &#8211; Responderam os arquitetos.<br />
- Então isso é realmente um problema?<br />
- Não, não é um problema grande!<br />
- Então devemos priorizar a estética que no final das contas vai agregar mais à solução, visto que a perda de usabilidade neste caso é insignificante.</p>
<p><em>Suponha que na sua empresa o Arquiteto de Informação tenha mais &#8220;moral&#8221; que o designer, o que aconteceria? Suponha que o TI-Centrismo impere na sua empresa e que a mudança proposta pelo designer vai gerar certa complexidade, o que aconteceria?</em></p>
<p>Isto é Trade-off com foco no valor agregado! Você precisa abstrair e pensar num contexto maior: o produto final. Assim, não se deve tomar como regra a tabela de tabela de trade-off tradicional onde o desenvolvimento sempre ganha e a estética sempre perde. Não deixe esta tabela, que talvez esteja implicitamente arraigada na cultura da sua empresa, influenciar você!</p>
<p><img src="http://www.becklog.org/wp-content/uploads/2009/08/rules.jpg" alt="" title="Break the Rules" width="300" height="225" class="alignnone size-full wp-image-387" /></p>
<p>O que temos que ter em mente é que nosso cérebro (novamente ele) não avalia nada isoladamente. Assim, o usuário falar se uma aplicação é boa depende do conjunto da obra. Por isso precisamos encontrar um equilíbrio entre a estética e a parte funcional. As vezes o programador deve deixar de fazer algo assim tão otimizado, pois talvez não seja necessário, para dedicar mais tempo na implementação de uma animação que agrega valor ou fazer bem um skin numa parte do software que o usuário passa a maior parte do tempo. As vezes você deve deixar de querer a melhor usabilidade do mundo se o problema de usabilidade não for assim tão grave e, por outro lado, isto deixa o designer livre para fazer algo realmente mais bonito. Por que? Porque é disso que o usuário vai lembrar quando ele pensar sobre o software. Não digo que ele vai lembrar APENAS da estética. Não digo que ele vai lembrar APENAS do funcional. Ele vai lembrar do conjunto da obra (<a href="http://en.wikipedia.org/wiki/Gestalt_psychology">Gestalt</a> novamente). Ele vai lembrar das animações e isso o fará pensar que, junto com outras coisas, o software é bom. Ele vai lembrar do que ele pode fazer (funcionalidades) e isso o fará pensar que o software, em conjunto com a estética, é bom. <strong>É isto que é a experiência do usuário: o todo, não as partes isoladas.</strong>  Então, refazendo a tabela de trade-off ela ficaria assim:</p>
<p><img src="http://www.becklog.org/wp-content/uploads/2009/08/tradeoff-2.png" alt="" title="Trade-off com foco no valor agregado" width="484" height="127" class="alignnone size-full wp-image-388" /></p>
<p>Isto é Trade-off com foco no valor agregado e não em paradgmas arraigados na cultura das organizações influenciados pelo <a href="http://www.becklog.org/2009/08/06/ti-centrismo-vs-usuario-centrismo">TI-Centrismo</a> ou por algum tipo de hierarquia burra.</p>
<img src="http://www.becklog.org/?ak_action=api_record_view&id=412&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.becklog.org/2009/08/31/trade-off-com-foco-no-valor-agregado/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Não faça o que os usuários querem! Faça o que eles precisam!</title>
		<link>http://www.becklog.org/2009/08/11/nao-faca-o-que-os-usuarios-querem-faca-o-que-eles-precisam/</link>
		<comments>http://www.becklog.org/2009/08/11/nao-faca-o-que-os-usuarios-querem-faca-o-que-eles-precisam/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 12:15:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Crítica]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Outbox]]></category>

		<guid isPermaLink="false">http://www.becklog.org/?p=308</guid>
		<description><![CDATA[“Não ouça os compradores, eles não sabem o que querem” – Steve Jobs. Algo parecido acontece com os usuários em minha opinião. “Saber o que quer” é diferente de “saber o que precisa”. O usuário sabe o que quer, mas você NÃO DEVE fazer o que ele quer, você deve fazer o que ele precisa! [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.becklog.org%2F2009%2F08%2F11%2Fnao-faca-o-que-os-usuarios-querem-faca-o-que-eles-precisam%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.becklog.org%2F2009%2F08%2F11%2Fnao-faca-o-que-os-usuarios-querem-faca-o-que-eles-precisam%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>“Não ouça os compradores, eles não sabem o que querem” – Steve Jobs.</p>
<p>Algo parecido acontece com os usuários em minha opinião.</p>
<p><strong>“Saber o que quer”</strong> é diferente de <strong>“saber o que precisa”</strong>. O usuário sabe o que quer, mas você <strong>NÃO DEVE</strong> fazer o que ele quer, você deve fazer o que ele precisa!</p>
<p>O que usuário quer num primeiro momento vai deixá-lo com a falsa impressão que o projeto está indo bem. Mas depois de um tempo ele verá que não é bem assim. Depois de um tempo ele vai querer mudar para o que ele precisava mas não sabia.</p>
<p>O problema de desenvolver com foco no que o usuário quer é que isso é baseado em desejo e como tal é rotineiramente distorcido pelas impressões. Desenvolver baseado no desejo dos usuários o leva a assumir premissas e criar restrições erradas para o desenvolvimento do Software. Isso complicará o seu projeto e provavelmente levará a resultados pouco satisfatórios. O problema é que o usuário vai culpar você por isso e nem vai lembrar das informações imprecisas que ele lhe passou sobre o que ele desejava.</p>
<p><img src="http://www.becklog.org/wp-content/uploads/2009/08/requisitos-dilbert1.jpg" alt="" title="Requisitos Dilbert" width="500" height="352" class="alignnone size-full wp-image-315" /></p>
<p>Sim, o usuário não vai lhe dizer o que ele precisa porque ele não sabe! Pior, por sua natureza, entender o que o usuário realmente precisa é mais &#8220;arte&#8221; do que ciência. Você precisa saber lidar com pessoas. Você precisa saber que o usuário é um ser humano como outro qualquer e que está muito confuso sobre o seu problema. O usuário define seus softwares tal como um casal apaixonado olha para o céu e vê cachorrinhos nas nuvens. E ele faz isso porque o nosso cérebro funciona assim: por associações. É por isso que vira e mexe ele olha outro software que não tem nada a ver com o seu problema e diz: eu preciso disso! Então você começa a desenvolver e aprende a duras penas que não era nada daquilo&#8230; e você muda um pouco aqui, muda um pouco ali e quando vê já está com um Software Frankenstein nas mãos. </p>
<p><img src="http://www.becklog.org/wp-content/uploads/2009/08/dogcloud.jpg" alt="" title="Nuvem Cachorrinho" width="500" height="352" class="alignnone size-full wp-image-321" /></p>
<p><em>O usuário define seus softwares tal como um casal apaixonado olha para o céu e vê cachorrinhos nas nuvens.</em></p>
<p>É neste ponto que você deve deve ter a &#8220;astúcia&#8221; de abstrair os desejos do usuário, considerar as informações relevantes sobre o que ele está lhe falando e propor soluções que, pelo seu conhecimento, devem agregar mais valor do que aquilo que o usuário pensava antes. E você terá que saber argumentar com ele sobre esta &#8220;nova&#8221; solução. Porém, compre mesmo esta briga! Não desista tão facilmente de convencê-lo a &#8220;fazer do seu jeito&#8221;. Demonstre confiança no que você esta falando. Baseie-se em estudos, fatos, exemplos. Conquiste a confiança dele antes de qualquer coisa. Não existe receita de bolo para isso e eu acredito que é por isso que estes templates de Casos de Uso ou qualquer outra coisa do tipo falham. Não me refiro ao artefato em si, mas o modo como ele é concebido: geralmente um processo burocrático, formal, nada humano e extremamente chato! </p>
<p>Finalmente, quando você consegue fazer <strong>O QUE O USUÁRIO PRECISA</strong> pode até ser que exista algum atrito no inicio – porque ele ainda não tem certeza que precisa daquilo. Mas conforme o tempo passa ele entenderá melhor porque as coisas estão tomando o rumo que estão tomando – ele aprende junto com você o real problema. E eis que o usuário passa a querer o que ele precisa e é aí que está a chave do sucesso.</p>
<p><img src="http://www.becklog.org/wp-content/uploads/2009/08/user-happy.jpg" alt="" title="User Happy" width="425" height="282" class="alignnone size-full wp-image-322" /></p>
<p><strong>Nota:</strong> Este post é uma &#8220;extensão&#8221; do comentário que fiz <a href="http://blog.mxml.com.br/voce-esta-preparado-para-dizer-o-que-estas-precisando">neste outro post</a>.</p>
<img src="http://www.becklog.org/?ak_action=api_record_view&id=308&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.becklog.org/2009/08/11/nao-faca-o-que-os-usuarios-querem-faca-o-que-eles-precisam/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>TI-Centrismo Vs. Usuário-Centrismo</title>
		<link>http://www.becklog.org/2009/08/06/ti-centrismo-vs-usuario-centrismo/</link>
		<comments>http://www.becklog.org/2009/08/06/ti-centrismo-vs-usuario-centrismo/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 12:06:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Crítica]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Outbox]]></category>

		<guid isPermaLink="false">http://www.becklog.org/?p=279</guid>
		<description><![CDATA[Um dos problemas de desenvolvimento do Software, especialmente no Brasil, é o TI-Centrismo. O TI-Centrismo prega que TI é o centro do Universo. Desta forma, muitas das decisões tomadas no ciclo de vida de desenvolvimento do Software visam &#8220;proteger&#8221; TI. - &#8220;Não pudemos mudar isso, é padrão de TI!&#8221; = TI-Centrismo - &#8220;Não dá para [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.becklog.org%2F2009%2F08%2F06%2Fti-centrismo-vs-usuario-centrismo%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.becklog.org%2F2009%2F08%2F06%2Fti-centrismo-vs-usuario-centrismo%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Um dos problemas de desenvolvimento do Software, especialmente no Brasil, é o TI-Centrismo.</p>
<p>O TI-Centrismo prega que TI é o centro do Universo. Desta forma, muitas das decisões tomadas no ciclo de vida de desenvolvimento do Software visam &#8220;proteger&#8221; TI.<br />
- &#8220;Não pudemos mudar isso, é padrão de TI!&#8221; = TI-Centrismo<br />
- &#8220;Não dá para fazer assim, o banco não permite&#8221; = TI-Centrismo<br />
- &#8220;Não vou deixar meu código feio assim. Deixa essa animação pra lá&#8221; = TI-Centrismo<br />
- &#8220;Vamos fazer o Café com Leite, senão vai dar muito trabalho.&#8221; = TI-Centrismo</p>
<p>Precisamos mudar isso! Precisamos deixar o TI-Centrismo e adotar o Usuário-Centrismo. Pode não parecer mais isso muda muita coisa.</p>
<p>Programadores odeiam código feio. Por outro lado a parte estética da aplicação e as animações são sempre deixados para o final. O problema? Bem, muitas vezes perde-se muito tempo tentando fazer aquela arquitetura super hiper robusta com o super hiper design pattern onde não precisa.</p>
<p>Mas por que a estética, incluindo animação é importante? Porque isso deixa o usuário num estado mental muito melhor. Isso faz com que o usuário:</p>
<p>1. Perdoe erros mais facilmente<br />
2. Tenha maior pré-disposição para aprender a mexer na aplicação</p>
<p>Fizeram uma experiência com dois caixas eletrônicos idênticos em termos de usabilidade e implementação. Um bonito e outro feio. O Caixa mais bonito teve uma avaliação muito melhor do que o caixa mais feio. No Caixa mais feio as pessoas reclamaram muito mais dos erros (propositais) do que no caixa mais bonito. Uma coisa é o usuário bater o olho numa coisa bonita e falar: &#8220;Uau&#8230; que legal isso. Bem, agora deixa eu ver como eu uso!&#8221;. Outra coisa é ele falar &#8220;Nossa! Que coisa medonha, como eu uso isso?&#8221; O estado mental é tudo. A motivação é tudo. E coisas feias definitivamente desmotivam.</p>
<p>Quando abandonamos o TI-Centrismo e adotamos o Usuário-Centrismo nossa percepção muda. Eu prefiro perder tempo fazendo uma animação que vai agregar mais valor à experiência do usuário do que aplicando aquele super ultra design pattern que li no ultimo livro que ostento na minha estante e que só vai servir para eu exercitar o que aprendi. E isso tem a ver com outra coisa que eu chamo de Tradeoff com foco no valor agregado (assunto para um outro post).</p>
<p><img src="http://www.becklog.org/wp-content/uploads/2009/08/galileu1.jpg" alt="" title="Galileu" width="289" height="343" class="alignnone size-full wp-image-292" /><br />
<em>Em muitos casos o TI-Centrismo é como uma religião. Só espero não ser condenado como <a href="http://pt.wikipedia.org/wiki/Galileu_Galilei#A_condena.C3.A7.C3.A3o_de_Galileu_pelo_Santo_Of.C3.ADcio">Galilei Galilei</a> por tentar mostrar que o centro do Universo não é o que os devotos pensam. </em></p>
<p>Ao adotar o Usuário-Centrismo comecei a me perguntar se os POGs que tanto incomodam os programadores que pregam boas práticas em 100% do Software (TI-Centrismo) são realmente um mal em todos os contextos. Eu ousaria dizer que, no Usuário-Centrismo existe o <strong>POG do Mal</strong> e o <strong>POG do Bem</strong>. Imagine que você precisa implementar uma animação em Flex e que, como um bom programador, você tentou fazer da melhor forma possível. Mas não teve jeito! Você vai ter que colocar um Timer para fazer funcionar perfeito (típico POG para resolver problemas de tempo em animações em Flex). Mas você é um programador &#8220;bonzão&#8221;. Você jamais vai fazer este POG. Então você se recusa. Afinal de contas, para quê animação, não é mesmo? Mas a pergunta é: Tal animação vai agregar valor à experiência do usuário? Sim! O POG vai ser fonte potencial de problemas? Não! O POG vai ser difícil dos programadores entender? Não (nada que um comentário simples não resolva). Então, por que que eu vou me recusar de fazer algo que mais agrega à experiência do usuário do que, de fato, prejudica TI? Porque eu sou adepto do TI-Centrismo. Eu não faço software para o usuário, eu faço para mim. Para o meu ego.</p>
<p><img src="http://www.becklog.org/wp-content/uploads/2009/08/pog-do-bem2.png" alt="" title="POG do Mal Vs. POG do Bem" width="445" height="517" class="alignnone size-full wp-image-299" /><br />
<em>Eu quis manter o diagrama acima simples e por isso o fiz &#8220;incompleto&#8221;. No caso da complexidade, por exemplo, mesmo que POG pareça &#8220;comprometer a complexidade&#8221; é preciso colocar isto na balança pois também acredito que não há mal algum em algo complexo, encapsulado e que pouco vai ser mexido. Mais um vez, é o que eu chamo de Tradeoff com foco no valor agregado.</em></p>
<p>O TI-Centrimo começa nas Universidades ou quando o iniciante está aprendendo a programar. Nesta época, sem experiência e capacidade para julgar, os professores colocam na cabeça das pessoas que a performance do sistema é um problema independente do contexto. Em outras palavras, aprende-se que sempre se deve otimizar um simples &#8220;for&#8221; (tentar transformar 200 iterações em 100 por exemplo). Aprende-se que se deve preocupar com a performance desde o início. Mas o que não é dito é que código otimizado é mais complexo. O que não é dito é que o gargalo de performance corresponde a um percentual muito pequeno do código do seu software. O que não e dito é que você geralmente não sabe onde está este gargalo e que no final das contas você vai perder muito tempo tentando otimizar código onde não é preciso, adicionando complexidade ao seu código e deixando de fazer outras coisas que agregam mais valor. Isto é TI-Centrismo!</p>
<p><img src="http://www.becklog.org/wp-content/uploads/2009/08/teacher.png" alt="" title="Teacher" width="250" height="238" class="alignnone size-full wp-image-301" /></p>
<p>O TI-Centrismo cria tantas restrições para se fazer um bom trabalho que Software de qualidade do ponto de vista do usuário é praticamente impossível. O TI-Centrismo é respaldado (entre outras coisas) pela alienação do programador. Softwares existem porque alguém precisa usar. Este alguém é o usuário. Ele é a razão do software existir. Mas muitos programadores esquecem disto e o seu código passa a ter uma razão de existir em si. Este programador aplica Design Pattern porque ele gosta. Ele aplica boas práticas porque ele gosta. Ele faz código otimizado porque ele gosta. Mas ele não gosta de perder tempo com animação &#8211; que as vezes é o que vai agregar valor à experiência final. </p>
<p>Você pode adotar o Usuário-Centrismo e continuar apreciando código bonito e de qualidade. A diferença é que o Usuário-Centrismo vai lhe fazer pensar que o seu código tem que ser bom para lhe permitir fazer um Software cada vez melhor não para você, mas sim para o usuário.</p>
<p>O que jamais podemos esquecer é que fazemos softwares para os usuários. Então ele deveria ser o centro do universo, e não TI.</p>
<img src="http://www.becklog.org/?ak_action=api_record_view&id=279&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.becklog.org/2009/08/06/ti-centrismo-vs-usuario-centrismo/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
