<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Inóspito</title>
	
	<link>http://inospito.com</link>
	<description>Uma perspectiva pragmática sobre software e inovação</description>
	<lastBuildDate>Sun, 16 Aug 2009 13:52:16 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain="inospito.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<image>
		<url>http://www.gravatar.com/blavatar/095d6152f817130cda9ca0b3445c4f3c?s=96&amp;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Inóspito</title>
		<link>http://inospito.com</link>
	</image>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/inospito" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Precisamos de arquitectos de software?</title>
		<link>http://inospito.com/2009/08/16/precisamos-de-arquitectos-de-software/</link>
		<comments>http://inospito.com/2009/08/16/precisamos-de-arquitectos-de-software/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 13:52:16 +0000</pubDate>
		<dc:creator>Alves</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://inospito.com/?p=146</guid>
		<description><![CDATA[Faço desenvolvimento de software há quase 10 anos. Por esta altura deveria ser gestor de projecto ou arquitecto de software. Na grande maioria das empresas este é o caminho natural de evolução: começa-se como programador, depois programador sénior e depois, se formos empenhados, em 5 anos passamos a gestores de projecto (para onde é que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=inospito.com&blog=1640819&post=146&subd=inospito&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Faço desenvolvimento de software há quase 10 anos. Por esta altura deveria ser gestor de projecto ou arquitecto de software. Na grande maioria das empresas este é o caminho natural de evolução: começa-se como programador, depois programador sénior e depois, se formos empenhados, em 5 anos passamos a gestores de projecto (para onde é que evoluímos nos 30 anos seguinte é um mistério que não parece preocupar ninguém!).</p>
<p>95% dos meus colegas de curso são agora gestores de projecto. Ao que sei passam muito tempo em reuniões e em frente ao outlook. Muitos deles parecem estar satisfeitos com essa posição, porque já estavam saturados de programar ou (e estes poderão ser os melhores gestores) porque nunca gostaram de programar. Talvez alguns estejam satisfeitos porque os benefícios financeiros são muito interessantes (muito mais interessantes do que se ainda estivessem a programar).</p>
<p>Sobram portanto 5%, que se dividem em dois: aqueles que resolveram criar a sua própria empresa e os arquitectos de software. Em relação aos primeiros, queria desejar-lhes muito boa sorte. Respeito-os tremendamente e gostava sinceramente que fossem uma percentagem maior porque são um dos motores de inovação que Portugal desesperadamente precisa. Em relação aos arquitectos de software, gostava de começar pela <a href="http://en.wikipedia.org/wiki/Software_architect">definição que aparece na Wikipedia</a>, em que esta figura se prende com a complexidade crescente do software nos últimos anos:</p>
<blockquote><p>The software architect concept began to take hold when <a title="Object oriented programming" href="http://en.wikipedia.org/wiki/Object_oriented_programming">object oriented programming</a> (OOP) was coming into more widespread use (in the late 1990s and early years of the 21st Century). OOP allowed ever-larger and more complex applications to be built, which in turn required increased high-level application and system oversight.</p></blockquote>
<p>De seguida, descreve as suas principais responsabilidades que incluem a definição de metodologias de desenvolvimento e o desenho ou escolha de frameworks sobre as quais assentará o desenvolvimento de uma certa aplicação. Não tenho dúvidas que isto são tarefas essenciais no desenvolvimento de software de qualidade. Mas porque razão tem que ser um arquitecto a fazê-las? Eu faço estas tarefas practicamente desde o início da minha carreira. Tinha eu 6 meses de experiência e já estava a propôr um standard para formatação do código à equipa na qual trabalhava. Sim, eu sei, é uma ideia ridícula mas dêem-me um desconto &#8211; eu era um novato! A questão aqui é: não é suposto todos os programadores serem arquitectos de software, na medida em que devem utilizar e melhorar metodologias e ferramentas para atingir os seus objectivos? Ou é suposto haver esta distinção elitista entre os <a href="http://www.joelonsoftware.com/articles/fog0000000018.html">ominiscientes arquitectos astronautas</a> e os vulgares code monkeys?</p>
<p><a href="http://www.flickr.com/photos/sano16/2635716987/"><img class="alignnone size-full wp-image-152" title="Bayon" src="http://inospito.files.wordpress.com/2009/08/2635716987_59b5ecccbf_d.jpg?w=434&#038;h=500" alt="Bayon" width="434" height="500" /></a></p>
<p>Não percebo muito de construção civil mas suponho que faça sentido alguém ser arquitecto sem nunca ter montado uma parede de tijolos. O problema é que programar não tem nada a ver com montar tijolos. Só na cabeça de algumas gestores dilbertianos é que isso faz sentido. É que os tijolos do software não são rectangulares, assumem as formas mais bizarras e conseguir juntá-los sem que o resultado pareça um quadro surrealista não é, claramente, uma tarefa previsível ou repetitiva. Além disso, a Engenharia Civil tem centenas de anos de evolução enquanto a Engenharia Informática tem umas décadas. Isto nem se devia chamar Engenharia, pois esta pressupõe que utilizando princípios matemáticos podemos prever o comportamento de um &#8220;engenho&#8221;.  A haver arquitectos certamente incluiriam nomes como Martin Fowler, Kent Beck, Joshua Bloch ou Linus Torvalds. Tanto quanto sei nenhum se intitula arquitecto. Todos eles continuam a programar e a ajudar outros a programar. O próprio Martin Fowler escreveu um artigo <a href="http://www.martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf" target="_blank">&#8220;Who Needs an Architect?&#8221;</a>, no qual prefere o termo <em>&#8220;guia&#8221;</em> a <em>&#8220;arquitecto&#8221;</em>:</p>
<blockquote><p>(&#8230;) came up with the best name I’ve heard so far: guide, as in mountaineering. A guide is a more experienced and skillful team member who teaches other team members to better fend for themselves yet is always there for the really tricky stuff.</p></blockquote>
<p>Note-se, eu acredito na arquitectura de software. Pensar como vamos ligar os componentes de uma aplicação é uma das tarefas mais interessantes no desenvolvimento de software. Mas é algo que tem que ser feito durante a implementação. Pensa-se, experimenta-se, adapta-se, re-experimenta-se, discute-se, re-experimenta-se, refactoriza-se, re-experimenta-se, num ciclo constante de desenvolvimento.</p>
<p><strong>Precisamos então de arquitectos de software?</strong></p>
<p>Sim, mas os arquitectos são também os programadores. Todos. Acabemos com essa distinção ridícula que só existe para justificar progressões na carreira de quem não quer ser gestor de projecto. Ouvi isto muitos anos e continuo a ouvir: <em>&#8220;quem quer seguir uma carreira técnica evolui para arquitecto de software&#8221;</em>. A teoria é que as empresas não querem pagar salários elevados a quem só programa porque fica demasiado caro. Então criam esta figura de arquitecto, que aparece no início dos projectos, qual Chuck Norris dos computadores, define uma arquitectura fantástica em 3 dias e segue para outro projecto porque este já ficou <em>&#8220;bem encaminhado&#8221;</em>. As mesmas empresas esquecem-se que programar é aquilo que elas fazem por excelência. Elas são pagas para produzir software que resolva os problemas de alguém disposto a pagar. Tudo o resto: arquitectura, documentação, gestão de projecto, planos de qualidade, etc., são artefactos que giram à volta da programação para complementar o produto final. <strong>A tarefa nobre devia ser a programação, não aquilo que anda à volta dela. </strong>Citando <a href="http://www.devx.com/opinion/Article/22649">um artigo da devx</a>:<strong> </strong></p>
<blockquote><p>Deliver code that does what the end users of the code need or want. No more, no less. From Web sites to database applications to games, it&#8217;s all about what your code will do for the end user and not about how you did it. Your end users don&#8217;t care if you used a Booch diagram or anointed blocks with arrows and written descriptions to communicate to the development team how you were going to build the software. They care only that the software works the way they expect it to.</p></blockquote>
<p>Ok, agora que enfureci todos os arquitectos de software que possam vir a ler este blog, sinto-me obrigado a admitir que, embora todos os programadores sejam também arquitectos, alguns são melhores arquitectos do que outros, e por isso é normal e desejável que exista um elemento com mais experiência e mais jeito para estas coisas que tenha um papel mais importante no arranque do projecto. A meu ver, esse papel pode-se materializar da seguinte forma, depois de toda a equipa ter acordado numa arquitectura:</p>
<ul>
<li><strong>Programar o primeiro componente da aplicação</strong>, porque esse servirá de exemplo para todos os seguintes. Além disso, desenvolver o primeiro componente demora muito mais que desenvolver os seguintes, por isso é vantajoso ser desenvolvido por alguém com uma produtividade elevada.</li>
<li><strong>Escolher o componente com maior número de dependências e implementá-lo</strong>, para que seja obrigado a interagir com o máximo de componentes desenvolvidos pela equipa e assim detectar facilmente falhas na arquitectura inicial ou problemas de implementação nos restantes componentes.</li>
</ul>
<p>Pode parecer uma abordagem pouco científica mas tem funcionado muito bem comigo, espero que ajude outros (arquitectos ou não).</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/inospito.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/inospito.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/inospito.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/inospito.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/inospito.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/inospito.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/inospito.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/inospito.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/inospito.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/inospito.wordpress.com/146/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=inospito.com&blog=1640819&post=146&subd=inospito&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://inospito.com/2009/08/16/precisamos-de-arquitectos-de-software/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/31c9d6706b78cb5967efb2969d1586c6?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Alves</media:title>
		</media:content>

		<media:content url="http://inospito.files.wordpress.com/2009/08/2635716987_59b5ecccbf_d.jpg" medium="image">
			<media:title type="html">Bayon</media:title>
		</media:content>
	</item>
		<item>
		<title>Como é que os sistemas de backup remotos podem ser tão rápidos?</title>
		<link>http://inospito.com/2009/06/18/como-e-que-os-sistemas-de-backup-remotos-podem-ser-tao-rapidos/</link>
		<comments>http://inospito.com/2009/06/18/como-e-que-os-sistemas-de-backup-remotos-podem-ser-tao-rapidos/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 17:51:58 +0000</pubDate>
		<dc:creator>Alves</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[file sharing]]></category>
		<category><![CDATA[online backup]]></category>

		<guid isPermaLink="false">http://inospito.com/?p=140</guid>
		<description><![CDATA[Há uns anos, quando começaram a aparecer os primeiros sistemas de backup online, ou seja, sistemas que mantêm uma cópia de parte do nosso disco rígido num servidor algures na Internet, eu fiquei um pouco céptico sobre a viabilidade deste modelo. Isto era numa altura em que a banda larga ainda não estava generalizada, em [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=inospito.com&blog=1640819&post=140&subd=inospito&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Há uns anos, quando começaram a aparecer os primeiros sistemas de backup online, ou seja, sistemas que mantêm uma cópia de parte do nosso disco rígido num servidor algures na Internet, eu fiquei um pouco céptico sobre a viabilidade deste modelo. Isto era numa altura em que a banda larga ainda não estava generalizada, em que era normal esperar-se uns largos segundos que os sites aparecessem no browser, em que as imagens eram uma dor de cabeça para descarregar. Eu só pensava quanto tempo não demoraria para fazer upload do meu arquivo de Outlook que tem cerca de 1 Gb (e não nos esqueçamos que a taxa de upload &#8211; taxa com que a informação é enviada a partir do nosso computador &#8211; costuma ser bastante inferior à taxa de download &#8211; informação recebida &#8211; na nossas ligações caseiras). Nessa altura, confesso que nem experimentei.</p>
<p>Com a massificação da banda larga, a coisa parecia mais promissora e cheguei a utilizar uns quantos serviços para backups online gratuitos, incluindo o famoso <a href="http://mozy.com/">Mozy</a>, mas a verdade é que, para quantidades de informação acima dos 100 Mb, o sistema era lento. Lento, no sentido em que tinha que correr durante a noite ou (com sorte) durante a hora de almoço. Acho que nos habituámos um bocado a isso, parecia uma coisa inevitável &#8211; se estamos a enviar informação para um servidor algures no mundo através da Internet, que ainda por cima é de borla, não podemos pedir mais.</p>
<p>Avançando um bocadinho mais no tempo, os discos externos passaram a ser tão estupidamente baratos e tão estupidamente mais rápidos que os Mozy&#8217;s e afins, que deixou de fazer sentido deixar o portátil ligado todas as noites só para fazer o seu &#8220;backupzinho&#8221;. Um gajo liga o disco externo no fim do dia, sincroniza os ficheiros com um desses softwares de sincronização que há para aí (normalmente estes discos externos trazem um) e em poucos minutos está feito.</p>
<p>Recentemente, e dado o burburinho à volta do assunto, resolvi experimentar o <a href="http://www.getdropbox.com/">dropbox</a>. O dropbox não é simplesmente um sistema de backup (é um sistema de partilha de ficheiros entre vários computadores) mas, para efeitos deste artigo, é assim que eu o vejo. Um sistema de backup muito rápido. Muito mais rápido do que eu imaginei que fosse possível, mesmo tendo ligação de banda larga. A grande vantagem que tem sido apontada ao dropbox é sua <a href="http://www.randsinrepose.com/archives/2008/11/25/dumbing_down_the_cloud.html">facilidade de utilização</a> &#8211; aquilo instala uma pasta especial no computador chamada &#8220;my dropbox&#8221; e a gente só tem que arrastar para lá os ficheiros que queremos fazer backup. Mal a gente larga lá o ficheiro, ele começa logo a enviá-lo para o servidor da dropbox. Tão ou mais interessante que a facilidade de utilização é que esse envio pode, dependendo do ficheiro, ser estupidamente rápido. Tipo, já larguei lá pdfs com 10 Mb que são &#8220;consumido&#8221; em poucos segundos.</p>
<p>Como gosto de perceber como é que estas coisas funcionam, tenho lido alguns artigos sobre este problema e percebi que, de facto, <strong>não só é possível que estes sistemas sejam rápidos a fazer upload dos ficheiros como é perfeitamente possível que brevemente estes sistemas venham a ser mais rápidos do que backups para discos externos USB</strong>.</p>
<p><a href="http://2.bp.blogspot.com/_bq6_cE4BJJQ/SfcJet76UOI/AAAAAAAAOCM/iSN1R6lqj-E/s400/B+Berenika+-+R0H7TGv.jpg"><img class="alignnone" title="Berenika" src="http://2.bp.blogspot.com/_bq6_cE4BJJQ/SfcJet76UOI/AAAAAAAAOCM/iSN1R6lqj-E/s400/B+Berenika+-+R0H7TGv.jpg" alt="" width="400" height="397" /></a></p>
<p>Sem entrar em detalhes demasiado técnicos, eis as técnicas que se têm vindo a adoptar para este tipo de sistemas:</p>
<p><strong>1. O envio de deltas em vez do ficheiro completo</strong> &#8211; Esta técnica consiste em enviar o ficheiro inteiro da primeira vez, mas posteriores alterações ao ficheiro não enviam novamente o ficheiro inteiro, enviam apenas o que mudou (o chamado delta). Por exemplo, imaginem um ficheiro word com 3 Mb ao qual acrescentámos apenas um parágrafo, aumentando o seu tamanho em 100 Kb. Um bom sistema de backup apenas envia esses 100 kb.</p>
<p><strong>2. Comprimir os ficheiros ou deltas antes de enviar</strong> &#8211; Esta é mais ou menos óbvia. Para certos tipos de ficheiros podem-se obter ganhos assinaláveis, mas para ficheiros já por si comprimidos (por exemplo os mp3) as taxas de compressão não são grande coisa.</p>
<p>Estass duas técnicas são aquelas que, &#8220;oficialmente&#8221;, o dropbox assume utilizar:</p>
<blockquote><p>Dropbox tries to be as smart as possible about uploading for the best possible performance. Before transferring a file, we compare the new file to the previous version and only send the piece of the file that changed. This is called a &#8220;binary diff&#8221; and works on any file type. Dropbox compresses files before transferring them as well. You also never have to worry about Dropbox reuploading a file &#8211; it&#8217;s smart about this, too. (from <a href="http://http://www.getdropbox.com/help/8">http://www.getdropbox.com/help/8</a>)</p></blockquote>
<p>No entanto, existem técnicas um pouco mais avançadas. Por exemplo, um artigo de 2001 intitulado &#8220;<a href="http://pdos.csail.mit.edu/lbfs/">Low Bandwidth File System</a>&#8221; diz o seguinte:</p>
<blockquote><p>LBFS is a network file system which conserves communication bandwidth between clients and servers. It takes advantage of cross-file similarities. When transferring a file between the client and server, LBFS identifies chunks of data that the recipient already has in other files and avoids transmitting the redundant data over the network.</p></blockquote>
<p>Para os meus leitores com um background mais técnico, posso adiantar que este sistema usa <a href="http://en.wikipedia.org/wiki/Hash_function">funções de hash</a> (SHA-1) que aplica a blocos entre 2Kb e 8Kb no qual divide os ficheiros a enviar. Estas divisões são feitas cuidadosamente de forma a garantir que alterações pequenas nos ficheiros apenas afectam um destes blocos. Basicamente, na altura do upload, o ficheiro é dividido nestes blocos e é calculado o hash de cada um deles (o hash, também conhecido por resumo, é uma string bastanter pequena produzida por uma função matemática quando aplicada um conjunto arbitrário de dados &#8211; teoricamente é altamente improvável dois conjuntos diferentes de informação produzirem o mesmo resumo). Aquilo que é enviado ao servidor são apenas os hash&#8217;s dos ficheiros. O servidor guarda os tais blocos e os respectivos hashes. Se os hashes que o cliente envia já estiverem no servidor, quer dizer que ele já lá tem o bloco correspondente e por isso não é necessário enviar. Se não estiverem, então o cliente envia apenas essas blocos.</p>
<p>O mais interessante neste sistema é que dois ficheiros diferentes podem, por coincidência (ou não), ter alguns destes blocos em comum. Se pensarmos na quantidade de documentos que produzimos com base no copy&amp;paste de outros documentos, é normal que assim aconteça. Foram feitos alguns estudos que comprovam esta teoria: os ficheiros do nosso disco têm muito mais em comum entre eles do que nós imaginamos. Isso quer dizer, utilizando esta técnica, quantos mais ficheiros tivermos em backup, mais rápido vai ser fazer upload de novos ficheiros. Mas podemos levar isto mais longe &#8211; até que ponto os meus ficheiros não são similares (senão mesmo iguais) a ficheiros de outros utilizadores? Certamente alguns pdf&#8217;s que fiz download da Internet ou  mp3&#8217;s são exactamente os mesmos que os de outros utilizadores. Nesse caso, o tal esquema de hashing irá funcionar na perfeição. E isso explica porque é que o tal pdf de 10Mb que larguei no &#8220;my dropbox&#8221; foi consumido em poucos segundos. Se calhar, a única coisa que passou na rede foram hashes, porque outro utilizador algures no mundo já fez upload do mesmo ficheiro ou de um muito semelhante.</p>
<p>E isto explica a minha arrojada convicção &#8211; se muita gente utilizar o dropbox (<a href="http://lifehacker.com/388284/best-online-file-sharing-services">ou outro sistema de backup online</a>), pode-se chegar a um ponto em que a probabilidade de haver, algures naquele espaço imenso, um ficheiro muito parecido ou igual àquele que estou a fazer upload é enorme. E mesmo que a largura de banda de um disco externo seja 100x superior à da minha ligação à Net, num dos casos estou a transmitir o ficheiro todo e noutro estou só a transmitir os hashes (~ 20 bytes, mais os envelopes dos pacotes de rede, vá 200 bytes). Se fizerem as contas verão porque, para ficheiros com alguns Mb, começa a ser mais rápido fazermos o backup para estes sistemas e não para o nosso disco externo.</p>
<p>Não queria terminar este artigo sem referir duas coisas. Isto são técnicas ao nível do protocolo, mas existem técnicas ao nível da infraestrutura do servidor também muito interessantes (como transmitir os blocos em paralelo para servidores diferentes com base no hash, etc.). Por último, existe um grande senão neste esquema de hashing (tinha que ser, não é?). É que se o sistema de ficheiros no servidor estiver encriptado, os mecanismos de similaridade entre blocos deixam de funcionar. Ou seja, dois ficheiros parecidos tornam-se totalmente diferentes um do outro quando os encriptamos &#8211; faz sentido que assim seja. No entanto,<a href="http://www.getdropbox.com/help/27"> o dropbox encripta os seus ficheiros</a>, o que me leva a pensar que não utilizarão esta técnica&#8230;ou terão encontrado uma solução para este problema?</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/inospito.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/inospito.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/inospito.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/inospito.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/inospito.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/inospito.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/inospito.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/inospito.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/inospito.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/inospito.wordpress.com/140/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=inospito.com&blog=1640819&post=140&subd=inospito&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://inospito.com/2009/06/18/como-e-que-os-sistemas-de-backup-remotos-podem-ser-tao-rapidos/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/31c9d6706b78cb5967efb2969d1586c6?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Alves</media:title>
		</media:content>

		<media:content url="http://2.bp.blogspot.com/_bq6_cE4BJJQ/SfcJet76UOI/AAAAAAAAOCM/iSN1R6lqj-E/s400/B+Berenika+-+R0H7TGv.jpg" medium="image">
			<media:title type="html">Berenika</media:title>
		</media:content>
	</item>
		<item>
		<title>Partilha de contexto em equipas distribuídas</title>
		<link>http://inospito.com/2009/04/24/partilha-de-contexto-em-equipas-distribuidas/</link>
		<comments>http://inospito.com/2009/04/24/partilha-de-contexto-em-equipas-distribuidas/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 10:32:25 +0000</pubDate>
		<dc:creator>Alves</dc:creator>
				<category><![CDATA[cooperação]]></category>
		<category><![CDATA[inovação]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[contexto]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[programação]]></category>

		<guid isPermaLink="false">http://inospito.com/?p=134</guid>
		<description><![CDATA[Cada vez mais o desenvolvimento de software está a ser feito através de equipas distribuídas, por elementos geograficamente dispersos que raramente se encontram no mundo real. Penso que este caminho é inevitável &#8211; por um lado as pessoas querem melhorar a sua qualidade de vida, não perdendo tanto tempo em transportes ou files, não gastando [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=inospito.com&blog=1640819&post=134&subd=inospito&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Cada vez mais o desenvolvimento de software está a ser feito através de equipas distribuídas, por elementos geograficamente dispersos que raramente se encontram no mundo real. Penso que este caminho é inevitável &#8211; por um lado as pessoas querem melhorar a sua qualidade de vida, não perdendo tanto tempo em transportes ou files, não gastando tanto dinheiro na habitação tradicionalmente cara das grandes cidades, não sofrendo tanto com a poluição e o stress. Por outro lado, se as empresas portuguesas querem desenvolver soluções globais, as suas equipas devem ser igualmente globais, incorporando elementos de diferentes países, culturas e formação. Por último, a inovação passa claramente por não nos limitarmos ao <em>brainpower</em> disponível numa certa area geográfica.</p>
<p>Em contrapartida, vários estudos indicam que a proximidade dos elementos da equipa é um factor fundamental no desenvolvimento de software. Por exemplo, <a href="http://possibility.com/Misc/p339-teasley.pdf">neste artigo</a> (pdf) pode-se ler: <em>&#8220;the gains from being at hand drop off significantly when people are first out of sight, and then most severely when they are more than 30 meters apart&#8221;</em>. As metodologias ágeis insistem no contacto constante com a equipa e o cliente. Por um lado a comunicação explícita é muito mais fácil quando estamos a trabalhar todos na mesma sala, mas existe um outro tipo de comunicação tão ou mais importante que a comunicação explícita &#8211; a observação. Podemos aprender muito só por estar no sítio onde as coisas acontecem, ouvindo pedaços de conversas aqui, exclamações ou outras manifestações emocionais acolá. Chama-se a isto o contexto do grupo: saber quem realmente são os seus elementos, quais as suas características, como devemos falar com eles, aquilo em que são bons e aquilo em que não são bons, etc. <strong>Como trazer este contexto para equipas distribuídas?</strong></p>
<p>Uma equipa da universidade de Saskatchewan fez em 2005 <a href="http://www.st.cs.uni-saarland.de/edu/empirical-se/2006/PDFs/gutwin04.pdf">um estudo</a> (pdf) que tentava responder ao seguinte: como é que se consegue manter o contexto do grupo em projectos open-source de alguma dimensão? Em particular, como é que o <a href="http://www.netbsd.org">NetBSD</a>, o <a href="http://httpd.apache.org">Apache httpd</a> e o <a href="http://subversion.tigris.org">Subversion</a>, projectos de reconhecido sucesso, fazem para evitar, por exemplo, duplicação de esforço?</p>
<p>Após entrevistarem diversos programadores destes projectos, chegaram a uma supreendente conclusão. A solução parece residir em duas ferramentas nada sofisticadas: mailing lists e text chat (IRC). De facto, apesar destes projectos terem em média mais de 20 programadores activos e haver pouco particionamento do código (os commit logs mostraram que a maioria dos ficheiros foram sendo editados por múltiplos programadores), os entrevistados referiram serem raras as colisões e a duplicação de esforços.</p>
<p>De facto, as mailings lists e o text chat funcionam não só para comunicação explícita, mas também para comunicação por observação. Basta acompanhar a mailing list de um destes projectos durante alguns dias para ficarmos a saber quem pertence à equipa, quem trabalha no quê e quem irá trabalhar no quê assim como aferir um pouco a personalidade dos seus intervenientes. Obviamente, isto só funciona porque todos têm o cuidado de partilhar as suas intenções e o seu estado actual através destas ferramentas. Apesar da perda de eficiência que advém do facto de registarmos por escrito tudo o que fazemos (perde-se tempo a escrever um mail para cada coisa que fazemos ou planeamos fazer), toda a gente o faz, nestes projectos. Porquê?</p>
<p>Bem, provavelmente tem a ver com a motivação que está por trás de quem trabalha em projectos open-source: a reputação social. Uma das formas de construir essa reputação é precisamente participando activamente nas discussões do projecto, escrevendo mails com boas ideias, bem escritos e tecnicamente bem apoiados que mereçam elogios da comunidade. O desejo de criar esta reputação também explica a escalabilidade deste sistema tão simples. Muita gente coloca questões na mailing list na esperança que alguém responda, nomeadamente algum expert nessa área. Ora esse expert pode não estar disponível, ou pode não ter tempo para responder a essas solicitações. É comum alguém menos expert (ou pelo menos reconhecido como menos expert) aproveitar para mostrar as suas qualidades e responder à questão. Como a resposta também vai para a mailing list em geral, será devidamente avaliada por outros experts que eventualmente a corrigirão (embora não seja normalmente necessário). Se compararmos este mecanismo tão simples com o formalismo dos &#8220;module maintainers&#8221; (pessoas que assumem a responsabilidade de certos módulos), percebemos que este último não é escalável &#8211; muitas questões não serão respondidas em tempo útil já para não falar da duplicação de perguntas.</p>
<p><a href="http://www.flickr.com/photos/loneligar/3251819875/"><img class="alignnone" title="My Tiger" src="http://farm4.static.flickr.com/3071/3251819875_027dea6195.jpg" alt="" width="500" height="382" /></a></p>
<p>Aquilo que mais me interessou no estudo foi tentar perceber até que ponto este sistema de partilha de contexto funcionaria num projecto comercial, no âmbito de uma empresa. Há duas pistas no artigo que me levam a pensar que não funcionará:</p>
<ul>
<li> Alguns entrevistados referiram que em situações de grande pressão temporal (por exemplo a correcção de uma vulnerabilidade de segurança) surgiam por vezes problemas de coordenação, havendo duplicação de esforços. Os projectos <em>closed source</em> comerciais estão tipicamente mais sujeitos a pressões de tempo e deadlines apertadas que os projectos open-source, pelo que a perda de eficiência associada à actualização explícita constante do nosso estado poderia não ser compatível com os prazos do projecto.</li>
</ul>
<ul>
<li> A motivação para adquirir reputação social por esta forma quase não existe nas empresas. Infelizmente, essa reputação está muito mais associada a cargos e hierarquias (e em alguns casos, antiguidade). Ninguém é promovido por discutir activamente numa mailing list mas sim por apresentar resultados &#8211; nesse sentido, as pessoas concentram-se em desenvolver o máximo de código e não a falar sobre ele. As colisões são raras porque o código é altamente particionado. Ao contrário dos projectos <em>open source</em>, é comum encontrarem-se ficheiros que são mexidos apenas por quem os criou. É claro que isso levanta outros problemas relacionados com a manutenção dos mesmos que fogem um pouco ao tema.</li>
</ul>
<p>Acima de tudo, actualmente nada bate a eficiência de comunicação directa de uma equipa que trabalha no mesmo local. Mas será este modelo sustentável? Como referi na introdução deste artigo, a dispersão das equipas parece-me uma tendência inevitável. Claramente o desafio será encontrar mecanismos eficientes de partilha de contexto que as pessoas realmente utilizem e os projectos <em>open source</em> serão uma referência incontornável neste caminho, pois são indubitavelmente o expoente máximo da colaboração em equipas distribuídas.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/inospito.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/inospito.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/inospito.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/inospito.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/inospito.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/inospito.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/inospito.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/inospito.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/inospito.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/inospito.wordpress.com/134/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=inospito.com&blog=1640819&post=134&subd=inospito&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://inospito.com/2009/04/24/partilha-de-contexto-em-equipas-distribuidas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/31c9d6706b78cb5967efb2969d1586c6?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Alves</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3071/3251819875_027dea6195.jpg" medium="image">
			<media:title type="html">My Tiger</media:title>
		</media:content>
	</item>
		<item>
		<title>Porque é que o software de registo de tempos falha?</title>
		<link>http://inospito.com/2009/03/26/porque-e-que-o-software-de-registo-de-tempos-falha/</link>
		<comments>http://inospito.com/2009/03/26/porque-e-que-o-software-de-registo-de-tempos-falha/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 18:40:58 +0000</pubDate>
		<dc:creator>Alves</dc:creator>
				<category><![CDATA[cooperação]]></category>
		<category><![CDATA[recursos humanos]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://inospito.com/?p=124</guid>
		<description><![CDATA[Em praticamente todas as empresas de serviços existe um cancro com o qual temos que viver, quer queiramos quer não &#8211; o registo de horas gastas por contrato/projecto. Normalmente, esse registo é feito utilizando uma aplicação mais ou menos sofisticada (muitas vezes é apenas o excel) onde cada empregado insere diariamente quais as tarefas que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=inospito.com&blog=1640819&post=124&subd=inospito&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Em praticamente todas as empresas de serviços existe um cancro com o qual temos que viver, quer queiramos quer não &#8211; o registo de horas gastas por contrato/projecto. Normalmente, esse registo é feito utilizando uma aplicação mais ou menos sofisticada (muitas vezes é apenas o excel) onde cada empregado insere diariamente quais as tarefas que executou e quantas horas gastou. A obrigatoriedade desse registo prende-se com a necessidade (legítima) de perceber quanto está a custar um determinado projecto, verificar se estamos a perder dinheiro, estimar melhor futuros projectos, etc. Acho que ninguém duvida da utilidade destes números &#8211; nenhuma empresa sobrevive muito tempo sem ter alguma percepção/controlo sobre a parte financeira dos seus projectos (excepto a Ben&amp;Jerry&#8217;s, que <a href="http://www.amazon.com/Ben-Jerrys-Inside-Business-Conscience/dp/0517883708" target="_blank">no primeiro ano de existência não faziam ideia se estavam perder ou ganhar dinheiro com aquilo</a>).</p>
<p>O problema é que a grande maioria das pessoas não gosta de ter de fazer esse registo. Algumas chegam a odiar essa tarefa, considerando-a a materialização suprema da burocracia, um empecilho completo à produtividade, um resquício da mentalidade de linha de montagem da era industrial, um &#8220;picar o ponto&#8221; disfarçado. Estou a falar de pessoas responsáveis, empenhadas e que gostam realmente de produzir coisas e não de perder tempo a registar que as produziram. Resultado: existe uma enorme resistência quando se introduzem estas ferramentas. Como é que garantimos então que toda a gente utiliza a ferramenta? Simplesmente <strong>impomos</strong> a sua utilização e os gestores das equipas usam a sua autoridade hierárquica para garantir que esta norma é cumprida. É claro que, como com qualquer norma que é simplesmente imposta, os objectivos saem logrados. As pessoas limitam-se a aldrabar o sistema de modo a terem o mínimo trabalho possível &#8211; por ex., em vez de registarem 2h na tarefa A, 2h na tarefa B e 4h na tarefa C, registam 8h na tarefa C e não se chateiam mais. Claro que qualquer análise financeira sobre dados viciados está comprometida à partida e, em suma, estas ferramentas dão apenas a ilusão de que estamos a controlar os custos.</p>
<p>Eu tenho uma teoria porque é que isto acontece. O erro que se comete é pensar na ferramenta de registo de tempos como uma ferramenta individual (como é por exemplo o word ou a calculadora), quando devia ser encarada como uma ferramenta cooperativa (como é um wiki ou um fórum de discussão). De facto, se encararmos o registo de tempos como algo em que todos os elementos de uma equipa estão a contribuir para um objectivo comum, começamos a perceber o que está a falhar.</p>
<p><img class="alignnone" title="http://www.scottradke.com/journal498.jpg" src="http://www.scottradke.com/journal498.jpg" alt="" width="400" height="350" /></p>
<p>Para começar, aquilo que o grupo ganha tem que superar o custo individual de introdução dos tempos. Ou seja, o elemento do grupo tem que sentir que ganha mais (ainda que indirectamente) ao contribuir para o grupo do que a alternativa individual (que é não utilizar a ferramenta). É por isso que os wikis funcionam &#8211; embora tenhamos o custo de escrever um artigo, sabemos que esse artigo vai ser revisto e melhorado por outros com custo zero (para nós). Sabemos ainda que existem outros a escrever artigos dos quais nós vamos beneficiar (com custo zero).</p>
<p>Por vezes, tem que haver um benefício individual a somar ao benefício do grupo, para compensar o custo: <a href="http://bokardo.com/archives/the-delicious-lesson/" target="_blank">esta teoria</a> poderá explicar o sucesso da ferramenta de bookmarking social <a href="http://www.delicious.com">delicious</a> &#8211; primeiro que tudo eu faço bookmarks para mim próprio (acessíveis em qualquer computador), depois eventualmente irei partilhá-los com outros.</p>
<p>Voltemos então ao registo de tempos e coloquemo-nos na pele do elemento da equipa. Ele tem o custo de introduzir os seus tempos e não tira qualquer benefício disso. Dizem-lhe que beneficia a empresa, mas se ele não tiver acesso às métricas, aos gráficos, no fundo ao output da ferramenta, esse benefício não será claro. O problema é  que normalmente esse output só está disponível aos gestores de projecto e à direcção &#8211; o &#8220;povão&#8221; limita-se a fornecer os inputs. Mas mesmo que o output estivesse disponível para todos, ainda assim creio que não seria suficiente. Este é um dos casos em que tem que haver um benefício individual, para além do benefício do grupo. Porque não utilizar essa ferramenta para gestão individual de trabalho? O movimento <a href="http://www.davidco.com/what_is_gtd.php" target="_blank">GTD</a> e similares deram origem a uma profusão de ferramentas de &#8220;produtividade&#8221;, <a href="http://www.rememberthemilk.com" target="_blank">algumas com sucesso considerável</a>. Porque não mesclar a ferramenta grupal (de registo de tempos) com a ferramenta individual (de gestão individual de tarefas)?</p>
<p>Outro dos problemas típicos de ferramentas individuais é a excessiva normalização e a rigidez da sua utilização (formulários, dropdowns para tudo, muitas validações, &#8230;). Em ferramentas colaborativas, as regras não podem estar definidas à partida &#8211; o software tem que se ir adaptando ao comportamento emergente dos seus utilizadores (veja-se como exemplo a utilização de hashtags e o RT do twitter). No caso em questão, a definição e organização das tarefas nas quais se reportavam horas devia ser completamente aberta, permitindo ao grupo que convergisse numa metodologia que espelhasse a maneira como realmente trabalham (e que permitisse variações de grupo para grupo e de projecto para projecto).</p>
<p>Há muitos outros mecanismos que têm vindo a ser estudados no âmbito do software social que trariam certamente mais valias para este processo, como os <a href="http://inospito.com/2009/02/08/mecanicas-dos-jogos-aplicada-a-software-social/" target="_self">mecanismos utilizados em jogos</a>: não haverá semelhanças entre os objectos que vamos coleccionando num jogo e a nossa colecção de tarefas realizadas? Na realidade, a partir do momento em que fazemos o <em>shift</em> e passamos a encarar o registo de tempos como uma tarefa grupal, essa mal-amada tarefa passa rapidamente de monótona e inútil para divertida e importante, e os benefícios que se tiram dela (os outputs) passam realmente a ser decisivos no sucesso de uma empresa.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/inospito.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/inospito.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/inospito.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/inospito.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/inospito.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/inospito.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/inospito.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/inospito.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/inospito.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/inospito.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=inospito.com&blog=1640819&post=124&subd=inospito&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://inospito.com/2009/03/26/porque-e-que-o-software-de-registo-de-tempos-falha/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/31c9d6706b78cb5967efb2969d1586c6?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Alves</media:title>
		</media:content>

		<media:content url="http://www.scottradke.com/journal498.jpg" medium="image">
			<media:title type="html">http://www.scottradke.com/journal498.jpg</media:title>
		</media:content>
	</item>
		<item>
		<title>Virgem ou com vícios? O dilema do recrutamento</title>
		<link>http://inospito.com/2009/03/08/virgem-ou-com-vicios-o-dilema-do-recrutamento/</link>
		<comments>http://inospito.com/2009/03/08/virgem-ou-com-vicios-o-dilema-do-recrutamento/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 11:07:34 +0000</pubDate>
		<dc:creator>Alves</dc:creator>
				<category><![CDATA[recursos humanos]]></category>

		<guid isPermaLink="false">http://inospito.com/?p=115</guid>
		<description><![CDATA[O recrutamento é um tema que me interessa particularmente pois defendo que o principal ingrediente de qualquer projecto de sucesso é a equipa que o desenvolve. Embora existam inúmeros factores a ter em conta (a começar pelo factor sorte), quase me atrevo a dizer que a empresa com um processo de recrutamento perfeito é a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=inospito.com&blog=1640819&post=115&subd=inospito&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>O recrutamento é um tema que me interessa particularmente pois defendo que o principal ingrediente de qualquer projecto de sucesso é a <a href="http://inospito.com/2008/12/08/ser-cool-ou-nao-ser-cool-eis-a-questao/" target="_self">equipa que o desenvolve</a>. Embora existam inúmeros factores a ter em conta (a começar pelo factor sorte), quase me atrevo a dizer que a empresa com um processo de recrutamento perfeito é a empresa perfeita. Claro está que não existe semelhante empresa, até porque não é possível definir o processo de recrutamento perfeito, mas não é por acaso que os líderes de mercado se caracterizam por serem <a href="http://www.catonmat.net/blog/my-job-interview-at-google/" target="_blank">extremamente exigentes nesse processo</a>.</p>
<p>Se na fase do recrutamento nos preocupamos em descobrir e aliciar os melhores elementos para integrarem a nossa equipa, é igualmente importante garantir que essa equipa se mantém estável, sem grande rotatividade. Demora meses a formar totalmente uma pessoa (no sentido de ela chegar ao máximo da sua produtividade) e poderá demorar anos a construir uma equipa sólida, unida e em que as competências se complementam de forma harmoniosa. Infelizmente é raro encontrar essas equipas mas quando as encontramos é impossível ficar indiferente à energia que emana daquele <a href="http://www.hans-eric.com/2007/08/13/is-your-team-jelled/" target="_blank">grupo</a>, lembrando uma imparável locomotiva a alta velocidade, somando sucessos atrás de sucessos.</p>
<p>O desafio consiste portanto em (1) constituir uma equipa excelente e (2) manter essa equipa sem grandes alterações o máximo de tempo possível. Isso leva-me ao dilema que dá título a este artigo. Devemos contratar pessoas sem experiência profissional (por exemplo, que acabaram agora o curso) para que seja mais fácil formá-las e integrá-las na cultura da empresa? Ou é preferível ir buscar pessoas já com alguma experiência profissional e porventura com vícios que não se coadunam com o espírito que pretendemos? Ambas as hipóteses têm vantagens e desvantagens:</p>
<p>A primeira é a preferida pelas <a href="http://www.accenture.com" target="_blank">grandes consultoras</a>, precisamente porque têm uma cultura muito própria, investem imenso na formação interna (que chega a roçar a lavagem cerebral) e, verdade seja dita, poupam bastante em salários (mais baixos). De facto, pela minha experiência posso confirmar que esta hipótese é normalmente mais vantajosa nomeadamente a nível da integração das pessoas nas equipas. Aquilo que lhes possa faltar em experiência e maturidade é claramente compensado pela facilidade com que absorvem as metodologias, técnicas e até a maneira de estar da empresa. Também oferecem tipicamente menor resistência à mudança e o facto de receberem menos faz com que o custo em caso de má contratação não seja tão elevado.</p>
<p>Dito assim, pareceria que não havia dúvidas quanto a esta questão, mas tenho assistido a um fenómeno que faz destabilizar o raciocínio e que tem a ver com a dificuldade em manter as equipas. As pessoas gostam/precisam de experimentar vários ambientes de trabalho antes de &#8220;assentarem praça&#8221;. Isto é especialmente verdade para os melhores elementos, aqueles que são apaixonados pelo seu trabalho e sempre ávidos de conhecimento. Ora acontece com alguma frequência que esses elementos que entraram sem experiência profissional até estão satisfeitos com o seu trabalho e com a empresa mas, após alguns anos, começam-se a interrogar: &#8220;como será o mundo lá fora? não estarei a estagnar aqui?&#8221;. E saem. Se calhar vão fazer a mesma coisa para outra empresa, mas essa não é a questão &#8211; eles tinham de fazer isso, tinham de arranjar um ponto de comparação pois só assim podiam crescer internamente. É completamente legítimo pensar assim, e pessoalmente sempre apoiei todos os meus amigos/colegas que tomaram essa decisão.</p>
<p>Mas o dilema agudiza-se. Por um lado, é melhor contratar &#8220;virgens&#8221; mas mais cedo ou mais tarde os &#8220;virgens&#8221; vão querer conhecer outras realidades. Por outro lado, quem já &#8220;conheceu o mundo&#8221;, já satisfez o bichinho e é provável que se mantenha na empresa mais tempo. Só que essas pessoas invariavelmente têm mais problemas de integração, trazem vícios comportamentais difíceis de mudar. Algumas nunca se chegam a integrar completamente, impedindo a tal coesão essencial para as equipas funcionarem. Onde estará o equilíbrio?</p>
<p><img class="alignnone" title="Dilemna" src="http://pixdaus.com/pics/7FxBGDAW5aFN.jpg" alt="" width="420" height="315" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/inospito.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/inospito.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/inospito.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/inospito.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/inospito.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/inospito.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/inospito.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/inospito.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/inospito.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/inospito.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=inospito.com&blog=1640819&post=115&subd=inospito&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://inospito.com/2009/03/08/virgem-ou-com-vicios-o-dilema-do-recrutamento/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/31c9d6706b78cb5967efb2969d1586c6?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Alves</media:title>
		</media:content>

		<media:content url="http://pixdaus.com/pics/7FxBGDAW5aFN.jpg" medium="image">
			<media:title type="html">Dilemna</media:title>
		</media:content>
	</item>
		<item>
		<title>Mecânicas dos jogos aplicada a software social</title>
		<link>http://inospito.com/2009/02/08/mecanicas-dos-jogos-aplicada-a-software-social/</link>
		<comments>http://inospito.com/2009/02/08/mecanicas-dos-jogos-aplicada-a-software-social/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 16:18:28 +0000</pubDate>
		<dc:creator>Alves</dc:creator>
				<category><![CDATA[experiência]]></category>
		<category><![CDATA[fun factor]]></category>
		<category><![CDATA[jogos]]></category>
		<category><![CDATA[sofware social]]></category>

		<guid isPermaLink="false">http://inospito.com/?p=108</guid>
		<description><![CDATA[Embora existe uma distinção clara entre jogos e software &#8220;utilitário&#8221; começando logo no objectivo inerente aos mesmos, isso não quer dizer que as lições de um não possam ser aplicadas ao outro. Por exemplo, uma das características essenciais de um jogo é ser divertido (o chamado fun factor), e os respectivos mecanismos são estudados há [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=inospito.com&blog=1640819&post=108&subd=inospito&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Embora existe uma distinção clara entre jogos e software &#8220;utilitário&#8221; começando logo no objectivo inerente aos mesmos, isso não quer dizer que as lições de um não possam ser aplicadas ao outro. Por exemplo, uma das características essenciais de um jogo é ser divertido (o chamado <em>fun factor</em>), e os respectivos mecanismos são estudados há vários anos, tendo sido postos em prática em dezenas de jogos.  O mesmo não se pode dizer do restante software, cuja investigação se tem centrado em maximizar o valor para o utilizador, seja fazendo uma tarefa mais rapidamente, mais facilmente, com menor custo, etc. Porque não hão-de as aplicações tradicionais ser, além de úteis, divertidas? Não será a experiência de utilização tão ou mais importante que a utilidade das mesmas?</p>
<p>Amy Jo Kim, CEO da <a title="Shuffle Brain" href="http://www.shufflebrain.com" target="_blank">Shuffle Brain</a>, tem estudado como se pode trazer o lado divertido dos jogos para o software, mais especificamente para o software social. Ela fez recentemente uma apresentação onde descreve 5 mecânicas de jogo para aumentar o <em>fun factor</em> e como estas podem ser aplicadas fora dos jogos:</p>
<ul>
<li><strong>Collecting</strong> &#8211; Muitos jogos se baseiam na noção de colecções, items que vamos acumulando para utilizar mais tarde ou simplesmente para fazer parte do nosso portfolio. Este factor está bem presente nas nossas colecções de fotos no flickr ou músicas no last.fm.</li>
<li><strong>Points</strong> &#8211; A ideia de irmos ganhando pontos por concretizar tarefas é central a muitos jogos, e é um factor essencial para a nossa experiência. Existem vários equivalentes a isto no software social, como os ratings ou o número de visitas (quando públicos) aos conteúdos por nós produzidos.</li>
<li><strong>Feedback</strong> &#8211; O feedback é essencial num jogo para percebermos a dinâmica do mesmo, quando fizemos bem ou fizemos mal, para nos motivar (ou deprimir). Os comentários de um blog ou do youtube são talvez o equivalente mais imediato deste mecanismo.</li>
<li><strong>Exchanges</strong> &#8211; As trocas são uma das bases da interacção social e têm sido usadas pelos jogos para utilizar a (sdmpre surpreendente) dinâmica de grupos como forma de aumentar o interesse dos jogadores. Os twitter replies utilizam eficazmente este mecanismo para os mesmos objectivos.</li>
<li><strong>Customization</strong> &#8211; A criação do nosso personagem no jogo pode ser um factor importante na construção do ambiente de fantasia que caracteriza muitos jogos, mas mesmo sem fantasia, a customização da nossa página do twitter ou do nosso blog faz parte da nossa necessidade por transmitir uma identidade própria e diferenciada (e por vezes um pouco fantasista).</li>
</ul>
<p>Para mais pormenores, não deixem de espreitar a apresentação:</p>
<p><object type='application/x-shockwave-flash' wmode='transparent' data='http://static.slideshare.net/swf/ssplayer2.swf?id=955669&#038;doc=google2009-1233017955718263-3' width='480' height='394'><param name='movie' value='http://static.slideshare.net/swf/ssplayer2.swf?id=955669&#038;doc=google2009-1233017955718263-3' /><param name='allowFullScreen' value='true' /><param name='allowScriptAccess' value='always' /></object></p>
<p>link: <a href="http://www.slideshare.net/amyjokim/fun-in-functional-2009-presentation" target="_blank">http://www.slideshare.net/amyjokim/fun-in-functional-2009-presentation</a></p>
<p><strong>UPDATE</strong>: Descobri por acaso que o PELF escreveu <a href="http://pelfinho.wordpress.com/2009/01/14/dinamica-de-jogos-aplicada-a-redes-sociais" target="_blank">um artigo</a> muito bom sobre esta apresentação. Recomendo a sua leitura.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/inospito.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/inospito.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/inospito.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/inospito.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/inospito.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/inospito.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/inospito.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/inospito.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/inospito.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/inospito.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=inospito.com&blog=1640819&post=108&subd=inospito&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://inospito.com/2009/02/08/mecanicas-dos-jogos-aplicada-a-software-social/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/31c9d6706b78cb5967efb2969d1586c6?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">Alves</media:title>
		</media:content>
	</item>
	</channel>
</rss>
