Reflexão sobre o Processo de Desenvolvimento de Software: o Fator Humano.

Considerando o fator humano no desenvolvimento de software

A adoção de métodos Agile depende menos de processos e ferramentas que de pessoas. Para que a abordagem Agile (ou qualquer outro processo) funcione em uma equipe, o importante fator humano deve receber a devida atenção. É um novo desafio para gerentes e chefes de projeto. Aya Elgebeely discute como economizar nos esforços de iniciação de processo, custos e tempo ao tornar claras as prioridades para chefes e gerentes e esclarecer a melhor maneira de conquistar a confiança das equipes.

Aya Elgebeely, Application Developer, IBM

Aya Elgebeely trabalha atualmente no desenvolvimento de aplicativo no departamento ACGC da IBM no Egito. Anteriormente, Aya trabalhou como engenheira de software em equipes Agile por dois anos na Symbyo Technologies LLC, em Tampa, Flórida, EUA. Nesses dois anos, ela desempenhou diferentes funções, incluindo desenvolvimento e teste Agile, desenvolvimento e monitoramento de processo, trabalho com diferentes clientes, análise de requisitos e planejamento de projeto. Aya também trabalhou como professora assistente no Departamento de Ciência da Computação da Faculdade de Computadores e Informações da Universidade do Cairo por dois anos, onde ensinou metodologias de engenharia de software, programação e outros tópicos relacionados à ciência da computação.



30/Out/2012

"Agile" tornou-se um termo da moda na última década

Na última década, a palavra "Agile" recebeu muita atenção na comunidade de desenvolvimento de software. Toneladas de artigos, podcasts, conferências e livros foram produzidos para fazer o desenvolvimento de software atingir seu pico, melhorar a produtividade e lidar com a dinâmica e as alterações constantes no desenvolvimento de software e na tecnologia da informação.

O desenvolvimento Agile promete a empresas, executivos e gerentes de projeto que, ao adotar métodos Agile, a produtividade das equipes será drasticamente ampliada, a entrega de código será mais frequente e as empresas conseguirão maior satisfação do cliente e melhor renda. Mas, ao trabalhar com equipes Agile, houve sucessos e fracassos, independente de a equipe estar seguindo ao pé da letra os princípios e práticas Agile. O fracasso não estava relacionado à disciplina com que seguiam as práticas, mas sim à conveniência e à confiança dos membros da equipe nessas práticas. Gerentes e chefes de equipe não devem esperar que as pessoas gerem resultados superiores enquanto seguem, sem objetivo, um conjunto de práticas que se mostrou eficiente para outras equipes.

Segundo minhas observações, fazer com que métodos Agile (ou qualquer outro processo de equipe) funcione depende de conquistar a confiança da equipe e de gerar motivação nas pessoas. Sem a confiança, ninguém permitirá que um processo realmente funcione e mostre seus frutos.

Gerentes, chefes de equipe e executivos precisam passar por uma mudança de paradigma para deixar as práticas de gerenciamento da era industrial e o velho folclore da gerência. Esse folclore concentrava-se em máquinas (ou em tratar as pessoas como máquinas), alto rendimento, produtividade e eficiência, em vez de ser orientado para as pessoas. Esse dogma faz os gerentes acreditarem que, se dois trabalhadores não podem concluir uma tarefa a tempo, quatro deles podem.


Alterar prioridades, colocar as pessoas primeiro

Vamos visualizar a melhoria no processo de software como uma pirâmide com três camadas, com as Ferramentas no topo. Essas ferramentas ajudam a equipe a adotar o processo de maneiras mais rápidas e fáceis de usar.

A segunda camada da pirâmide são os Processos, que são as etapas, políticas, restrições e regras de negócios. O objetivo é que um grupo de pessoas sigam esses processos para alcançar os objetivos institucionais.

A base da pirâmide é formada pelas Pessoas, pois elas são responsáveis por implementar os processos e usar as ferramentas.

Pirâmide de prioridades com três camadas
Pirâmide de prioridades com três camadas

Agora, vamos considerar dois cenários: um que aplica as categorias da pirâmide de cima para baixo e outro que as aplica de baixo para cima.

Ferramentas em primeiro lugar

Aplicar a pirâmide de cima para baixo é muito comum em nossas corporações e organizações. Qualquer gerente ou chefe de equipe utiliza alguma das interessantes ferramentas de gerenciamento de ciclo de vida do aplicativo. Essas ferramentas são usadas por várias empresas de sucesso e possuem muitos recursos de ponta. Essa ferramenta exige que os membros da equipe (pense em Pessoas) dediquem tempo para aprender como usar e integrar em suas tarefas diárias. O gerente convence a empresa a comprar a ferramenta e mostra à equipe de gerência superior como ela irá melhorar o ritmo de trabalho e a produtividade. Então, a empresa designa alguns funcionários que aprenderão a usar a ferramenta e criarão um processo para usá-las. O processo deverá ser seguido pelos demais membros da equipe. A equipe designada apresenta um conjunto de sessões de treinamento aos funcionários, apresenta a interface elegante, gráficos e relatórios, e os convence a usar os todos os recursos legais implementados na ferramenta. Quando todos os membros da equipe começam a usar a ferramenta e a aplicar o processo de negócios da empresa, a tendência de usar a ferramenta de forma eficiente e eficaz e seguir o processo está correlacionada com a convicção da equipe e a conveniência de uso da ferramenta.

Mas, se a ferramenta ou processo for complexo demais ou se não trouxer benefícios significativos para os membros da equipe (exige mais esforço e tempo), a adesão da equipe ao processo e a aceitação da nova ferramenta não serão como planejado no início. Nesse caso, ou a iniciativa de processo fracassa ou outros processos de cumprimento são aplicados para forçar a equipe a cumprir o conjunto de processos que a empresa emitiu.

A falha esperada ocorre porque as Pessoas, que são o foco e o fator principais para começar qualquer nova iniciativa de melhoria de processo, não foram incluídas na decisão. Sem as pessoas, nada é feito. Em outras palavras, sem elas, é quase impossível conseguir um processo sustentável e bem-sucedido que flua naturalmente por uma equipe organizada por si mesma, na qual o acompanhamento torna-se uma ação auxiliar ou secundária, mas o trabalho é feito por membros altamente qualificados e motivados que trabalham em harmonia.

Pessoas em primeiro lugar

No entanto, se esse cenário fosse seguido de baixo para cima (considerando primeiro as pessoas, em seguida os processos que elas seguem e por último as ferramentas que usam), a possibilidade de êxito na adoção e convicção seria muito maior. Isso porque os gerentes estarão lidando com os principais problemas que prejudicam a produtividade e eficiência da equipe desde o começo, antes de iniciar qualquer ação.

É importante conversar com as pessoas, conhecer seus problemas e ter a participação delas na criação de processos adequados que elas irão seguir. Quando se permite que a equipe procure ferramentas relevantes ou inventem suas próprias ferramentas, o índice de adoção e a probabilidade de sucesso serão muito maiores que ao seguir o caminho tradicional, como descrito no primeiro cenário.

É preciso concentrar no fato de que o desenvolvimento de software é intrinsecamente uma atividade humana. As pessoas são o fator mais importante para o sucesso do projeto. A moral e a motivação da equipe são cruciais no ambiente de trabalho.


A ilusão da alta tecnologia vs. fatos sobre os trabalhadores do conhecimento

As pessoas são bagunçadas, não são perfeitas e não seguem um gráfico de Gantt. O livro Peopleware, de Tom Demarco e Timothy Lister (citado em Recursos), lança luz sobre esse problema com uma resolução muito óbvia. Como eles resumem no livro, a causa de falha observada mais frequente foi "política do escritório". Incluídos nessa política de escritório estão problemas de relações públicas e de contratações, desacordos com chefes ou clientes, falta de motivação e alta rotatividade dos funcionários. É óbvio que os principais problemas do nosso trabalho não são técnicos, mas sim sociais. No entanto, adotar um comportamento orientado a pessoas e colocar as pessoas em primeiro lugar são coisas que recebem a menor prioridade.

Demarco e Lister também falaram sobre a "ilusão da alta tecnologia": a maioria das pessoas aplica alta tecnologia, usando as últimas técnicas, melhores ferramentas e eficientes componentes de hardware para desenvolver produtos e organizar assuntos. Tendo que trabalhar em equipes, projetos e outros grupos de trabalho fechados, estamos no meio do negócio de colaboração humana.

Alguns gerentes, sem querer, agem como a pessoa que perdeu as chaves em uma rua escura e as procura na rua ao lado, porque lá "a iluminação é melhor". Muitos gerentes dedicam mais esforço e preocupação ao lado técnico, em vez do humano, porque é mais fácil assim.


Refletindo sobre o Manifesto Agile

A base desta discussão é chamar a atenção dos adotantes de Agile em cargos de chefia e gerência para este fato: focar nas pessoas é essencial, um pilar principal do sucesso dos negócios, como foi dito no Manifesto Agile

Através desse trabalho, passamos a dar valor a:

Indivíduos e interações em vez de processos e ferramentas
Software funcional em vez de documentação abrangente
Colaboração com o cliente em vez de negociação de contrato
Responder a mudanças em vez de seguir um plano

Ou seja, embora os itens à direita tenham valor, nós valorizamos mais os itens à esquerda.

O Manifesto Agile claramente coloca mais valor no lado da colaboração humana e na aceitação das mudanças do que na atualização de ferramentas ou no alinhamento com planos e contratos. No entanto, as equipes tendem a concentrar-se nas ferramentas e processos e a descartar o principal fator por trás deles, que são as pessoas que os usam.


Conclusão

Precisamos abandonar a atitude de que as pessoas são engrenagens em uma máquina: se uma delas ficar desgastada, pode ser substituída facilmente por outra. É essencial para os chefes mostrarem respeito e apreciação aos seus funcionários, incluí-los ao tomar decisões sobre coisas que podem afetá-los, levar a sério suas opiniões e seu feedback e mostrar esse respeito por meio de demonstrações de calor humano, compaixão, humor, preocupação, interesse e compreensão. Alguns chamam isso de "fator humano". Mas muitos gerentes são ameaçados por tudo que seus trabalhadores fazem para declarar sua individualidade.

Não existe uma loja de pessoas na qual a equipe de software pode ser remontada. Ao focar na dinâmica do desenvolvimento, avaliamos o valor das pessoas com base em características de estado estável, como linhas de código ou número de documentos produzidos. No entanto, uma pessoa catalisadora ou um membro senior podem ser essenciais para o sucesso geral da equipe. Alguns membros são agentes de produtividade e motivadores da equipe. Os esforços deles são muito mais valiosos que os esforços de um ou mais membros da equipe que simplesmente cumprem seu trabalho.

Recursos

Aprender

Obter produtos e tecnologias

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Rational
ArticleID=843421
ArticleTitle=Reflexão sobre o Processo de Desenvolvimento de Software: o Fator Humano.
publish-date=10302012