domingo, 26 de junho de 2011

Das Reputações

No final da guerra Irão-Iraque, Saddam Hussein usou gás contra a sua própria população, este episódio é conhecido como o massacre de Halabja. Deste massacre foram recolhidas imagens das pessoas gaseadas em ruas desertas, tendo estas imagens sido difundidas pelos meios de comunicação social. Contudo, apenas dois anos mais tarde estas imagens ganharam maior impacto quando, após a invasão do Kuwait, elas foram re-difundidas e referenciadas no contexto de um outro discurso.

A reputação é um elemento essencial das interacções humanas. Funciona como a base sobre a qual acontecem as interacções. Com a globalização e virtualização das interacções também os mecanismos de criação e manutenção de reputação tiveram necessidade de se globalizar e virtualizar.

A reputação de uma pessoa, ou instituição, está directamente ligada à informação que possuímos acerca dessa entidade. Adicionalmente, juntamos uma valoração própria, construída a partir da interpretação que fazemos dessa informação e usando os nossos princípios.

É (era) assim, nas pequenas comunidades rurais, onde toda a gente se conhece e onde as alcunhas representam uma cristalização da valoração. Esta cristalização acaba por ser partilhada por todos, à medida que a alcunha vai sendo adoptada. A alcunha, uma valoração acerca da informação, transforma-se em informação, podendo ser sujeita às mesmas transformações que são efectuadas sobre a informação.

Também nas comunidades virtuais os mecanismos de reputação são essenciais. Neste artigo refere-se a importância dos mecanismos de reputação para as comunidades virtuais onde há transacções comerciais. No entanto, os mecanismos de reputação também têm impacto em outros aspectos das comunidades virtuais. Por exemplo, na Amazon a reputação de quem escreve revisões ajuda a formar opinião sobre as obras. Os top reviewers funcionam como alcunhas de quem faz revisões. Um top reviewer é aquele cujas revisões mais pessoas acharam úteis.

Mas a reputação não se aplica apenas a pessoas, também as páginas web têm associado um mecanismo de reputação. Por exemplo, a ordem pela qual são apresentados os resultados de uma pesquisa utilizando o motor de pesquisa da Google depende da reputação da página, page rank. Neste caso, a reputação de uma página é dada não apenas pelo número de páginas que a referenciam, mas também pela reputação das páginas que a referenciam. Uma página pode não ser referenciada por muitas páginas e ter uma reputação elevada, desde que seja referenciada por páginas com reputação alta.

É interessante observar que estes algoritmos pretendem simular um funcionamento semelhante ao funcionamento dos mecanismos de reputação em contextos não digitais. E tal como no contexto não digital, a reputação digital pode ser (é) alvo de tentativas de manipulação, pelo qual vão sendo propostos novos algoritmos que procuram colmatar as falhas encontradas.

domingo, 19 de junho de 2011

Dr. Strangesoftware

Stanley Kubrick, no filme Dr. Strangelove, constrói uma situação em que os homens ingloriamente lutam contra os procedimentos que criaram. Estes procedimentos, uma vez activados, iniciam uma processo que se revela impossível de parar, levando à destruição da vida no planeta terra. Esta história, é uma versão soft do tema que foi recorrente na ficção científica sobre a tentativa da máquina controlar o seu criador, o homem. Nestas histórias ilustra-se a luta entre a lógica e o humano.

Numa história real, Barbara Tuchman descreve num livro sobre o primeiro mês da Grande Guerra, The Guns of August, como o Kaiser, poucas horas depois de ter ordenado o início das operações contra a França, resolve, após receber um telegrama do seu embaixador em Londres, alterar a sua decisão e invadir a Rússia. A invasão da França tinha sido logicamente preparada para ocorrer em 6 semanas, o que implicava um minucioso plano de deslocação de cerca de 1.000.000 de homens, usando os caminhos de ferro. Quando o Kaiser comunica a sua decisão ao seu chefe do estado maior, a resposta que recebe foi, escreve Tuchman: 

"Your Majesty, it cannot be done. The deployment of millions cannot be improvised. If Your Majesty insists on leading the whole army to the East it will not be an army ready for battle but a disorganized mob...". 

O Kaiser não teve poder para parar a máquina que tinha colocado em marcha.

Também no software há este paradoxo entre a coisa criada e o criador, entre a lógica e o humano.

Num artigo recente na ACM Software Engineering Notes, Robert Schaefer descreve magistralmente este paradoxo:

"I’ve also been thinking a lot lately about the kinship that software developers and managers have in regards to the parable of the blind men and the elephant. Software, as an object stripped away from culture, can be reduced to mathematics, a culturally valueless set of rules of manipulation of symbols. Software also is the formalization of ideas into logic. Coding is nothing more than thinking clearly and logically in the process of symbol manipulation. If so, then what is the big deal? Why can’t just anyone write programs and logic be damned? Logic has one set of rules and culture another. Logic must, but cannot be, separated from cultural values (another paradox). The attempt to map cultural values onto logic, while denying that we are doing it as we do it, is where trouble begins. Now the blind men weren’t able to see the elephant all at once, they could only guess at parts through touch, and emphasize the attributes, assume the whole of a part. We though, as designers and programmers can see the whole elephant, but are not much better off. Which more or less ruins the elephant analogy. Unless the elephant we see is not the elephant that is. Then the elephant analogy works again. We model the elephant in our minds, but the elephant that is, is something different. It looks like an elephant, but behaves like something else. In this instance, it looks like logic but behaves like culture."

Há, no entanto, uma diferença fundamental relativamente às máquinas e procedimentos que têm por base uma visão científica enraizada em princípios desenvolvidos ainda no século XIX: no software a coisa criada não é externa ao criador, não existe para além dele.

Dessa propriedade do objecto de software, que é a sua apropriação pelas pessoas, para além da lógica, falo em alguns dos posts. Por exemplo Da desordem à ordem natural das coisas é sobre a necessidade de tornar a codificação da cultura mais integrada com a codificação da lógica.

domingo, 12 de junho de 2011

Onde começa a produtividade

Depois da inovação vem a produtividade. Temos que ser mais produtivos. Mas, conseguiremos ser tão produtivos a produzir cortiça como os Alemães a produzir automóveis?

A produtividade é definida como a relação entre a produção e os factores de produção utilizados. Ou seja, quanto mais produzirmos, usando menos recursos, mais produtivos seremos. Mas terá que ser necessariamente assim? 

No seu livro Predictably Irrational, Dan Ariely descreve o caso das pérolas negras que se tornaram num bem de luxo após terem sido expostas numa montra da 5ª Avenida de Nova Iorque, com um preço exorbitante. A produtividade aumentou consideravelmente.

Durante muitos anos procurou-se que o processo de desenvolvimento de software fosse como um processo industrial de produção de bens. Este processo caracteriza-se por tentar que o factor humano se torne similar aos restantes factores, como seja a matéria prima. Por exemplo, se aumentarmos a quantidade de matéria prima e reduzirmos o seu custo, podemos aumentar a produção e a produtividade. O mesmo raciocínio aplica-se ao trabalho humano. Quando este processo é bem sucedido é até possível substituir trabalho humano por trabalho automatizado, por exemplo usando robots. 

Contudo, logo nos anos 70, começou a haver indicações que para o desenvolvimento de software poderia não ser possível aplicar as mesmas regras. Fred Brooks observou que adicionar mais pessoas a um projecto de software que está atrasado relativamente ao planeado ainda o atrasa mais, o que é conhecido como a Lei de Brooks.

Não obstante esta constatação, continuou-se durante mais cerca de 20 anos a tentar industrializar o processo de desenvolvimento de software. Após os sucessivos insucessos, surgem, no final do anos 90, propostas de ágeis para o desenvolvimento de software que negam muitas das práticas industriais clássicas. Estas propostas, em vez de lutarem contra a intangibilidade do software, e consequente  dificuldade em o medir, procuram tirar partido dessas características. Assim, propõem um desenvolvimento pronto para se adaptar à mudança e dela tirar partido. 

Os métodos ágeis percebem que a produtividade no desenvolvimento de software não está na quantidade do produto mas na sua qualidade e, muito em particular, no seu impacto. Em onde Onde pára a inovação falo sobre o caso do Facebook.

Ou seja, na produção de certos tipos de produtos a produtividade começa na inovação.

Por outro lado, a palavra produtividade tem um peso histórico. Especialmente quando se torna programática, na forma de batalha da produção. Na batalha da produção do aço na China, durante o grande salto em frente, o resultado foi a produção de grandes quantidades de aço, de baixa qualidade, e que não servia para nada. Nestas batalhas, na memória, ficam apenas os culpados das derrotas anunciadas e os heróis das vitórias que foi necessário inventar.

domingo, 5 de junho de 2011

Onde pára a inovação

Há palavras que valem mais do que outras. Palavras que adquirem um valor que ultrapassa o seu significado. Normalmente um valor emotivo ao qual é difícil ficar indiferente, até por este ser partilhado por um grupo.

Estas palavras têm uma função importante, são mobilizadoras e desencadeiam comportamentos. Contudo, dado que o seu valor ultrapassa o seu significado, estes comportamentos podem não ter um fundamento na realidade. Esta situação não é necessariamente negativa, por exemplo algumas teorias económicas defendem que o optimismo do mercado é fundamental para o crescimento. O difícil é perceber a fronteira entre o optimismo e a bolha que ele pode criar.

Uma palavra que ganhou nos últimos anos algum deste efeito placebo, é a palavra inovação (sobre o efeito placebo associado ao valor ver Why a 50-cent aspirin can do what a penny aspirin can't de Dan Ariely). Ainda é cedo para avaliar se os comportamentos gerados criaram as sinergias necessárias e se estas tiveram de facto um impacto social e económico, mas, a palavra também funcionou como um agente de esperança.

No clássico The Innovator's Dilemma: When New Technologies Cause Great Firms to Fail, Clayton M. Christensen estudou a indústria dos discos de computador. Esta indústria teve ciclos de inovação muito rápidos entre os anos 70 a 90. Ele observou que, nas empresas que foram sucessivamente perdendo a corrida pela inovação, a gestão fez o que devia ter feito, esteve centrada nas necessidades dos clientes. E, paradoxalmente, a tecnologia inovadora deve origem nessas empresas, ou então, elas tinham os conhecimentos necessários para criar a tecnologia inovadora. O que se passou foi que os seus clientes não estavam interessados na nova tecnologia.

As empresas que inovaram foram aquelas que descobriram/criaram clientes para a tecnologia. Estes clientes permitiram criar um novo mercado. Neste mercado a nova tecnologia aperfeiçoa-se e acaba por integrar o mercado dos clientes que inicialmente eram reticentes à mudança tecnológica. Quando isso acontece, as empresas que eram dominantes são destronadas pelas empresas emergentes.

A engenharia de requisitos é a fase do desenvolvimento de um sistema de informação em que se identificam as necessidades do cliente e se escreve uma especificação do sistema de informação a desenvolver. Dada a imaterialidade do software e a complexidade do contexto onde o problema existe, o engenheiro de requisitos tem bastante margem de manobra para criar/influenciar a definição do problema.

Nesta fase de engenharia de requisitos é possível inovar, no sentido em que é possível reformular o problema num contexto não previsto pelo cliente. Alguns gurus da engenharia de requisitos chamam a isto inventar requisitos. 

Esta diferença entre a engenharia de software e as engenharias mais clássicas está relacionada com a capacidade de um sistema de informação criar/alterar uma linguagem, como referi em A linguagem da informação. O que pode incluir alterar o significado de palavras, veja-se a palavra amigo no Facebook. Por outro lado, para ser inovador, um sistema de informação pode não necessitar de tecnologias disruptivas. Em A Face de todas as Faces refiro que a complexidade funcional do Facebook é diminuta e a sua complexidade tecnológica é o resultado do seu sucesso, necessidade de fornecer serviços a um grande número de utilizadores, e não a sua causa.