segunda-feira, 22 de junho de 2009

Paralelo: Desenvolvimento ERP x SCRUM

Saudações!

Após muito tempo sem postar, resolvi retomar a participação colaborativa na crescente comunidade Dynamics Brasil.

Durante esse tempo, tive algumas experiências legais participando da gestão de projetos de desenvolvimento Dynamics AX.

Isso me levou a refletir sobre metodologias ágeis aplicadas ao cenário ERP, baseado em situações e problemas recorrentes encontrados nas maneiras tradicionais de desenvolvimento e entrega, tais como falhas de comunicação, divergências entre expectativa do cliente e produto final, etc.

As características do desenvolvimento ERP diferem um tanto com relação ao desenvolvimento “from scratch”, pois sua dinâmica consiste muito mais na modificação do produto existente, do que na concepção de algo totalmente novo.

Antes de entrar nas características do SCRUM, é importante citar algumas diferenças que existem entre o mundo ERP e o mundo do desenvolvimento de software tradicional.

Para desenvolvimento ERP, normalmente existe uma figura diferente das existentes no mundo de desenvolvimento tradicional, que é o Consultor Funcional, ou Analista de Negócio.

A figura do consultor funcional é muito importante para refinar o desenho da solução, pois ele age como a engrenagem entre o usuário final e o desenvolvedor, trabalhando as questões políticas e expectativas do cliente com relação ao produto, e deixando o desenvolvedor focado na qualidade da solução e a ser entregue. Assim, o desenvolvimento pode ser abordado com base nos processos de negócio e sua integração com as funcionalidades já existentes dentro do sistema.

Voltando ao tópico principal, sobre utilização da metodolgia scrum no cenário ERP, podemos fazer a aplicação com alguns diferenciais sutis, como descreverei abaixo.

Em tempo, é importante ressaltar que não irei descrever todos os elementos da metodologia nesse post, pois existem excelentes referências na internet com o conteúdo bem abrangente e detalhado sobre SCRUM, portanto, decidi me concentrar em alguns pontos-chave que teriam alguma peculiaridade entre o desenvolvimento tradicional e o aplicado às customizações/processos de negócio.

Ferramentas e elementos

Scrum Team
É composto pelos elementos abaixo, atribuindo-se aos seguintes papéis:

Scrum Master: Este papel pode ser atribuído ao gerente técnico, que é o responsável pela manutenção da metodologia dentro da equipe.

Product Owner: Normalmente, é o responsável pela manutenção do Product Backlog.
Para desenvolvimento de customizações de ERPs, esse papel pode ser atribuído ao gerente de desenvolvimento, em par com o gerente de projetos, para que o time concentre as respostas relativas às entregas em uma única pessoa, facilitando a gestão da comunicação entre as partes.

Team: São as pessoas responsaveis pela concepção e desenvolvimento da solução.
No mundo ERP: Consultores funcionais ou Analistas de Negócio, em conjunto com os consultores técnicos ou desenvolvedores.


Product Backlog
Em poucas palavras, o product backlog consiste em uma lista contendo todos os requisitos levantados, descritos e priorizados em nível um nível mais abrangente.
Quando falamos no desenvolvimento em sistemas ERP, pouca coisa é desenvolvida integralmente, sendo a maioria do trabalho baseado na customização das funcionalidades existentes.

Nesse caso, o Product Backlog pode ser uma lista de todos os processos não aderentes no core do ERP, previamente mapeados pela equipe funcional em campo, e, sempre que possível dividindo as atividades por processos de negócios, com controle de status de “atendidos” ou “não atendidos”.

Sprint backlog

A dinâmica do scrum é dividida em sprints periódicos (normalmente semanais), onde as entregas do período são extraídas do Product Backlog de acordo com sua prioridade.

Em resumo, é uma condensação dos objetivos estabelecidos no product backlog, para entrega definida em um espaço reduzido de tempo.
De maneira análoga ao conceito do Product Backlog, o sprint backlog eventualmente pode ser definido por processo de negócio.

Impediments
São fatores que impedem a equipe de continuar determinada tarefa como por falta de recursos técnicos, infra-estrutura, definições de regras de negócio etc.

É muito importante que o Scrum Master e o gerente do projeto se unam e sejam facilitadores ativos entre o Scrum Team e o cliente final na gestão dos impedimentos, e provisão das respectivas soluções.
O Consultor Funcional também exerce um papel importante ao atuar junto do usuário final com o objetivo de extrair as respostas rápidas às eventuais dúvidas que surgirão ao longo do processo de desenvolvimento da solução.

Os outros elementos podem ser aplicados tais como concebidos na definição geral de SCRUM, como as medidas através dos “Burn Down Charts”, bem como a dinâmica dos Meetings.

Por fim, os objetivos principais são os mesmos de todas as metodologias ágeis, ou seja, através da aplicação de uma metodologia menos burocrática, promover maior integração e transparência entre o time e o cliente-final, evitando retrabalho ocasionado por ruídos de comunicação, através das entregas segmentadas em menores espaços de tempo, e todos os elementos que facilitam de maneira ampla o trabalho da equipe, atendendo plenamente às expectativas do cliente final.

2 comentários:

Ricardo Pichler disse...

Orra, mandou bem, se tem que escrever mais, por favor!

André dos R. Santos disse...

Obrigado Pichler! Realmente preciso postar mais sim. Vou me esforçar!
Abraço