Dando continuidade aos artigos anteriores, neste post começo com um
caso real de consultoria na implantação do framework ágil Scrum em uma
Fábrica de Software.
Fundamentando o Conhecimento
A
empresa participante da consultoria utilizava o modelo de gestão
proposto pelo PMI e o modelo de desenvolvimento de sistema em Cascata,
incompatível com sua velocidade comercial, gerando diversos problemas
pelo curto espaço de tempo entre a realização da elicitação dos
requisitos e a entrega do produto, dada a velocidade, competitividade do
mercado e as exigências do cliente.
Durante a consultoria levei
em consideração o perfil da empresa, identificando todos os processos
internos apoiado na certificação já existente – ISO 9001, que já
contemplava as fases de concepção, planejamento, implementação, estabilização e entrega.
Apesar da certificação identifiquei também o desconhecimento e
resistência em fazer uso do processo existente na empresa, causada por
vícios culturais na organização.
A proposta e adoção das boas
práticas do framework Scrum na gestão de projetos de desenvolvimento de
sistemas proporcionou a melhoria na qualidade dos processos e gestão do
ciclo de vida do produto na organização, contribuindo para diminuição do
retrabalho, aumentando a produtividade, racionalizando o uso dos
recursos e contabilizando ativos para Fábrica de Software. Mas vou
contar essa história ao longo dos textos, objetivando compartilhar
conhecimento com a comunidade de TI.
Quanto prestamos uma
consultoria, devemos levar em consideração diversos fatores que permeiam
um organização, pois trata-se de um organismo vivo e que reponde aos
estímulos de forma positiva ou negativa, dependendo da nossa abordagem
profissional.
A dinâmica do mercado, a necessidade de melhoria no
modelo de gestão e dos processos de engenharia de software, o aumento da
complexidade dos sistemas, que no passado não demandavam tanta
inteligência, as regras de negócio, o mapeamento sofisticado de
processos e o conhecimento específico sobre o domínio do negócio,
motivou a mudança no modelo de gestão e reavaliação dos processos de
Engenharia de Software, resultando na proposta e implantação do
framework Scrum na Fábrica de Software.
A empresa em questão fazia
uso do modelo de gestão proposto pelo PMI - Project Management
Institute e do modelo tradicional de desenvolvimento de software
Waterfall[1]
(Cascata). Os modelos em uso exigiam um esforço muito grande da equipe
de desenvolvimento, em especial dos analistas de requisito, pois a falta
de um especialista no negócio dificultava o entendimento do domínio
necessário para elaboração da proposta comercial. Para os clientes eram
conceitos triviais, pois faziam parte do seu dia-a-dia, mas para os
analistas de requisito não eram de fácil entendimento, visto que assim
como a socialização com os jargões da profissão levavam tempo
considerável, o que dificultava a especificação do projeto do sistema,
sem contar com o retrabalho dos analistas de sistema e arquitetos que só
participavam do processo após a definição do escopo do projeto e aceite
da proposta pelo cliente, precisando validar o escopo com os
fornecedores de requisitos antes de iniciar o projeto, passando a
impressão de falta de comunicação interna e desorganização.
Limitei a princípio, o escopo da consultoria, ao modelo de gestão de projetos e ao processo de desenvolvimento dos sistemas praticados na empresa, com base na complexidade dos projetos desenvolvidos. Existia a necessidade de desburocratizar os processos de gestão, melhorar os processos de desenvolvimento dos sistemas fazendo uso das boas práticas de Engenharia de Software, e de envolver um especialista no negócio durante o ciclo de vida dos projetos, tornando o processo de gestão e de desenvolvimento compatível com a velocidade comercial da empresa e com o negócio do cliente.
Observei também, no processo existente, uma grande queda de braços. De um lado o cliente querendo colocar o máximo de funcionalidade possível e do outro a empresa desenvolvedora, tentando limitar o escopo para elaboração de uma proposta comercial, com o menor esforço para a equipe de desenvolvimento.
Como implantar um modelo de gestão enxuto e ágil, garantindo prazos, custos e qualidade nos projetos de desenvolvimento de software? Ao longo dos artigos esta pergunta será respondida.
Grande Abraço,
Gilberto Ribeiro.
[1] O modelo Waterfall é um modelo de desenvolvimento de software sequencial no qual o desenvolvimento é visto como um fluir constante (como uma cascata) através das fases de análise de requisitos, projeto, implementação, testes (validação), integração, e manutenção de software. A origem do termo cascata é frequentemente citado como sendo um artigo publicado em1970 por W. W. Royce; fonte: http://pt.wikipedia.org/wiki/Modelo_em_cascata.