<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7812228286413292109</id><updated>2011-12-08T13:10:45.891-08:00</updated><title type='text'>Blog de arquitetura de software do Dino</title><subtitle type='html'>Aqui espero conseguir expressar minhas idéias e experiências sobre arquitetura de software, pelo menos é a idéia inicial....</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://barkadodino.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://barkadodino.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dino</name><uri>http://www.blogger.com/profile/18012974835218119575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7812228286413292109.post-2049702866518963959</id><published>2009-12-03T12:40:00.000-08:00</published><updated>2009-12-03T12:44:19.764-08:00</updated><title type='text'>Aprendendo com quem já fez</title><content type='html'>Já que o dia é de referências, o sr David Lojudice Sobrinho postou hoje uma &lt;a href="http://cquesabe.blogspot.com/2009/12/escalabilidade-de-web-sites-ou-como-e.html"&gt;apresentação&lt;/a&gt; de sua autoria, como trabalho de conlusão da pós graduação, sobre escalabilidade de sites web. Neste trabalho ele analisou a arquitetura de grandes sites em busca de características e técnicas comuns a eles no que se refere a escalabilidade, também vale a visita&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7812228286413292109-2049702866518963959?l=barkadodino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://barkadodino.blogspot.com/feeds/2049702866518963959/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://barkadodino.blogspot.com/2009/12/aprendendo-com-quem-ja-fez.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/2049702866518963959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/2049702866518963959'/><link rel='alternate' type='text/html' href='http://barkadodino.blogspot.com/2009/12/aprendendo-com-quem-ja-fez.html' title='Aprendendo com quem já fez'/><author><name>Dino</name><uri>http://www.blogger.com/profile/18012974835218119575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7812228286413292109.post-4426356469752757792</id><published>2009-12-03T12:10:00.000-08:00</published><updated>2009-12-03T12:36:13.891-08:00</updated><title type='text'>Web em Tempo real</title><content type='html'>Há algum tempo atrás, anos na verdade, eu estava trabalhando em um projeto VOIP e, entre outros, um dos desafios era mostrar na página web do usuário do serviço de telefonia um indicador de chamadas, algo que o avisasse que o telefone ia tocar, quem estava ligando, algo que permitisse ao usuário acompanhar os status das ligações correntes, entre outras coisas. &lt;div&gt;Apesar de parecer simples a princípio, o desafio se mostrou bastante interessante graças a uma restrição não muito comum (naquela época) quando se pensava em aplicações web, a informação tinha que acontecer praticamente em tempo real, ao mesmo tempo que mandávamos um pacote SIP para um device (um telefone IP ou um softphone) tínhamos que fazer &lt;i&gt;push&lt;/i&gt; desta informação para uma página web! Como  fazer?&lt;/div&gt;&lt;div&gt;Após algum tempo de pesquisa acabamos por optar por uma técnica hoje bastante difundida, o &lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Push_technology#Long_polling"&gt;long polling&lt;/a&gt; &lt;/i&gt; e foram escritas algumas dezenas de linhas de código para fazer com que tudo funcionasse. &lt;/div&gt;&lt;div&gt;Os problemas começaram quando começamos a nos deparar com inesperados problemas de performance no servidor http, quando o código não funcionava em diferentes browsers, quando qualquer manutenção se tornava um tormento.&lt;/div&gt;&lt;div&gt;Depois de um bom tempo fora do projeto, hoje já nem sei se isto tudo ainda existe, se está em uso e muito menos como está sua arquitetura e seu código, mas por um destes acasos do destino o Sr Luis Cipriani, um dos malucos do núcleo de pesquisa e desenvolvimento da empresa onde trabalho atualmente, fez uma apresentação no &lt;a href="http://www.devinsampa.com.br/"&gt;DevInSampa&lt;/a&gt; tendo como tema "&lt;a href="http://agaelebe.blip.tv/file/2914797/"&gt;Web em tempo real&lt;/a&gt;", além de ser uma ótima apresentação, foi inevitável pensar: "era isso!". &lt;/div&gt;&lt;div&gt;A arquitetura, os requisitos, mesmo as decisões de design e implementação são simplesmente a melhor resposta ao problema do "status de chamada" que vi até agora. Vale a pena investir um tempo assistindo a apresentação e codando um exemplos das tecnologias citadas. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7812228286413292109-4426356469752757792?l=barkadodino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://barkadodino.blogspot.com/feeds/4426356469752757792/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://barkadodino.blogspot.com/2009/12/web-em-tempo-real.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/4426356469752757792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/4426356469752757792'/><link rel='alternate' type='text/html' href='http://barkadodino.blogspot.com/2009/12/web-em-tempo-real.html' title='Web em Tempo real'/><author><name>Dino</name><uri>http://www.blogger.com/profile/18012974835218119575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7812228286413292109.post-1397769262174246604</id><published>2009-11-26T12:12:00.000-08:00</published><updated>2009-11-26T13:33:30.648-08:00</updated><title type='text'>arquitetos, tradeoffs , consensos e afins</title><content type='html'>Segundo a &lt;a href="http://pt.wikipedia.org/wiki/Trade-off"&gt;wikipedia:&lt;/a&gt; "&lt;b&gt;Trade-off&lt;/b&gt; ou &lt;b&gt;tradeoff&lt;/b&gt; é uma expressão que define uma situação em que há &lt;a href="http://pt.wikipedia.org/wiki/Conflito" title="Conflito"&gt;conflito&lt;/a&gt; de escolha. Ele se caracteriza em uma ação econômica que visa à resolução de problema mas acarreta outro, obrigando uma escolha".&lt;br /&gt;&lt;br /&gt;O dia a dia das pessoas que trabalham com desenvolvimento de software é recheado de escolhas, é comum ter que decidir entre este ou aquele estilo, TDD ou BDD, este ou aquele framework, etc.&lt;br /&gt;Cada uma dessas decisões trazem em si uma boa carga de stress e ansiedade já que elas acarretam, conforme explicado acima, algum nível de perda.&lt;br /&gt;&lt;br /&gt;Quando se trata de decisões de longo prazo, aquelas que uma vez tomadas é complicado (e caro) voltar atrás, a decisão em geral não pode ser tomada por uma única pessoa, entra em cena a busca pelo consenso.&lt;br /&gt;&lt;br /&gt;Cada um dos stakeholders tem seus argumentos a favor e contra, e é bastante comum que haja grande conflito de interesses. No meio deste novelo de interesses em geral está o arquiteto, atuando numa das suas mais importantes tarefas: buscar o consenso de forma a sair com uma solução que contemple  ao mesmo tempo as necessidades de negócio do projeto, as necessidades técnicas de desenvolvimento e também as "garantias" que todo sistema precisa para funcionar em produção.&lt;br /&gt;&lt;br /&gt;Em uma recente &lt;a href="http://www.infoq.com/presentations/Generic-Specific-Tradeoffs-Stefan-Tilkov"&gt;palestra&lt;/a&gt; Stefan Tilkov aborda o tema "trade-off" de forma bastante interessante, partindo da premissa que sempre que alguém se deparar com um trade-off a resposta padrão é &lt;span style="font-weight: bold;"&gt;depende,&lt;/span&gt; ele aborda os trade-offs existentes entre soluções genéricas e específicas e apresenta algumas características que devem ser levadas em consideração por alguém com a missão de decidir.&lt;br /&gt;&lt;br /&gt;Fazer escolhas, decidir entre a menor perda e o maior risco,  a capacidade de criar uma lista de caracteríscticas ou argumentos a favor e contra cada lado do conflito e por fim, através de argumentação e negociação, chegar a uma decisão que represente um cenário aceitável para todos os envolvidos é algo bastante comum, dia a dia mesmo, para alguém de negócios.&lt;br /&gt;&lt;br /&gt;O que nos leva a uma conclusão interessante: um arquiteto (neste contexto) é um desenvolvedor com experiência e conhecimentos técnicos avançados mas com um viés de negócios na bagagem, com habilidades normalmente encontradas em pessoas não técnicas.&lt;br /&gt;&lt;br /&gt;O que é por si só um trade-off, uma vez que desenvolve capacidades de negócio, se distancia do dia a dia técnico, das especificidades que fazem um bom técnico especialista. &lt;br /&gt;&lt;br /&gt;Portanto, para quem está pensando se é melhor ser um arquiteto de software ou investir na carreira de especialista a resposta é: DEPENDE. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7812228286413292109-1397769262174246604?l=barkadodino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://barkadodino.blogspot.com/feeds/1397769262174246604/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://barkadodino.blogspot.com/2009/11/arquitetos-tradeoffs-consensos-e-afins.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/1397769262174246604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/1397769262174246604'/><link rel='alternate' type='text/html' href='http://barkadodino.blogspot.com/2009/11/arquitetos-tradeoffs-consensos-e-afins.html' title='arquitetos, tradeoffs , consensos e afins'/><author><name>Dino</name><uri>http://www.blogger.com/profile/18012974835218119575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7812228286413292109.post-9095922182784024689</id><published>2009-09-17T18:28:00.000-07:00</published><updated>2009-09-17T19:34:14.973-07:00</updated><title type='text'>Débitos técnicos e o Grameen?</title><content type='html'>Estou lendo a biografia do &lt;a href="http://www.atica.com.br/resenhas/?r=369"&gt;Yunus, o banqueiro dos pobres&lt;/a&gt;, nela é contada a história da criação do banco Grameen, um banco especializado em microcrédito que concede empréstimos à parcela mais miserável da população de Bangladesh há mais de 20 anos.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Quase ao mesmo tempo me deparei com um &lt;a href="http://mergulhao.info/2009/8/17/colecionar-d-bitos-t-cnicos-n-o-maneiro-n-o"&gt;post no blog do mergulhão&lt;/a&gt; onde ele compara débitos técnicos de projetos de software com dívidas, concluindo que se alguém coleciona débitos técnicos sobre débitos técnicos o efeito é o mesmo do devedor que pega um empréstimo para pagar outro, ou seja, uma hora vai quebrar, é só questão de tempo.&lt;br /&gt;&lt;/div&gt;Tá, mas o que uma coisa tem a ver com a outra? Na minha opinião as coisas se cruzam na parte do livro onde o autor descreve a forma como o banco lida com os pagamentos: ao invés de um grande pagamento ao final do período, eles recebem pagamentos semanais. Isto foi feito para que o valor da parcela fosse pequena o bastante para ser paga sem que o devedor "sinta". Segundo Yunus, valores pequenos evitam que os devedores sintam-se tentados a arranjar desculpas para não efetuar os pagamentos.&lt;br /&gt;Fazendo analogia com o cotidiano vivido por desenvolvedores ágeis, seria até aceitável terminar uma sprint com alguns débitos técnicos a fim de manter o prazo de entrega, desde que esta dívida fosse imediatamente transformada em uma história (empréstimo) que teria como objetivo refatorar o código (pequenos pagamentos) até que os débitos técnicos fossem eliminados (empréstimo quitado).&lt;br /&gt;Neste cenário, comprometer-se com um sprint backlog cheio de novas funcionalidades sem corrigir os débitos passados seria o mesmo que pagar juros sobre juros, até pode funcionar por um tempo, mas...&lt;br /&gt;Outra solução normalmente empregada é a sprint técnica,  recheada de correções, ajustes e melhorias. Esta saída seria o equivalente ao tal "grande pagamento no final" e o seu grande incoveniente é o mesmo citado por Yunus, todos vão certamente procurar todos os tipos de argumentos para evitá-lo ou postergá-lo, já que o "montante" (uma sprint inteira) é muito alto e vultoso.&lt;br /&gt;É óbvio que o ideal é que simplesmente não existam débitos técnicos ao final de uma sprint, ou mesmo ao terminar uma história, assim como o ideal é que não precisássemos recorrer a empréstimos, cartões de crédito, etc. Mas a realidade não liga muito para o ideal, e as vezes simplesmente não dá para evitar. Nestas situações o melhor é reconhecer logo a "dívida", antes que os juros tornem-a insolúvel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7812228286413292109-9095922182784024689?l=barkadodino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://barkadodino.blogspot.com/feeds/9095922182784024689/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://barkadodino.blogspot.com/2009/09/estou-lendo-biografia-do-yunus-o.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/9095922182784024689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/9095922182784024689'/><link rel='alternate' type='text/html' href='http://barkadodino.blogspot.com/2009/09/estou-lendo-biografia-do-yunus-o.html' title='Débitos técnicos e o Grameen?'/><author><name>Dino</name><uri>http://www.blogger.com/profile/18012974835218119575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7812228286413292109.post-760146505338080762</id><published>2009-08-13T14:47:00.001-07:00</published><updated>2009-08-13T14:59:05.961-07:00</updated><title type='text'>Tem fórum novo na área</title><content type='html'>Um grande amigo deu mais um passo importante na carreira! O sr &lt;a href="http://www.fernandocampos.pro.br/"&gt;Fernando Campos&lt;/a&gt; se preparou bastante e está bastante animado com mais esse desafio, está dando aulas na Unip. Não deixa de ser interessante ver quanto um cara muda ao longo de 10 anos... sair de aluno desatento (pra pegar leve) a professor dedicado foi realmente algo surpreendente.&lt;br /&gt;Uma das ferramentas que ele preparou para dar suporte a suas aulas é um fórum, do qual passo a ser eventual contribuinte.&lt;br /&gt;Comecei falando de bancos de dados, &lt;a href="http://www.fernandocampos.pro.br/forum/index.php?topic=5.0"&gt;uma questão antiga e genérica, com uma resposta ainda mais antiga e genérica :)&lt;/a&gt;&lt;br /&gt;Para os mais "antigos" que estiverem afim de ajudar, dá uma passada lá e deixem suas respostas/opiniões, para os novatos, perguntem!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7812228286413292109-760146505338080762?l=barkadodino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://barkadodino.blogspot.com/feeds/760146505338080762/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://barkadodino.blogspot.com/2009/08/tem-professor-novo-na-area.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/760146505338080762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/760146505338080762'/><link rel='alternate' type='text/html' href='http://barkadodino.blogspot.com/2009/08/tem-professor-novo-na-area.html' title='Tem fórum novo na área'/><author><name>Dino</name><uri>http://www.blogger.com/profile/18012974835218119575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7812228286413292109.post-6050113622226912027</id><published>2009-07-30T10:20:00.000-07:00</published><updated>2009-07-30T10:39:12.502-07:00</updated><title type='text'>To de volta, sipservlets e RTPclients</title><content type='html'>Depois de muitos e muitos meses resolvi voltar a ativa, agora com mais força, espero eu....&lt;br /&gt;&lt;br /&gt;Durante tres anos, de 2005 a 2008 trabalhei para a &lt;a href="http://www.voicetechnology.com.br/"&gt;Voice Technology&lt;/a&gt; construindo uma plataforma VOIP para a &lt;a href="http://www.brastel.ne.jp/"&gt;Brastel&lt;/a&gt;, lembro-me que durante as primeiras conversas ainda no começo do projeto sempre nos deparávamos com o problema de como inserir o sip no contexto javaEE. Existiam drafts indicando que o caminho era construir um Resource Adapter, outros falavame em Servlets (sipservlets) e por fim, acabamos por fazer um serviço que se integrou ao JBoss através do protocolo JMX.&lt;br /&gt;&lt;br /&gt;Apesar de ser uma decisão acertada naquele momento, a equipe sempre questionou em que momento alguma dessas alternativas se tornaria padrão de fato no mercado, talvez este padrão ainda não exista mas hoje a galera que defende o sipservlet recebeu um ótimo reforço nos seus argumentos. Foi lançada a versão 1.0 da implementação da Mobicents para a versão 1.1 do sipservlet, compatível com tomcat e jboss e licenciado sob LGPL.&lt;br /&gt;&lt;br /&gt;Sem dúvida é um grande avanço em termos de estabilidade, padronização e principalmente integração entre as plataformas web e voip, agora é meter a mão na massa para constatar na prática as vantagens teóricas citadas &lt;a href="http://mobicents-sip-servlets.blogspot.com/2009/07/mobicents-sip-servlets-10-released.html"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Em tempo, a voice labs está desenvolvento uma &lt;a href="http://code.google.com/p/rtpproxy-client/"&gt;api java&lt;/a&gt; para interfacear como rtpproxy, resolvendo assim problemas de nat, escalabilidade, distribuição de carga, entre outros, vale dar uma olhada.&lt;br /&gt;&lt;br /&gt;[]s&lt;br /&gt;Dino&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7812228286413292109-6050113622226912027?l=barkadodino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://barkadodino.blogspot.com/feeds/6050113622226912027/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://barkadodino.blogspot.com/2009/07/to-de-volta-sipservlets-e-rtpclients.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/6050113622226912027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/6050113622226912027'/><link rel='alternate' type='text/html' href='http://barkadodino.blogspot.com/2009/07/to-de-volta-sipservlets-e-rtpclients.html' title='To de volta, sipservlets e RTPclients'/><author><name>Dino</name><uri>http://www.blogger.com/profile/18012974835218119575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7812228286413292109.post-1200156912237916330</id><published>2008-12-12T05:53:00.001-08:00</published><updated>2008-12-13T09:07:51.185-08:00</updated><title type='text'>O ciclo de morte dos sistemas</title><content type='html'>No começo tudo são flores, a equipe é montada, a arquitetura definida, os requisitos mal e porcamente levantados e todos trabalham com afinco até que o sistema entra em prodção, então alguns membros chave do grupo saem, outros perdem o interesse, o sistema começa a sofrer manutenções até que um dia alguém diz: "Não posso fazer a alteração que o sr está pedindo porque não sei se a alteração não vai quebrar outra funcionalidade"&lt;br /&gt;&lt;br /&gt;Quem com alguns anos de experiência na área de desenvolvimento de sistemas nunca se deparou com um frase como essa? Ela demarca o princípio do fim, a partir daí o sistema começa a ficar engessado, estático, para de se desenvolver e entra na fase do "só arruma o que está dando problema", daí para o "joga fora e faz de novo" é um pulinho.&lt;br /&gt;&lt;br /&gt;Mas como evitar que isto aconteça? Simples:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Adote métodos de desenvolvimento que fomentem a comunicação e consequente compartilhamento do conhecimento (SCRUM por exemplo)&lt;/li&gt;&lt;li&gt;Invista em testes de regressão automatizando o máximo possível&lt;/li&gt;&lt;li&gt;Tenha a coragem de mudar quando necessário, mude as pessoas, a plataforma, a funcionalidade, etc&lt;/li&gt;&lt;li&gt;Integre continuamente&lt;/li&gt;&lt;li&gt;Invista nas pessoas, na formação e no bem estar delas&lt;/li&gt;&lt;/ul&gt;Mas (sempre existe o mas) é complicado justificar aos investidores do projeto o tempo (e dinheiro) gasto na implantação de práticas de engenharia , então  talvez esta seja a justificativa: proteja seu investimento atual através do uso das boas práticas de engenharia, ou então dentro de algum tempo voce terá que dispor de tempo, pessoas e dinheiro para fazer tudo de novo.&lt;br /&gt;&lt;br /&gt;por hoje é só&lt;br /&gt;[]s&lt;br /&gt;Dino&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7812228286413292109-1200156912237916330?l=barkadodino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://barkadodino.blogspot.com/feeds/1200156912237916330/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://barkadodino.blogspot.com/2008/12/o-ciclo-de-morte-dos-sistemas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/1200156912237916330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/1200156912237916330'/><link rel='alternate' type='text/html' href='http://barkadodino.blogspot.com/2008/12/o-ciclo-de-morte-dos-sistemas.html' title='O ciclo de morte dos sistemas'/><author><name>Dino</name><uri>http://www.blogger.com/profile/18012974835218119575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7812228286413292109.post-3810758304673535706</id><published>2008-11-13T16:50:00.000-08:00</published><updated>2008-11-14T08:52:03.117-08:00</updated><title type='text'>O ciclo virtuoso do ensinamento/aprendizado</title><content type='html'>Vou insistir no assunto conhecimento e aprendizado porque realmente acredito que vale a pena, já que cada vez mais isso se torna um &lt;a href="http://www.bnet.com/2439-13240_23-210143.html"&gt;diferencial&lt;/a&gt; no mercado de trabalho.&lt;br /&gt;Quando eu estava na faculdade tinha um professor de matemática financeira que vivia usando a frase "voces deveriam experimentar a estranha sensação do raciocínio" quando se referia à nossa preguiça mental. Hoje em dia entendi (eu acho) o que ele queria dizer e a aprecio tanto que acrescentaria "experiemente, dá barato!".&lt;br /&gt;E o que isso tem a ver com arquitetura de software ou com tecnologia? Tudo! Escrevi no post anterior que uma das características que considero essenciais para um bom arquiteto - ou um bom profissional da área de TI em geral -  é saber aprender, neste vou além: &lt;span style="font-style: italic;"&gt;um bom arquiteto deve usar sua experiência e conhecimento para ensinar a aprender&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;O arquiteto até pode ser líder mas nunca chefe&lt;/span&gt;&lt;br /&gt;A diferença entre o líder e o chefe é que basicamente o primeiro é um cara que fica no plano de fundo, sem aparecer muito e cujo principal objetivo é levar os liderados ao sucesso, no contexto aqui proposto o sucesso seria o aprendizado, a aquisição do conhecimento. O chefe todo mundo tem e sabe como é.&lt;br /&gt;Dentre as várias estratégias possíveis que poderiam ser usadas para atingir tal objetivo, &lt;a href="http://pt.wikipedia.org/wiki/M%C3%A9todo_Socr%C3%A1tico"&gt;uma&lt;/a&gt; que gosto muito de aplicar consiste em fazer com que o aprendiz chegue a uma conclusão (aprenda) através de perguntas e mais perguntas, sempre dando direcionamento, gerando conflito, mas nunca relelando a resposta em si, até que num dado momento o próprio aprendiz tem o "estalo" que resolve a questão.  Neste instante o cérebro faz sua parte liberando substâncias químicas que dão um certo tipo de &lt;a href="http://www.strategy-business.com/press/freearticle/06207?pg=2"&gt;prazer&lt;/a&gt; (mais ou menos como a adrenalina) e a tal sensação do raciocínio se faz presente, como disse antes, dá barato!&lt;br /&gt;Logicamente existem outros métodos, desde ensinar através de exemplos até as tais "&lt;a href="http://www.infed.org/biblio/communities_of_practice.htm"&gt;comunities of practice&lt;/a&gt;" onde se aprende estudando e observando os mestres (ou membros do core), ou então incentivando a leitura (e porque não escrita) de artigos técnicos e/ou científicos, etc.&lt;br /&gt;O importante é que o aprendiz consiga criar em sua mente a inferência que leva à solução, e não a solução em si, pois a primeira pode ser combinada com outras para solucionar outros tipos de problemas criando assim a base de um cérebro criativo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mas porque não dizer logo o que e como fazer ? &lt;/span&gt;&lt;br /&gt;"Afinal é só dar a ordem, depois cobrar o resultado e pronto. Além do mais, fazer isso (ensinar a aprender) leva tempo, às vezes dá muito trabalho e nem sempre é bem recebido pela equipe".&lt;br /&gt;Entre tantos motivos que consigo pensar, aquele que me parece o mais importante é: porque essa é uma via é de mão dupla, ensinar é a forma mais eficiente de aprendizado.&lt;br /&gt;Pergunte aos seus professores, todos são unânimes em dizer que aprendem coisas novas diariamente com seus alunos, sendo  assim o barato do aprendiz também é o barato do mestre: a aquisição de conhecimento.&lt;br /&gt;Aí está a mágica, o conhecimento gera bem estar, que gera a predisposição a aprender, que realimenta a fonte inicial do ciclo, o mestre, que por sua vez se ve mais disposto ainda a ensinar. É este ciclo virtuoso que devíamos almejar ao escolher o difícil e trabalhoso caminho do ensinamento em detrimento da aparente agilidade de uma ordem.&lt;br /&gt;&lt;br /&gt;bons estudos, bons ensinamentos&lt;br /&gt;t+&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7812228286413292109-3810758304673535706?l=barkadodino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://barkadodino.blogspot.com/feeds/3810758304673535706/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://barkadodino.blogspot.com/2008/11/o-ciclo-virtuoso-do-ensinamentoaprendiz.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/3810758304673535706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/3810758304673535706'/><link rel='alternate' type='text/html' href='http://barkadodino.blogspot.com/2008/11/o-ciclo-virtuoso-do-ensinamentoaprendiz.html' title='O ciclo virtuoso do ensinamento/aprendizado'/><author><name>Dino</name><uri>http://www.blogger.com/profile/18012974835218119575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7812228286413292109.post-8449294104584059443</id><published>2008-10-31T12:46:00.000-07:00</published><updated>2008-11-06T04:16:08.715-08:00</updated><title type='text'>Arquiteto??? Você constrói casas, prédios?</title><content type='html'>Outro dia tive que tentar explicar pela milionésima vez porque fui contratado como arquiteto de soluções. A pergunta mais normal é:&lt;br /&gt;&lt;br /&gt;- mas você não era programador?&lt;br /&gt;&lt;br /&gt;Sim, eu sou e me orgulho muito disso.&lt;br /&gt;&lt;br /&gt;Então:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Qual é a diferença? &lt;/li&gt;&lt;li&gt;O que faz de alguém um arquiteto? &lt;/li&gt;&lt;li&gt;Quais os papéis que ele desempenha?&lt;/li&gt;&lt;/ul&gt;Bom, vamos por partes, de traz para frente.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Quais os papéis que um arquiteto de software/soluções exerce? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O &lt;a href="http://download.microsoft.com/download/3/d/7/3d718c6c-e5f3-41e3-b346-6e9f114e2531/journal15_english.pdf.zip"&gt;The Architecture Journal&lt;/a&gt; dedica sua edição de #15 inteiramente a este assunto, nem vou tentar resumir aqui, recomendo fortemente a leitura. Ou se preferir tem&lt;a href="http://www.wboton.com/node/34"&gt; este ótimo post&lt;/a&gt; que resume bem o assunto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;O que faz de alguém um arquiteto?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Existem algumas abordagens para definir um arquiteto, algumas analisam o lado técnico, outras a capacidade de síntese, outras ainda defendem que é um cara que consegue entender as necessidades de negócio e ao mesmo tempo tem o conhecimento técnico necessário para desenhar a melhor solução possível. Este último para mim chamou-se um dia Analista de Sistemas e já faz um tempo que não ouço falar dele.&lt;br /&gt;Eu prefiro uma abordagem, digamos, mais humanista. Para mim o que faz um programador se diferenciar dos outros (&lt;a href="http://www.codinghorror.com/blog/archives/001004.html"&gt;sair dos 80%???&lt;/a&gt;) e se tornar arquiteto   é o espírito inquieto, a persistencia, o equilíbrio e principalmente o estudo.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;O espírito inquieto&lt;/span&gt;&lt;br /&gt;Sabe aquele moleque que desmonta as coisas pra depois passar dias tentando entender onde deveriam estar as peças que sobraram? Conhece aquela criança que de cada 10 palavras ditas 11 são "por que"? Sabe aquele nerd do colégio que não para de encher a paciência dos professores enquanto não entende a matéria? Sabe aquele curioso que mexe em tudo, que tenta saber um pouco de tudo?&lt;br /&gt;Então, esses são alguns fatores (entre milhares de outros) que indicam uma pessoa com a predisposição a &lt;a href="http://www.wboton.com/node/37"&gt;ir além&lt;/a&gt;, a sair da caixa e ver o quadro geral, a distrinchar um problema até chegar à sua causa raiz e só então propor uma solução. Este tipo de pessoa tem mais chances de se diferenciar como programador e se tornar arquiteto, não que alguém sem essas características não o possa, é só que para alguém assim o caminho é mais suave.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A Persistência&lt;/span&gt;&lt;br /&gt;Muito já se falou sobre isso mas é sempre bom lembrar, não basta ser genial nas idéias é preciso persistir até conseguir provar com algo material que suas idéias são viáveis. Um ex-colega de trabalho (e bom amigo) costuma usar um termo para este assunto, ele diz que iniciativa é bom, mas é imprescindível ter "acabativa", ou seja, de nada adianta começar n coisas e terminar  nenhuma delas.&lt;br /&gt;&lt;br /&gt;O Equilíbrio&lt;br /&gt;Se alguém é extremamente radical, esta pessoa pode ter problemas em se tornar arquiteto de software pelo simples motivo de que a radicalidade acaba tirando da pessoa a capacidade de ver o quadro geral, tira a imparcialidade necessária para enxergar corretamente  o problema e limita o número de ferramentas disponíveis para solucioná-lo.&lt;br /&gt;Um exemplo disso é a  pessoa que é radicalmente a favor de uma linguagem de programação a ponto de não enxergar pontos positivos em qualquer outra. Isto ocorre com sistemas operacionais , IDEs, navegadores, plataformas de desenvolvimento, times de futebol, religião, poítica, marca de cerveja, música, etc.&lt;br /&gt;O ponto aqui não é exatamente o equilíbrio em relação a questões tecnológicas, mas, &lt;a href="http://torvalds-family.blogspot.com/2008/11/black-and-white.html"&gt;num sentido mais amplo&lt;/a&gt;, avaliar a pessoa pelo modo como ela se posiciona em relação a questões polêmicas, se sua posição é geralmente ponderada, o caminho para esta também tende a ser suave.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;O Estudo&lt;/span&gt;&lt;br /&gt;Os arquitetos que conheço são absolutamente malucos por informação, os caras estudam o tempo todo, sobre várias coisas, ao mesmo tempo. Neste ponto tenho que concordar, a pessoa tem que ter uma capacidade de síntese muito boa para conseguir rapidamente ler (ou ver, ouvir, etc), entender, filtrar e classificar a informação.&lt;br /&gt;Neste ponto as características citadas anteriormente agem juntas fazendo com que a pessoa estude a fundo um assunto (persistente) mas não a ponto de se viciar nele (equilibrado), faz com que ela mude o foco constantemente (inquieto, curioso) mas ao mesmo tempo mantenha o foco tempo o bastante para digerir e compreender o assunto (de novo persistente).&lt;br /&gt;Mais que ser estudioso, a capacidade de aprender a aprender talvez seja a mais marcante caracteríscta do arquiteto. Numa área onde tudo muda a todo momento, não basta saber, tem que &lt;a href="http://www.harvardbusiness.org/hbsp/hbr/articles/article.jsp?articleID=R0807E&amp;amp;ml_action=get-article&amp;amp;print=true"&gt;saber aprender&lt;/a&gt; e se munir disso para o bem de si próprio e da empresa. Aquele que consegue aprender a aprender também caminha mais tranquilamente no sentido de se diferenciar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Então qual é a diferença? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;De verdade? A diferença está nas escolhas que a pessoa faz ao longo da carreira, talvez antes mesmo de ingressar no mercado de trabalho.&lt;br /&gt;Os que escolheram tentar, fuçar, mexer, quebrar, arrumar, perisistir, aprender coisas novas, ouvir músícas diferentes, conhecer pessoas, estudar filosofia, etc. criaram ao longo da vida uma " "poupança" que lhes permite &lt;span style="font-style: italic;"&gt;ser&lt;/span&gt; diferente, ao invés de &lt;span style="font-style: italic;"&gt;se tornar &lt;/span&gt;diferente. Aos que ainda não &lt;span style="font-style: italic;"&gt;são&lt;/span&gt;, sempre é tempo, basta começar.&lt;br /&gt;&lt;br /&gt;Finalizando, se eu sou um programador? De novo, sou sim. Adoro código, adoro falar de software e hardware, adoro SQL, índices, tabelas, EJBs e C#s.  E sim, sou arquiteto, pelo menos é como me chamam aqui no trabalho, e também me orgulho disso.&lt;br /&gt;&lt;br /&gt;por hoje é só.&lt;br /&gt;T+&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7812228286413292109-8449294104584059443?l=barkadodino.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://barkadodino.blogspot.com/feeds/8449294104584059443/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://barkadodino.blogspot.com/2008/10/arquiteto-voc-constri-casas-prdios.html#comment-form' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/8449294104584059443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7812228286413292109/posts/default/8449294104584059443'/><link rel='alternate' type='text/html' href='http://barkadodino.blogspot.com/2008/10/arquiteto-voc-constri-casas-prdios.html' title='Arquiteto??? Você constrói casas, prédios?'/><author><name>Dino</name><uri>http://www.blogger.com/profile/18012974835218119575</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry></feed>
