Desafios de gerenciamento de projetos de software — e como lidar com eles

A necessidade de desenvolvimento de software eficiente assumiu maior importância à medida que as empresas introduzem cada vez mais serviços digitais e adicionam recursos de automação para aprimorar os processos de negócios. O gerenciamento de projetos de software pode não estar no topo das listas de prioridades dos CIOs, mas é algo que os líderes de TI terão que dominar.

Há muitos desafios envolvidos no gerenciamento de projetos de software, e os executivos de TI que aprenderem como lidar com esses obstáculos podem ajudar suas organizações a criar aplicativos melhores para impulsionar o crescimento dos negócios e aprimorar a experiência do cliente.

Aqui estão alguns dos desafios mais prováveis que os líderes e equipes de TI enfrentam com projetos de software e como eles podem resolvê-los.

Entregar no prazo e dentro do orçamento

Concluir projetos de software em tempo hábil enquanto permanece dentro do orçamento é um desafio de longa data do desenvolvimento de software. Uma série de coisas pode acontecer para causar atrasos e aumentar os custos.

Uma solução possível é adotar a metodologia ágil de desenvolvimento de software. Agile exige colaboração entre equipes multifuncionais, bem como usuários finais, e promove planejamento adaptativo, desenvolvimento evolucionário, melhoria contínua, flexibilidade para responder a mudanças nos requisitos e entrega antecipada de produtos.

“Os projetos ágeis de desenvolvimento de software iteram o ciclo de planejar, fazer, verificar, ajustar – e o usuário final ou representante que patrocina [o projeto] é fundamental em todas essas etapas”, diz Ola Chowning, Sócio da empresa global de pesquisa e consultoria em tecnologia ISG.

O método em cascata de reunir todos os requisitos, projetar toda a capacidade do software para atender a todos os requisitos, criar todos os recursos necessários e revisar e obter adesão dos usuários finais raramente é usado hoje, diz Chowning. “Esse método mais antigo, a propósito, é onde os desafios dentro do prazo e do orçamento eram os mais onerosos, por causa do jogo de adivinhação criado quando a equipe de software tinha que estimar grandes volumes de trabalho e assumir algum nível de aceitação ou retrabalho por usuários finais”, diz ela.

O Agile permite que a equipe de software e os usuários finais “aprendam coletivamente a planejar melhor, trabalhar melhor e se ajustar mais rapidamente, e os resultados se tornam muito mais previsíveis à medida que a maneira como a equipe trabalha se torna mais previsível”, diz Chowning. “No prazo e dentro do orçamento é muito mais fácil julgar ciente das expectativas dos usuários e dos desenvolvedores”.

Criar e manter uma cultura ágil

Embora a adoção do ágil faça sentido para o desenvolvimento de software em muitas organizações, ela pode apresentar obstáculos. E muitos líderes de TI que pensam que suas organizações instituíram práticas ágeis não conseguem entender que o que suas equipes estão realizando não é, de fato, ágil.

“A interseção de práticas ágeis de desenvolvimento de software e gerenciamento de projetos ‘tradicional’ continua sendo um desafio para muitas organizações”, diz Chowning. “Até agora, você pensaria que já teríamos quebrado essa noz, mas ainda parece bloquear muitos de nossos clientes”.

Considerando que o desenvolvimento de software é abordado com uma maneira estritamente ágil de trabalhar – sprints repetidos, histórias e vários lançamentos que constroem o produto de software final de maneira iterativa – muitas organizações continuam lutando enquanto tentam gerenciar projetos em cascata, Chowning diz.

“Isso geralmente começa durante o caso de negócios do projeto para financiamento, onde normalmente somos solicitados a estimar o gasto total a ser relatado em uma estrutura tradicional de requisitos, design, construção, teste e implantação em cascata”, diz Chowning.

Organizações mais maduras estão adotando uma abordagem de gerenciamento de projetos que, em vez disso, estabelece a estimativa do custo geral para o valor geral em uma abordagem mais estável ao longo do tempo, diz Chowning. “Aqueles que estão usando essa abordagem ágil de gerenciamento de projetos são capazes de colher alguns dos principais benefícios reais do ágil, [mas] pode exigir algum ajuste nas decisões de investimento ou mesmo nas práticas financeiras em termos de gastos do projeto”.

Um grande desafio para as organizações de TI é conduzir o modelo ágil no nível corporativo, diz Christian Kelly, Diretor-Gerente da empresa de consultoria e serviços de tecnologia Accenture. “O Agile no nível da equipe agora é difundido, mas dados recentes sugerem que não está indo tão bem no nível corporativo, já que a maioria das organizações luta para conectar estratégias ao trabalho que suas equipes estão fazendo”, diz ele.

Isso limita a capacidade das organizações de priorizar portfólios, planejar capacidade, gerenciar dependências e conectar metas a resultados, diz Kelly. “Para cumprir a promessa do ágil, as organizações precisam implementar a cultura ágil, os sistemas e as melhores ferramentas necessárias para conectar melhor as estratégias aos resultados”, diz ele.

Alinhar projetos com metas organizacionais gerais

“Os projetos de TI não podem ser feitos em uma bolha”, diz Chetna Mahajan, Diretora Digital e de Informações do provedor de plataforma de analytics Amplitude. “Se a sua iniciativa não estiver alinhada com as prioridades do negócio, você não está preparado para o sucesso desde o início e estará nadando contra a corrente o tempo todo”.

Para garantir o alinhamento de negócios e adesão, todos os projetos de software devem ter um patrocinador executivo de negócios, diz Mahajan. Quando sua empresa anterior estava implementando software de configuração, preço e cotação (CPQ), os patrocinadores executivos incluíam Mahajan e o Diretor de Receita.

“Isso nos forneceu um canal de escalonamento para decisões e entregas comerciais e técnicas”, diz Mahajan. “Não era mais percebido como uma iniciativa de tecnologia e ganhou a visibilidade e a atenção de que precisava em toda a empresa. Não apenas ficamos abaixo do orçamento e dentro do prazo, mas também conseguimos aumentar a automação em 30% e reduzir o ciclo de vendas em algumas semanas”.

A maioria dos projetos de tecnologia falha porque carece de indicadores-chave de desempenho (KPIs) concretos, diz Mahajan. “Eu classifico as métricas do projeto principalmente em dois grupos, um que monitora a execução do projeto e o outro que mede o resultado do negócio”, diz ela. “O que não podemos medir, não podemos melhorar. Embora seja importante manter o rumo do orçamento, escopo e cronograma, devemos ficar de olho nos KPIs de negócios”.

Os KPIs de um projeto devem ser específicos e vinculados aos objetivos da empresa. “Isso não apenas ajuda a criar uma cultura de responsabilidade, mas também permite que as empresas validem seu caso de negócios para informar futuras decisões de investimento”, diz Mahajan.

Conquistar stakeholders e patrocinadores

A cultura costuma ser um desafio importante na capacidade de gerenciar projetos de software de maneira ágil, diz Chowning, porque os patrocinadores e as principais partes interessadas do projeto precisam estar confortáveis e dispostos a trabalhar da maneira mais adequada ao ágil.

“Muitos ainda podem querer, em vez disso, tentar trabalhar de maneira mais tradicional – criar todos os requisitos, projetar todo o estado final e só então construir e implantar todo o estado final”, diz Chowning. “Isso pode representar um dilema, pois a prática de desenvolvimento de software e a prática de gerenciamento de projetos tentam prosseguir em duas abordagens completamente diferentes e desconectadas”.

Educar os patrocinadores e as principais partes interessadas em uma abordagem ágil de gerenciamento de projetos e ajudá-los a ajustar comportamentos é fundamental para gerenciar as expectativas e permitir que o desenvolvimento de software prossiga da maneira mais eficaz e eficiente, diz Chowning.

É importante envolver a representação do usuário desde o início e continuamente ao longo das iterações do desenvolvimento de software, independentemente da metodologia que está sendo usada, diz Chowning.

“Já se foram os dias em que bastava falar com os usuários antecipadamente e não envolvê-los novamente até que algum teste místico de aceitação do usuário no final do projeto”, diz Chowning. “Usuários ou representantes de usuários [devem] estar envolvidos em todos os aspectos do desenvolvimento e design de software. Pequenos desenvolvimentos de recursos, protótipos, testes e apresentações são meios úteis para garantir que os usuários estejam envolvidos e que o feedback seja obtido constantemente”.

Necessidade de novas habilidades de desenvolvimento – e gerenciamento

“Um dos maiores desafios que enfrentamos [é] como garantir que estamos fornecendo continuamente uma forte experiência de desenvolvedor e gerenciando o aprimoramento contínuo de nossos funcionários à medida que as tecnologias evoluem”, diz Amit Sharma, CTO da empresa de tecnologia financeira Broadridge Financial Solutions e ex-CIO da Western Union, provedora de serviços financeiros.

“Isso significa criar soluções [automatizadas], fornecer um ambiente seguro e estável para desenvolver e testar e equipar nossos desenvolvedores com um conjunto de ferramentas que facilita uma experiência simples e gerenciável e alivia a sobrecarga e o fardo da administração pesada”, diz Sharma.

Com o ritmo acelerado de mudanças no desenvolvimento de software, as empresas precisam treinar engenheiros de software e outros para se adaptar às novas tecnologias, linguagens e processos de desenvolvimento. Os líderes de TI e produtos precisam reconhecer que pode haver interrupções nos projetos devido à necessidade de desenvolver novos conjuntos de habilidades, diz Sharma. Eles também precisam valorizar as pessoas envolvidas no desenvolvimento de software.

“É fundamental que reconheçamos que nossas equipes de tecnologia criaram soluções ao longo de muitos anos e, como resultado, tornaram-se especialistas no assunto não apenas do sistema, mas também do produto”, diz Sharma. “É [vital] trazê-los conosco para a próxima geração de nosso produto, independentemente da tecnologia em que se baseia”.

Além da necessidade de novas habilidades de desenvolvedor, muitos líderes de TI precisam aprimorar suas próprias habilidades.

“Muitos líderes de TI sofrem de uma enorme lacuna de talentos na capacidade de entender as necessidades do usuário, criar roteiros de software que atendam às necessidades de negócios, conduzir trade-offs contra esses roteiros e passar do pensamento baseado em processos para o valor do cliente e o pensamento da jornada do cliente”, diz Kelly, da Accenture. “É por isso que conceitos como mapeamento do fluxo de valor, tarefas/propostas de valor para o cliente e design thinking se tornaram tão importantes”.