auto-organização

Está lá nos princípios do Manifesto Ágil:
“The best architectures, requirements, and designs emerge from self-organizing teams.”
Muitas implementações de modelos como o CMMI definem um processo-padrão, em que são estabelecidos papéis, atividades, etapas, documentos, etc. Apesar de indicar a necessidade de adaptação do processo-padrão para cada projeto, na prática esses modelos, através desse padrão, exercem uma forte influência no processo que é instanciado. Portanto, podemos dizer que há nesse caso um modelo organizacional que impõe às equipes uma forma de organização.
Os agilistas entendem que isso é ruim, que o melhor é que as equipes se auto-organizem, que definam seus próprios processos, seus próprios papéis, suas próprias atividades, etc. E isso é realmente fácil de aceitar. Desenvolvimento de software é uma atividade intelectual. Como qualquer outra atividade intelectual, não faz muito sentido impor um processo de trabalho. Imagine a imposição de um modelo de trabalho a uma equipe de escritores, de compositores, de arquitetos, de publicitários… Estabeleça metas e deixe que sua equipe se organize da forma que melhor julgar.
Há quem enxergue nisso uma anarquia completa, uma desvalorização peremptória de processos. Isso é um erro crasso. Agilistas valorizam sim processos. Isso fica claro no Manifesto:
“We have come to value individuals and interactions over processes and tools. While there is value in the item on the right, we value the item on the left more.”
A diferença fundamental é o olhar que seessos. As próprias equipes são responsáveis por seus processos. Não há imposição:

Está lá nos princípios do Manifesto Ágil:

The best architectures, requirements, and designs emerge from self-organizing teams.

Muitas implementações de modelos como o CMMI definem um processo-padrão, em que são estabelecidos papéis, atividades, etapas, documentos, etc. Apesar de indicar a necessidade de adaptação do processo-padrão para cada projeto, na prática esses modelos, através desse padrão, exercem uma forte influência no processo que é instanciado. Portanto, podemos dizer que há nesse caso um modelo organizacional que impõe às equipes uma forma de organização.

Os agilistas entendem que isso é ruim, que o melhor é que as equipes se auto-organizem, que definam seus próprios processos, seus próprios papéis, suas próprias atividades, etc. E isso é realmente fácil de aceitar. Desenvolvimento de software é uma atividade intelectual. Como qualquer outra atividade intelectual, não faz muito sentido impor um processo de trabalho. Imagine a imposição de um modelo de trabalho a uma equipe de escritores, de compositores, de arquitetos, de publicitários… Estabeleça metas e deixe que sua equipe se organize da forma que melhor julgar.

Há quem enxergue nisso uma anarquia completa, uma desvalorização peremptória de processos. Isso é um erro crasso. Agilistas valorizam sim processos. Isso fica claro no Manifesto:

We have come to value individuals and interactions over processes and tools. While there is value in the item on the right, we value the item on the left more.

A diferença fundamental é o olhar que se dá a processos. As próprias equipes são responsáveis por seus processos. Não há imposição:

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Um outro erro comum é achar que os agilistas são niilistas quanto a processos, ou que se deve partir do nada e deixar que as equipes construam naturalmente seus próprios processos. Esse mito nasceu da proposta dos agilistas de simplificação drástica dos processos tradicionalmente estabelecidos. Mas isso definitivamente não quer dizer que se deve partir do nada. O ideal é partir de um modelo estabelecido, como o Scrum, e ir adaptando ao longo do tempo. Aqui na Fortes por exemplo indicamos o XP. Mas todas as equipes já realizaram suas adaptações. Hoje somente uma delas trabalha com programação em par de forma sistematizada, por exemplo.

E o autogerenciamento?

Curiosamente, pelos menos nas listas nacionais, mais se fala em autogerenciamento que em auto-organização. Esses conceitos, apesar de parecidos e “intersecionados”, são diferentes. Autogerenciamento implica em auto-organização. Mas o contrário não é verdade. Autogerenciamento é a inexistência de um gerente controlando o processo. Auto-organização é a inexistência de uma força externa à equipe impondo um modelo de trabalho. Autogerenciamento requer equipes e membros maduros. Auto-organização, não necessariamente (apesar de aconselhável).

Apesar de serem conceitos diferentes, e apesar do Manifesto não mencionar explicitamente o autogerenciamento, isso não quer dizer que não se deve buscá-lo. Em desenvolvimento de software, como em qualquer outra atividade do conhecimento, o ideal é construir equipes autogerenciadas. Para mim, um dos objetivos do Scrum Master deve ser se fazer desnecessário. Esse estado representaria o autogerenciamento.

Ainda assim, mesmo que toda a comunidade ágil fale em autogerenciamento, mesmo que a utilização de métodos ágeis levem à construção de equipes autogerenciáveis, não me sinto confortável de dizer que é um conceito diretamente suportado pela filosofia ágil.

·

·

atualização [07/08/2009]

Sugiro fortemente a leitura do comentário do Fábio Akita.


5 comentários on “auto-organização”

  1. Hildeberto diz:

    Interessante… então numa equipe auto-gerenciada todo mundo é lider?

    A propósito, saindo um pouco do assunto, mas dando uma sugestão para um futuro post. Uma coisa que sinto falta é uma discussão ampla sobre o gerenciamento financeiro de projetos ágeis. Como considerar as mudanças ao longo do projeto com o orçamento contratado?

  2. Clavius Tales diz:

    Oi, Hildeberto.

    então numa equipe auto-gerenciada todo mundo é lider?

    Não é bem líder. Líder é algo mais amplo. Uma equipe autogerenciada não requer um gerente, que controle o processo, as atividades, os prazos, etc. A equipe já está tão treinada e madura que não há necessidade de alguém controlando o que deve ser feito, se foi feito, etc. Líderes em geral são sempre necessários. São raríssimas as equipes que podem por exemplo prescindir de um líder técnico. A não ser uma como essa aqui: Martin Fowler, Kent Beck, Ron Jeffries, Bob Martin e Ward Cunningham. Já pensou, uma equipe dessa?

    A propósito, saindo um pouco do assunto, mas dando uma sugestão para um futuro post. Uma coisa que sinto falta é uma discussão ampla sobre o gerenciamento financeiro de projetos ágeis.

    Houve uma discussão recente numa das listas nacionais de métodos ágeis. Acho que foi na Scrum-Brasil. O gerenciamento financeiro de projetos ágeis é geralmente muito simples. Como a equipe custa o mesmo valor mensalmente, e como seus membros são alocados integralmente, esse gerenciamento é simples.

    Como considerar as mudanças ao longo do projeto com o orçamento contratado?

    Como em qualquer outro projeto: se as mudanças se mantiverem dentro do orçamento, sem problema. Se implicarem em novos custos, faz-se um aditivo ao contrato. A grande novidade que os métodos ágeis trouxeram nesse tema foi a facilidade e consequentemente o baixo custo de realizar mudanças. Simplesmente os novos itens são adicionados ao backlog e os itens desnecessários, retirados.

  3. Acho que estes artigos vão ajudar nessas dúvidas:

    O Manifesto Ágil, ou Como se Tornar o Google
    http://www.akitaonrails.com/2008/10/7/off-topic-o-manifesto-gil-ou-como-se-tornar-o-google

    Agilidade, Caos e Auto-Organização
    http://www.akitaonrails.com/2009/07/08/off-topic-agilidade-caos-auto-organizacao

    Screencast: Agilidade, Qualidade e Futuro
    http://www.akitaonrails.com/2009/07/07/screencast-agilidade-qualidade-e-futuro

  4. Clavius Tales diz:

    Oi, Akita.

    Um simples comentário: absolutamente genial.

    Ainda não tinha assinados seus feeds pois achava que você só falava de Rails. Feito, portanto. E aguardando ansiosamente pelos off-topics.

  5. […] Bem, inicialmente leia o post do Tales sobre auto organização. […]


Deixe um comentário