Gerência - Metodologias e Processos

Alinhando Engenharia de Software e Gestão de Projetos

O grande desafio daqueles que escrevem processos, é caminhar por esses dois mundos de maneira harmoniosa. O processo deve abordar os conceitos de gestão além das questões técnicas e, para completar, deve ser enxuto, adaptável e evitar redundâncias. Uma tarefa difícil? Podem apostar...

por Roberto Capra Neto



Quando nós, profissionais de TI pensamos em melhorar as técnicas da Engenharia de Software que utilizamos, é comum a associação com ferramentas e linguagens atuais, conceitos de Orientação a objetos, UML, etc.

Embora existam metodologias de processos unificados (RUP por exemplo), que tratam exclusivamente da questão da melhoria dos processos para Engenharia de Software, existe uma forte iniciativa de associação das metodologias conhecidas como ágeis na melhoria da qualidade de alguns processos e, por conseqüência, da qualidade do produto (software).

Tais metodologias (XP, FDD, entre outras), remetem à conceitos de melhoria do produto através de técnicas aplicadas em sua concepção, como divisão de papéis, integração, testes, e até mesmo programação em pares (aplicada no Extreme Programming), técnica que causa polêmica entre os Gestores de Projetos mais céticos.

Os benefícios da adoção de metodologias ágeis são inúmeros e não é raro encontrar cases de sucesso de sua aplicação. Elas favorecem o desenvolvimento de aplicações por atuarem diretamente no "X da questão" e serem de fácil implementação, tornando-se assim uma opção viável para as empresas de TI de modo geral.

O que ocorre é que tais metodologias são limitadas com relação a processos de Gestão. Por serem "ágeis", é certo que necessitam ter um foco, e para isso, muitas delas deixam de lado conceitos básicos de gestão para manter o foco nas técnicas que primam pela produtividade na construção do produto (software).

Não é objetivo desse artigo dissertar sobre os pontos fortes e fracos de metodologias ágeis, e sim, entendê-los e alinhar seus inúmeros benefícios a uma proposta de processo que não deixe de lado a gestão, que também é fundamental.

Em se tratando de Gestão, há modelos como o PMBOK por exemplo, desenvolvido pelo Project Management Institute (PMI), que detalham conceitos como: definições claras do escopo, controles, entregáveis, gerenciamento de recursos do projeto, riscos, aquisições, enfim, todas as etapas que compreendem atividades consideradas "não técnicas", existentes em qualquer projeto. Tais atividades devem ser planejadas em qualquer projeto mesmo com grau menor de formalização, ou utilização de controles menos rigorosos porém, modelos como o PMBOK, fornecem o que é necessário para organizar as áreas de conhecimento da Gestão de Projetos de maneira estruturada.

O grande desafio daqueles que escrevem processos, é caminhar por esses dois mundos de maneira harmoniosa. O processo deve abordar os conceitos de gestão além das questões técnicas e, para completar, deve ser enxuto, adaptável e evitar redundâncias. Uma tarefa difícil? Podem apostar.

Uma maneira de alinhar a Gestão de Projetos às técnicas envolvidas na disciplina da Engenharia de Software ao desenvolver seus processos, é seguindo um modelo de melhores práticas que alinhe o melhor dos dois mundos.

Para esclarecer, vamos dividir os assuntos Engenharia de Software e Gestão de Projetos organizados em áreas de processo, que é a nomenclatura comum do SEI (Software Engineering Institute).

Áreas de Processo relacionadas à Gestão de Projetos *

Planejamento do Projeto: Estabelecer e manter planos que definem as atividades do projeto.

Acompanhamento e Monitoramento do Projeto: Estabelecer uma visão de progresso das atividades do projeto, provendo ações corretivas quando ocorrerem desvios significativos de planejamento.

Gerenciamento de Acordos com Fornecedores: Gerenciar a aquisição de produtos e serviços de fornecedores, visando criar um acordo formal entre as partes.

Gerenciamento de Riscos: Identificar possíveis problemas antes que ocorram com o propósito de minimizar impactos adversos que possam ocorrer ao planejamento.

Gerenciamento Integrado de Projetos: Estabelecer e manter o gerenciamento do projeto prevendo o envolvimento de pessoas, integração de planos, visão compartilhada da integrações e estrutura da equipe que realizará os objetivos propostos pelo projeto.

Áreas de Processo relacionadas à Engenharia de Software **

Gerenciamento de Requisitos: Gerenciar os requisitos e identificando inconsistências entre requisitos do projeto, o planejamento e produtos de trabalho.

Desenvolvimento de Requisitos: Produzir e analisar requisitos do cliente, produto e componentes do produto.

Solução técnica: Projetar, desenvolver e implementar soluções para atender os requisitos especificados.

Integração de Produtos: Montar os produto e seus componentes garantindo que o produto, após integrado, funcione apropriadamente e seja entregue conforme esperado.

Verificação: Garantir que os produtos estão de acordo com as especificações..

Validação: Garantir que os produtos cumpra os objetivos pelos quais foi concebido, quando em seu ambiente pretendido.

* Estão relacionadas apenas as áreas de conhecimento dos níveis 2 e 3 pois para abordar Gestão quantitativa e Otimização de Processos seria necessário um artigo específico.

** A compilação acima foi traduzida e resumida de vários sites relacionados. Para maiores detalhe, consulte dois endereços muito úteis:

Se estudarmos com mais detalhes as áreas de processo acima, veremos que fazem parte do modelo de melhores práticas CMMI (Capability Maturity Model Integration). Ao focar cada uma dessas áreas no nível das práticas contidas em cada uma delas, é possível observar que estão incorporadas às necessidades da Gestão de Projetos e Engenharia de Software, de forma bastante completa e abrangente.

Quando o foco está nos processos para Engenharia de Software, é perfeitamente possível utilizar-se das técnicas disponíveis nas metodologias ágeis como suporte a implementação dos processos. O mesmo ocorre com o modelo PMBOK, que foca a Gestão de Projetos em total harmonia com as áreas de processo propostas pelo CMMI, tornando-os modelos complementares.

Em resumo, é perfeitamente possível atingir resultados de melhoria da qualidade de processos de Engenharia de Software e Gestão, alinhando conceitos de metodologias conhecidas ou outros modelos, como suporte a uma implementação de processos mais inteligente.

Grande abraço a todos

Roberto Capra Neto.

Roberto Capra Neto

Roberto Capra Neto - Mestrando em Engenharia da Computação, bacharel em Sistemas de Informação, Green Belt Six Sigma, especialista em sistemas distribuídos e Internet, com atuação em diversas empresas nacionais. Membro do SEPG (Software Engineering Process Group) da Serasa - ML3, na adoção de processos com base no modelo CMMI (Capability Maturity Model Integration) - foco nas áreas de Gestão de Projetos, Engenharia de Software e Gerência de Configuração.