Olá pessoal, tudo certo?
Hoje quero discutir um tema que não está relacionado diretamente a atividade de desenvolvimento de software. Entretanto, proponho que durante a leitura desse texto, relacione o que apresento com essas atividade.
O texto não é complexo (eu acho). Mas pode ajudar a organizar algumas idéias na hora de procurar justificativas para uma boa análise, TDD, design ou discussão sobre arquitetura.
Vamos aos fatos…
O que é Entropia?
Considere os seguintes cenários:
- Tudo que você quer é um café quente - Sirva uma xícara de café, aguarde alguns instantes e perceberá que a natureza se encarregará de deixar o seu café “gelado”.
- Você quer um sorvete gelado - Sirva-se e espere! Perceberá que, naturalmente, seu sorvete derreterá.
Cientificamente, a explicação para esse problema é encontrada na termodinâmica. Em termos técnicos, todo trabalho pode ser convertido em energia (primeira lei da termodinâmica). Entretanto, essa energia não poderá ser convertida integralmente, de volta, em trabalho. A entropia procura mensurar a parcela de energia que se perde nesse processo.
Entropia é uma função de estado que cresce naturalmente durante processos naturais. Ou seja, naturalmente, ela aumenta. Isso significa que, para manter o nível de energia, você precisará continuar transformando trabalho.
Manter as coisas como estão, exige trabalho.
Entropia e o Senso de Desordem
Grosseiramente, passou-se a utilizar o termo entropia para designar a teoria de que tudo tende a desordem. Ou seja, deixe algo parado e naturalmente ele se perderá. Para manter algo simplesmente funcionando, há a necessidade de supervisão, acompanhamento e manutenção.
Imagine que você deixou uma pilha organizada de papéis, sobre uma mesa, em uma sala fechada, durante um longo período de tempo. Há grandes chances de, ao reabrir a sala, encontrar todas as folhas espalhadas no chão.
Agora imagine que você deixou papéis desorganizados, jogados no chão, em uma sala fechada, durante um longo período de tempo. Há grandes chances de, ao reabrir a sala, encontrar essas mesmas folhas onde as deixou: jogadas no chão (em posições diferentes, mas nunca organizadas sobre a mesa)!
Organização não se estabelece naturalmente.
Ação, Decisão e Gestão
De todas as atribuições relacionadas à gestão, para mim, a mais importante é a tomada de decisão. Se tivesse que resumir gestão em uma frase curta diria: “Gestão é a arte de tomar decisões”
Decisões são tomadas todos os dias, por todo mundo, invariavelmente. Uma decisão sempre precede uma ação. Não há, de forma alguma, ação sem decisão.
Seja para manter as coisas como estão, seja para evoluir, há necessidade de trabalho (de ação). Logo, há decisão e, consequentemente, gestão.
Estratégia
Todo mundo toma decisões em uma organização. Logo, em uma organização, todos são gestores.
Em uma organização, nem sempre todas as decisões parecem estar alinhadas a um mesmo propósito. E esse é um grande problema.
Em qualquer tipo de organização, espera-se que todas as ações de seus integrantes estejam relacionadas a seus objetivos (compartilhados entre organização e indivíduos). Para isso, há a necessidade que todas as decisões sejam tomadas observando os mesmos critérios.
Penso que, quando uma organização define e compartilha um padrão coerente para tomada de decisões está, também, direcionando ações para atingimento de resultados. Por isso, um padrão coerente de tomada de decisões pode ser chamado de estratégia.
… e o desenvolvimento de software
Todo software produzido, tende, com o tempo, a perder sua “energia”. Há um direcionamento natural para a obsolescência. O princípio (em senso comum) da entropia indica que até mesmo a manutenção da proposição de valor atual de um software exigirá trabalho.
Executando trabalho, não há como ignorar a tendência natural à desordem. O natural é que a arquitetura de qualquer sistema fique, aos poucos, desfigurada. É natural que todo design seja “ofendido” e ignorado. É natural que padrões de codificação sejam desrespeitados. Manter a organização exige ação consciente.
Toda ação visando manutenção ou ampliação da proposta de valor de um software exige decisão. Todos os envolvidos nessas ações acabam tomando decisões sobre como proceder. De uma forma ou de outra, todos são “gestores”. Logo, todos precisam ter um padrão coerente e compartilhado para tomada de suas decisões. Em uma palavra: é necessário uma estratégia.
Resumindo: Mesmo para manter a proposição de valor de um software é necessária a formulação de uma boa estratégia.
Abstraindo um pouco, por todo o exposto, poderíamos dizer que para manutenção de qualquer coisa – empregabilidade, conhecimento, competência, valor, etc – é necessário estratégia, senão, a entropia pega!
Por hoje, era isso
Felipe
março 2, 2011
clap clap clap!
Felipe Rodrigues
março 2, 2011
Grande Elemar…
Ótimo post. Eu tenho alertado as pessoas para a questão de entropia já faz algum tempo.
Concordo com o seu post em todos os sentidos. Gostaria no entanto de apontar para o fato de que, além do custo que temos para ficar no mesmo lugar por causa da entropia, como quando estamos nadando contra uma correnteza, a entropia significa também uma grande resistência para quando queremos mudar nosso estado atual.
Vejo isso em processos, tecnologia, e tudo mais que se enquadra no quesitos de um sistema complexo.
Dito isso, parabéns pelo post…
Grande abraço!
Arthur
março 2, 2011
Otimo post.
Mas Felipe, isso nao se enquadra somente em um sistema complexo, vale para qualquer coisa na vida.
Qualquer coisa que seja necessario manter, e manter quer dizer manutencao.
Em qualquer roda de conversa sempre alerto que o dificil nao eh o fazer, eh fazer pensando em minimizar o custo de manutencao e desta forma ‘poupando tempo’ para que maia coisas possam ser realizadas.
Ateh um gramado stressa se possuir muitos pontos onde nao seja possivel cortar com carrinho pra manter, e com o passar do tempo, vamos relaxando e nao realizando mais o trabalho da forma necessaria, e eh ai que mora o perigo, seja o trabalho ou tarefa que for.
Abracos
Arthur