<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>A arte de simplificar</title>
	<atom:link href="http://simplologia.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://simplologia.wordpress.com</link>
	<description>Simplificando o cotidiano com tecnologias viáveis</description>
	<lastBuildDate>Sat, 07 Nov 2009 15:40:29 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='simplologia.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/bd5034349385d2a1f0b0bb3b8a34a995?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>A arte de simplificar</title>
		<link>http://simplologia.wordpress.com</link>
	</image>
			<item>
		<title>Usabilidade ao meu ver</title>
		<link>http://simplologia.wordpress.com/2009/11/07/usabilidade-ao-meu-ver/</link>
		<comments>http://simplologia.wordpress.com/2009/11/07/usabilidade-ao-meu-ver/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 15:40:29 +0000</pubDate>
		<dc:creator>cldsantos</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://simplologia.wordpress.com/?p=18</guid>
		<description><![CDATA[Ao trabalhar num projeto onde os usuários eram extremamente exigentes quanto aos detalhes de como a interface gráfica funcionaria, passei a pensar sobre como aquelas exigencias poderiam ser documentadas. Após um tempo vi que seria impossível coletar cada exigência que o usuário faz sobre aquelas dezenas de interfaces, principalmente porque o usuário pedia a alteração, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simplologia.wordpress.com&blog=2405991&post=18&subd=simplologia&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div id="_mcePaste">Ao trabalhar num projeto onde os usuários eram extremamente exigentes quanto aos detalhes de como a interface gráfica funcionaria, passei a pensar sobre como aquelas exigencias poderiam ser documentadas. Após um tempo vi que seria impossível coletar cada exigência que o usuário faz sobre aquelas dezenas de interfaces, principalmente porque o usuário pedia a alteração, a mesma era implementada e a partir daquela mudança o usuário notava que havia um outro detalhe que poderia ser alterado e como tinhamos 3 usuários chaves cada um fazia suas exigências ao sabor de seu humor.</div>
<div id="_mcePaste">Vendo aquele grande número de requisitos de interface e usabilidade, um processo iterativo poderia sim ajudar, mas ainda sim esse vai e vem de alterações tinha grandes chances de ocorrer. Abstraindo essas exigências e olhando de outra perspectiva notamos certas similaridades que podem nos ajudar a definir um padrão, como por exemplo processo para cadastro de informações:</div>
<div id="_mcePaste">
<ul>
<li>Usuário informa os dados;</li>
<li>Sistema valida informações;</li>
<li>Usuário desenha geometria no mapa;</li>
<li>Sistema valida as regras topológicas;</li>
<li>Sistema apresenta mensagens de resultado;</li>
</ul>
</div>
<div id="_mcePaste">Ou como proceder numa alteração por exemplo. Esses procedimentos sempre nos conduzem a um padrão que é replicado às demais telas. Lembrando que me atenho ao aspecto funcional, como a mensagem é trocada entre usuário e sistema. Com relação à aparência de um site, deixo isso na mão de um designer que tem o conhecimento para definir estrutura de exibição das informações, cores, logos e etc.</div>
<div id="_mcePaste">Unindo-se a esta idéia acredito que a maior parte da responsabilidade em definir como os aspectos funcionais devem ser elaborados é nosso(desenvolvedores), afinal somos nós que trabalhamos o ano todo com centenas de usuários, diversos de projetos e mais do que ninguém temos o conhecimento necessário para definir como a tela se comportará e qual é a melhor forma para definir uma interface que torne a experiência do usuário algo prático, rápido e que controle bem as exceções, evitando que cadastros sejam perdidos, que informações erradas sejam inseridas, retrabalhos e etc.</div>
<div id="_mcePaste">Os operadores do sistemas convivem com um conjunto de informações em seu dia-a-dia. Estas informações mais relevantes deve sem apresentadas em um plano principal, pois são elas que fornecerão insumo para que seu trabalho seja exercido da melhor forma.</div>
<div id="_mcePaste">Todo o restante das informações deve aparecer com menor importancia na tela sem que esta importancia reduza este nova informação a um pequeno painel flutuante sobre o restante das informações, afinal por mais que existam outras informações de maior importancia em segundo plano a informação atual deve ser mostrada de forma que a atenção atual fique somente nela e assim que ela perder esta importancia ela é recolhida e não mais está sobre o mapa ou uma tabela dinamica com um resumo das informações.</div>
<div id="_mcePaste">As vezes imagino pq mostrar mais que 5 paginas&#8230; eu não teria tempo no meu trabalho para olhar cada uma delas, acho que as interfaces podiam ser mais dinamicas e um padrão sobre validações, formatos, e coisas que facilitem a vida do usuário seriam melhores tanto para a agilidade da execução do trabalho qto para redução de erros.</div>
<div id="_mcePaste">Afinal desenvolvemos sistemas para facilitar a vida do usuário, ele não sabe sozinho como isto pode ser feito da melhor forma, fico indignado quando fazemos coisas inferiores pq o usuário não sabe o que quer isto vai de encontro com a ética de um desenvolvedor.</div>
<div id="_mcePaste">Aí que fico indignado com essa definição extremamente unilateral de papeis, ou seja, definimos que um programador só faz codificar, um analista de requistos os coleta, prioriza e mantém os requisitos e se o usuário não definir o que ele quer podemos usar este documento contra ele, mas veja bem&#8230; ele nos contratou para que fizessemos o melhor e é claro que ele vai pagar com felicidade por ele, basta que ele esteja feliz com o software.</div>
<div id="_mcePaste">Enfim, concluindo sobre os padrões, acredito que definir uma a uma cada tela seja um trabalho muito árduo que exije grande esforço, mas se soubermos que informação exibir e os padrões que definam em que ordem devemos mostrar os dados se devemos priorizar campos requeridos, se devemos ocultar alguns dados não requeridos em grupos, como vamos formata-los. Como exibir as informações mais relevantes ao usuário e como mostrar novas janelas que contribuam para estas informações mais relevantes.</div>
<div id="_mcePaste">Vejamos um ciclo completo:</div>
<div id="_mcePaste">Um usuário que é responsável por coordenar a recepção de produtos deve ter um painel que mostre os produtos que necessitam de reposição nas próximas semanas e destes produtos o que já foi solicitado e se há algo chegando dentre os próximos dias. para ele selecionar algo que estava prestes a acabar avisando que é necessário solicitar estoque de reposição. para o vendedor apareceria outro painel com as informações relevantes ao trabalho dele. Contendo uma pesquisa sobre preços dos produtos frequentemente comprados, quais são os produtos que estão a ponto de chegar a reserva de estoque.</div>
<div id="_mcePaste">Talvez estes painéis representem grande tráfego na rede e alto consumo de processamento, mas tornar o sistema algo que traga valor aos usuários é o melhor caminho.</div>
<div id="_mcePaste">Talvez as telas que forneçam informações, tornem desnecessários preencher tantas informações para um cadastro.</div>
<div id="_mcePaste">Outro grande problema são as telas de cadastro, por exemplo&#8230; se eu for cadastrar uma rua, certamente eu já estarei no local em que desejo desenha-la neste ponto algumas informações não precisarão ser preenchidas pois o desenho já estará posicionado sobre algum pais, estado, cidade e bairro então pra que digitar tudo isso novamente? bom pra poupar processamento? se seu sistema não puder fazer uma busca em tabelas com no maximo 500 registros seu problema é mais grave, resolva sua infra antes de implementar o software.</div>
<div id="_mcePaste">Tenho quase certeza que o usuário não pedirá isso, pois isso vai onerar um custo e o pobre do usuário não vai pedir, mas se vc fizer um sistema meia boca, sinto lhe informar mas fará só um.</div>
<div id="_mcePaste">Enfim, para definir essas caracteristicas não acredito que seja necessário criar um protótipo de tela, uma prova conceitual com certeza, mas criar um protótipo para cada tela em algumas hora eu não vejo necessidade, talvez para determinar os padrões e facilitar a visualização pelo usuário, mas para cada tela eu não acho necessário.</div>
<p>Ao trabalhar num projeto onde os usuários eram extremamente exigentes quanto aos detalhes de como a interface gráfica funcionaria, passei a pensar sobre como aquelas exigencias poderiam ser documentadas. Após um tempo vi que seria impossível coletar cada exigência que o usuário faz sobre aquelas dezenas de interfaces, principalmente porque o usuário pedia a alteração, a mesma era implementada e a partir daquela mudança o usuário notava que havia um outro detalhe que poderia ser alterado e como tinhamos 3 usuários chaves cada um fazia suas exigências ao sabor de seu humor. Vendo aquele grande número de requisitos de interface e usabilidade, um processo iterativo poderia sim ajudar, mas ainda sim esse vai e vem de alterações tinha grandes chances de ocorrer. Abstraindo essas exigências e olhando de outra perspectiva notamos certas similaridades que podem nos ajudar a definir um padrão, como por exemplo processo para cadastro de informações:  - usuário informa os dados; - sistema valida informações; - Usuário desenha geometria no mapa; - Sistema valida as regras topológicas; - Sistema apresenta mensagens de resultado;Ou como proceder numa alteração por exemplo. Esses procedimentos sempre nos conduzem a um padrão que é replicado às demais telas. Lembrando que me atenho ao aspecto funcional, como a mensagem é trocada entre usuário e sistema. Com relação à aparência de um site, deixo isso na mão de um designer que tem o conhecimento para definir estrutura de exibição das informações, cores, logos e etc.Unindo-se a esta idéia acredito que a maior parte da responsabilidade em definir como os aspectos funcionais devem ser elaborados é nosso(desenvolvedores), afinal somos nós que trabalhamos o ano todo com centenas de usuários, diversos de projetos e mais do que ninguém temos o conhecimento necessário para definir como a tela se comportará e qual é a melhor forma para definir uma interface que torne a experiência do usuário algo prático, rápido e que controle bem as exceções, evitando que cadastros sejam perdidos, que informações erradas sejam inseridas, retrabalhos e etc.<br />
Os operadores do sistemas convivem com um conjunto de informações em seu dia-a-dia. Estas informações mais relevantes deve sem apresentadas em um plano principal, pois são elas que fornecerão insumo para que seu trabalho seja exercido da melhor forma.<br />
Todo o restante das informações deve aparecer com menor importancia na tela sem que esta importancia reduza este nova informação a um pequeno painel flutuante sobre o restante das informações, afinal por mais que existam outras informações de maior importancia em segundo plano a informação atual deve ser mostrada de forma que a atenção atual fique somente nela e assim que ela perder esta importancia ela é recolhida e não mais está sobre o mapa ou uma tabela dinamica com um resumo das informações.As vezes imagino pq mostrar mais que 5 paginas&#8230; eu não teria tempo no meu trabalho para olhar cada uma delas, acho que as interfaces podiam ser mais dinamicas e um padrão sobre validações, formatos, e coisas que facilitem a vida do usuário seriam melhores tanto para a agilidade da execução do trabalho qto para redução de erros.<br />
Afinal desenvolvemos sistemas para facilitar a vida do usuário, ele não sabe sozinho como isto pode ser feito da melhor forma, fico indignado quando fazemos coisas inferiores pq o usuário não sabe o que quer isto vai de encontro com a ética de um desenvolvedor.<br />
Aí que fico indignado com essa definição extremamente unilateral de papeis, ou seja, definimos que um programador só faz codificar, um analista de requistos os coleta, prioriza e mantém os requisitos e se o usuário não definir o que ele quer podemos usar este documento contra ele, mas veja bem&#8230; ele nos contratou para que fizessemos o melhor e é claro que ele vai pagar com felicidade por ele, basta que ele esteja feliz com o software.<br />
Enfim, concluindo sobre os padrões, acredito que definir uma a uma cada tela seja um trabalho muito árduo que exije grande esforço, mas se soubermos que informação exibir e os padrões que definam em que ordem devemos mostrar os dados se devemos priorizar campos requeridos, se devemos ocultar alguns dados não requeridos em grupos, como vamos formata-los. Como exibir as informações mais relevantes ao usuário e como mostrar novas janelas que contribuam para estas informações mais relevantes.Vejamos um ciclo completo:Um usuário que é responsável por coordenar a recepção de produtos deve ter um painel que mostre os produtos que necessitam de reposição nas próximas semanas e destes produtos o que já foi solicitado e se há algo chegando dentre os próximos dias. para ele selecionar algo que estava prestes a acabar avisando que é necessário solicitar estoque de reposição. para o vendedor apareceria outro painel com as informações relevantes ao trabalho dele. Contendo uma pesquisa sobre preços dos produtos frequentemente comprados, quais são os produtos que estão a ponto de chegar a reserva de estoque.Talvez estes painéis representem grande tráfego na rede e alto consumo de processamento, mas tornar o sistema algo que traga valor aos usuários é o melhor caminho.Talvez as telas que forneçam informações, tornem desnecessários preencher tantas informações para um cadastro.<br />
Outro grande problema são as telas de cadastro, por exemplo&#8230; se eu for cadastrar uma rua, certamente eu já estarei no local em que desejo desenha-la neste ponto algumas informações não precisarão ser preenchidas pois o desenho já estará posicionado sobre algum pais, estado, cidade e bairro então pra que digitar tudo isso novamente? bom pra poupar processamento? se seu sistema não puder fazer uma busca em tabelas com no maximo 500 registros seu problema é mais grave, resolva sua infra antes de implementar o software.<br />
Tenho quase certeza que o usuário não pedirá isso, pois isso vai onerar um custo e o pobre do usuário não vai pedir, mas se vc fizer um sistema meia boca, sinto lhe informar mas fará só um.<br />
Enfim, para definir essas caracteristicas não acredito que seja necessário criar um protótipo de tela, uma prova conceitual com certeza, mas criar um protótipo para cada tela em algumas hora eu não vejo necessidade, talvez para determinar os padrões e facilitar a visualização pelo usuário, mas para cada tela eu não acho necessário.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simplologia.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simplologia.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simplologia.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simplologia.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simplologia.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simplologia.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simplologia.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simplologia.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simplologia.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simplologia.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simplologia.wordpress.com&blog=2405991&post=18&subd=simplologia&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://simplologia.wordpress.com/2009/11/07/usabilidade-ao-meu-ver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/431087049dc5291990b5737995b20c97?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cldsantos</media:title>
		</media:content>
	</item>
		<item>
		<title>Com tantas linguagens de programação qual escolher?</title>
		<link>http://simplologia.wordpress.com/2009/08/16/com-tantas-linguagens-de-programacao-qual-escolher/</link>
		<comments>http://simplologia.wordpress.com/2009/08/16/com-tantas-linguagens-de-programacao-qual-escolher/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 14:16:24 +0000</pubDate>
		<dc:creator>cldsantos</dc:creator>
		
		<guid isPermaLink="false">http://simplologia.wordpress.com/?p=12</guid>
		<description><![CDATA[
Tenho visto tantas ondas de mercado e tantos xiitas que auto-explodem quando você diz algo contra a linguagem que ele acredita, que me questiono sobre o que é correto. Pra explicar o que penso, imaginemos um cenário que corriqueiramente encontramos:
 &#8211; O 	cliente contrata uma solução em que ele necessita ter 	em mãos um resumo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simplologia.wordpress.com&blog=2405991&post=12&subd=simplologia&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom:0;"><span style="font-family:Verdana,sans-serif;">Tenho visto tantas ondas de mercado e tantos xiitas que auto-explodem quando você diz algo contra a linguagem que ele acredita, que me questiono sobre o que é correto. Pra explicar o que penso, imaginemos um cenário que corriqueiramente encontramos:</span></p>
<p style="margin-bottom:0;"><span style="font-family:Verdana,sans-serif;"> &#8211; O 	cliente contrata uma solução em que ele necessita ter 	em mãos um resumo de suas finanças;</span></p>
<p style="margin-bottom:0;"><span style="font-family:Verdana,sans-serif;"> &#8211; Noutro 	momento ele quer planejar com mais tempo seus pagamentos e 	recebimentos;</span></p>
<p style="margin-bottom:0;"><span style="font-family:Verdana,sans-serif;"> &#8211; Devido 	a tanta informação ele precisa que um processo noturno 	seja executado para conciliar todos pagamentos recebidos com a 	contabilidade e o estoque;</span></p>
<p style="margin-bottom:0;"><span style="font-family:Verdana,sans-serif;">Ufa&#8230; Agora gostaria de convocar um xiita para mostrar uma solução completa com o framework de sua religião&#8230; alguns em java usariam tudo, mas já vi resultados de testes que dizem que ruby e python são bem mais rápidas que java, então, esta seria a melhor solução realmente? Da mesma forma o pessoal de .net descreverá toda gama de soluções que .net dispõem, mas e se os dispositivos móveis não tiverem windows como sistema operacional? Ou se então o cliente deseja utilizar ferramentas livres. </span></p>
<p style="margin-bottom:0;"><span style="font-family:Verdana,sans-serif;">Acho que muitas vezes esquecemos que o sucesso só virá se as necessidades do cliente forem completamente solucionadas, ficar nesta guerra nos bastidores ao meu ver nada contribuí, pois muitas vezes encaramos o cliente como um ignorante que não sabe o que quer.</span></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><span style="font-family:Verdana,sans-serif;">É simples: O sucesso virá se o cliente estiver satisfeito, pouco me importa se isto será feito com fortran, com c, delphi ou ruby and rails. A pergunta é? Você solucionou os problemas do cliente?</span></p>
<p style="margin-bottom:0;">
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simplologia.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simplologia.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simplologia.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simplologia.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simplologia.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simplologia.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simplologia.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simplologia.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simplologia.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simplologia.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simplologia.wordpress.com&blog=2405991&post=12&subd=simplologia&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://simplologia.wordpress.com/2009/08/16/com-tantas-linguagens-de-programacao-qual-escolher/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/431087049dc5291990b5737995b20c97?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cldsantos</media:title>
		</media:content>
	</item>
		<item>
		<title>Pensamentos sobre desenvolvimento</title>
		<link>http://simplologia.wordpress.com/2009/08/12/pensamentos-sobre-desenvolvimento/</link>
		<comments>http://simplologia.wordpress.com/2009/08/12/pensamentos-sobre-desenvolvimento/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 03:08:09 +0000</pubDate>
		<dc:creator>cldsantos</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://simplologia.wordpress.com/?p=5</guid>
		<description><![CDATA[Frequentemente entrei no meio de projetos mal conduzidos. O que nos torna cúmplices e altamente envolvidos, ou alguma vez vc já pisou numa m**** e seu amigo do lado não sentiu o cheiro, o pior é ver que tudo foi resultado de abandono de praticas que a anos são garantia de sucesso.
Na minha experiência o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simplologia.wordpress.com&blog=2405991&post=5&subd=simplologia&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><span style="font-family:Georgia;font-size:13px;line-height:19px;">Frequentemente entrei no meio de projetos mal conduzidos. O que nos torna cúmplices e altamente envolvidos, ou alguma vez vc já pisou numa m**** e seu amigo do lado não sentiu o cheiro, o pior é ver que tudo foi resultado de abandono de praticas que a anos são garantia de sucesso.</span></p>
<p>Na minha experiência o projeto que teve a melhor condução, foi audacioso a ponto de retomar praticas iniciais ao projeto para que pudéssemos nos firmar em requisitos que nos serviram construir fortes alicerces, mas pecamos no contato com o cliente, ultrapassamos o prazo de entrega e não cumprimos alguns pouquíssimos requisitos, o que ao meu ver foi um sucesso.</p>
<p>Enfim, mais conhecimento para a carreira&#8230;</p>
<p>Participar de um projeto de desenvolvimento de software exige doação, envolvimento, temos o luxo de não ver este belo trabalho com os olhares monetários vendo custos, lucros e prejus como nossos superiores, ficamos com a parte apaixonante. Este envolvimento deve nos levar a tomar certas atitudes ao vê-lo saindo do caminho, que tomaríamos se víssemos um parceiro indo para o lado negro da força. É fato que muitas empresas trabalham com vários projetos em paralelo e leiloam recursos entre eles, e isto deve ser evitado ou conduzido de forma que a pessoa consiga ter o este envolvimento e trabalhe sem uma identificação com o que faz. Isto nos remete às questões de planejamento de iterações (sprints ocorrem em projetos com pessoas dedicadas a somente um projeto) e cada iteração tem seu objetivo no decorrer do desenvolvimento, seja ele uma prova de conceito arquitetural, sua implementação ou a construção efetiva. A equipe deve estar comprometida com ele, ou isso não é a sua vida (querido desenvolvedor, programador, tester, analista e etc.)?</p>
<p>De tudo que vi até aqui acho que a combinação de requisitos bem definidos, comprometimento com o projeto, bom planejamento faz com que as coisas funcionem bem, pois sempre vejo problemas sérios sendo justificados com os tais requisitos falhos. E pra poupar essas justificativas empacantes. O jeito é fazer as coisas do jeito certo.</p>
<p>Um grande problema é que por mais que as empresas façam requisitos e planejem iterações, acabam tornando iterações sinonimo de fase, achando que requisitos e casos de uso são escritos em pedra com as ordens de um ser superior (chamado cliente), ou que é impossível construir casos de uso e desenvolve-los na mesma iteração.</p>
<p>Ao chegarmos ao ponto em que estamos levando a sério os requisitos, entendemos o que o cliente precisa, dividimos os casos de uso entre os desenvolvedores e como num passe de mágica esperamos ver um software rápido, seguro, escalável e qualquer outro nome legal que a IBM coloca em suas propagandas saindo do outro lado. Infelizmente mágica é só entretenimento e frequentemente somos iludidos por elas. Se não elencarmos um responsável que seja um ponto de referência na equipe para bolar e tomar conta da arquitetura, ninguém o fará. Logo acreditamos que ao elencarmos esta atividade isso será algo trivial que será feito rapidinho logo após que tivermos colhidos os requisitos e elaborado os casos de uso, NÃO!!! A arquitetura deve ser bolada no principio e deve ser evoluída e mantida, enfim teremos trabalho até o fim da construção com ela. Afinal é com ela que cumpriremos muitas vezes os requisitos não-funcionais.</p>
<p>Testes&#8230;<span> </span><strong>T</strong>rabalho<span> </span><strong>E</strong>terno<span> </span><strong>S</strong>empre feito por<span> </span><strong>T</strong>odos da<span> </span><strong>E</strong>quipe,<span> </span><strong>S</strong>empre!!!</p>
<p>É realmente assim que funciona, verifique os requisitos, os casos de uso a arquitetura candidata, os diagramas, teste o código, a funcionalidade e o software.</p>
<p>Logicamente tudo muito bem organizado em um cronograma que também pode ser verificado, não há problemas nisso eu garanto.</p>
<p>Alguns podem ser rígidos quanto ao esforço exigido nesta árdua tarefa, você poderá justificar com os conceitos que tem, mas sem dinheiro no bolso o projeto não vai pra frente, então automatize tudo que puder, e infelizmente eu não vi até hoje nenhuma ferramenta que faça isso sozinha e você terá que custumizar a sua para o seu projeto, ou seja, terá que implementar as classes para os junits, nunits, runits, a, b,  c units afora. Mas isto felizmente lhe dará o impacto de uma mudança em seu projeto, fará com que esta mesma mudança não dispare um retrabalho braçal e fará com que vc consiga justificar a implementação de algo que distingue do objetivo de implementar o que o caso de uso pede, pois os ganhos são enormes.</p>
<p>Pois bem das atividades principais acho que vimos todas que são realmente importantes de uma forma genérica, haverão problemas de integração, de retrabalho de testes funcionais, mas lhe garanto que se sua equipe faz tudo que foi citado os problemas serão muito menores, muito mesmo&#8230;</p>
<p>Nada como fazer do jeito certo para simplificar as coisas&#8230;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simplologia.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simplologia.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simplologia.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simplologia.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simplologia.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simplologia.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simplologia.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simplologia.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simplologia.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simplologia.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simplologia.wordpress.com&blog=2405991&post=5&subd=simplologia&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://simplologia.wordpress.com/2009/08/12/pensamentos-sobre-desenvolvimento/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/431087049dc5291990b5737995b20c97?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cldsantos</media:title>
		</media:content>
	</item>
		<item>
		<title>Ferramenta de automação de testes de UI &#8211; Selenium</title>
		<link>http://simplologia.wordpress.com/2007/12/29/ferramenta-de-automatizacao-de-testes-selenium/</link>
		<comments>http://simplologia.wordpress.com/2007/12/29/ferramenta-de-automatizacao-de-testes-selenium/#comments</comments>
		<pubDate>Sat, 29 Dec 2007 14:17:03 +0000</pubDate>
		<dc:creator>cldsantos</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[automação;testes;regressivo;interface]]></category>

		<guid isPermaLink="false">http://simplologia.wordpress.com/2007/12/29/ferramenta-de-automatizacao-de-testes-selenium/</guid>
		<description><![CDATA[Uma ferramenta que efetua testes em sua aplicação web como se um usuário a estivesse usando.
Permite que vc bole um script descrevendo os passos que o teste deve seguir e descubra se o teste foi bem sucedido.
Fantástico, não precisamos mais ficar fazendo aquele trabalho de macaco adestrado, testando manualmente uma interface de cadastro&#8230; Será???
Bom, para [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simplologia.wordpress.com&blog=2405991&post=4&subd=simplologia&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Uma ferramenta que efetua testes em sua aplicação web como se um usuário a estivesse usando.</p>
<p>Permite que vc bole um script descrevendo os passos que o teste deve seguir e descubra se o teste foi bem sucedido.<br />
Fantástico, não precisamos mais ficar fazendo aquele trabalho de macaco adestrado, testando manualmente uma interface de cadastro&#8230; Será???<br />
Bom, para a ferramenta funcionar vc terá que bolar um script, poutz&#8230; só mudamos a forma de trabalho de nosso bichinho. Mas e se algo pudesse gravar as minhas ações perante a interface web que estou utilizando&#8230; clique aqui, digite a usuário e senha, clique em confirmar, clique lá, clique cá, verifique se foi escrita a mensagem informando que o usuário está logado? hummm Genial!!!<br />
Seu pedido é uma ordem&#8230; o Selenium IDE faz isso pra vc&#8230; como um gravador de macros do M$ Office. Vc instala um complemento no FireFox e pode gravar seus passos ao usar seu site&#8230;</p>
<p>Agora pense naquela idéia maluca que seu professor sempre dizia sobre os testes regressivos onde a qualquer mudança em seu sistema o correto seria testá-lo completamente para certificar-se que está tudo nos conformes&#8230; bom conseguiram resolver este probleminha massante&#8230;</p>
<p>Mas eu ainda terei que efetuar ao menos uma vez aquele trabalhinho de macaco&#8230; e se eu mudar a interface, opa&#8230; faça o teste novamente para alterar o antigo script&#8230;</p>
<p>Então tá&#8230; temos o Selenium Remote Control&#8230;</p>
<p>Pronto&#8230; agora está completo e não podemos reclamar de nada. Com o Selenium RC, podemos contruir uma aplicação que efetue os testes, ou seja, imagine que um programador muito bão (um mineirinho esperto) desenvolveu uma interface que é montada dinamicamente através de reflection, onde os ids dos campos tem o nome dos atributos das classes, utilizando reflection também é possível montar os testes dinamicamente&#8230; Vc consulta esta classe, obtém o tipo, tamanho do campo e etc. com isso podemos efetuar testes aleatórios inserindo textos e caractéres especiais em campos numéricos e ver como o site se comporta&#8230; apareceu aquela bunita telinha do tomcat&#8230; tchanammm um erro&#8230;</p>
<p>O Selenium Core lhe fornece toda a biblioteca para efetuar a interação com a pagina via programação&#8230;</p>
<p>Exemplo:</p>
<pre style="display:inline;"><i>import com.thoughtworks.selenium.*;
import junit.framework.*;
public class GoogleTest extends TestCase {
    private Selenium browser;
    public void setUp() {
        browser = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.google.com");
        browser.start();
    }

    public void testGoogle() {
        browser.open("http://www.google.com/webhp?hl=en");
        browser.type("q", "hello world");
        browser.click("btnG");
        browser.waitForPageToLoad("5000");
        assertEquals("hello world - Google Search", browser.getTitle());
    }

    public void tearDown() {
        browser.stop();
    }
}</i></pre>
<p>O pessoal do OpenQA está de parabéns&#8230;</p>
<p>http://www.openqa.org/selenium/</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/simplologia.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/simplologia.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simplologia.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simplologia.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simplologia.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simplologia.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simplologia.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simplologia.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simplologia.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simplologia.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simplologia.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simplologia.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simplologia.wordpress.com&blog=2405991&post=4&subd=simplologia&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://simplologia.wordpress.com/2007/12/29/ferramenta-de-automatizacao-de-testes-selenium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/431087049dc5291990b5737995b20c97?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cldsantos</media:title>
		</media:content>
	</item>
		<item>
		<title>Vamos descomplicar essa avalanche de inovações que nos bombardeiam?</title>
		<link>http://simplologia.wordpress.com/2007/12/29/vamos-descomplicar-essa-avalanche-de-inovacoes-que-nos-bombardeiam/</link>
		<comments>http://simplologia.wordpress.com/2007/12/29/vamos-descomplicar-essa-avalanche-de-inovacoes-que-nos-bombardeiam/#comments</comments>
		<pubDate>Sat, 29 Dec 2007 05:07:29 +0000</pubDate>
		<dc:creator>cldsantos</dc:creator>
				<category><![CDATA[Dia-a-dia]]></category>

		<guid isPermaLink="false">http://simplologia.wordpress.com/2007/12/29/vamos-descomplicar-essa-avalanche-de-inovacoes-que-nos-bombardeiam/</guid>
		<description><![CDATA[Navegando pela net a procura de ferramentas que facilitem meu dia-a-dia como programador me deparei com uma série de blogs, sites de fabricantes e geniais inventores focados cada um em vender seu belo peixe ou demosntrar que em sua lista existem as mais novas bugigangas lançadas no mercado&#8230; ooohhh isso é muito divertido&#8230; descobrir este [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simplologia.wordpress.com&blog=2405991&post=3&subd=simplologia&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Navegando pela net a procura de ferramentas que facilitem meu dia-a-dia como programador me deparei com uma série de blogs, sites de fabricantes e geniais inventores focados cada um em vender seu belo peixe ou demosntrar que em sua lista existem as mais novas bugigangas lançadas no mercado&#8230; ooohhh isso é muito divertido&#8230; descobrir este monte de inovações as quais exigiram boa parte de seu tempo. Mas qual o verdadeiro ganho? demonstrar para os seus que é um profissional atualizado e está na crista da onda? Resolver velhos problemas com uma nova perspectiva de uma solução?</p>
<p>Bom, acabei descobrindo que saber do ultimo modelo do pen drive que vem pintadinho com um personagem engraçadinho ou ver que exite uma ferramenta que tira de vc aquele suspiro de &#8220;poutz&#8230; pq não pensei nisso antes&#8221; mas na hora H deixa a desejar&#8230; não evoluem meu ambiente de trabalho, não melhoram minha produtividade, não aumentam o tempo que dedico a minha família e as tantas coisas saudáveis que por desperdício deste deixamos de lado&#8230;</p>
<p>Então inicio este projeto com o intuito de refletir sobre uso destas inovações relacionando aos ganhos que realmente contribuem para o enrigecimento dos pilares que dão significado as nossas vidas.</p>
<p>Bom&#8230;&#8230; boa viagem a todos nós&#8230;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/simplologia.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/simplologia.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simplologia.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simplologia.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simplologia.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simplologia.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simplologia.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simplologia.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simplologia.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simplologia.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simplologia.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simplologia.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simplologia.wordpress.com&blog=2405991&post=3&subd=simplologia&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://simplologia.wordpress.com/2007/12/29/vamos-descomplicar-essa-avalanche-de-inovacoes-que-nos-bombardeiam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/431087049dc5291990b5737995b20c97?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cldsantos</media:title>
		</media:content>
	</item>
	</channel>
</rss>