sexta-feira, 31 de dezembro de 2010

Planejamento para Desenvolvimento de Software

Ocorre que diante de um projeto para desenvolver software, gerentes ou responsáveis se esforçam para estimar precisamente tarefas, tempos e recursos necessários para a produção do bem.

A produção do software visa gerar um bem que será entregue ao final do projeto para o cliente.

A produção de serviços é, necessariamente, uma operação na qual o cliente é agente dentro do processo, pois serviços são de consumo imediato, não se pode estoca-los ou entrega-los à posterior.

O desenvolvimento ágil, no qual se aluga a força de trabalho para o cliente, é uma prestação de serviço com bens associados. A equipe fica alocada ao cliente durante o tempo necessário à prestação do serviço. O cliente participa do trabalho, recebendo os benefícios como o aprendizado, sua garantia de qualidade pela certeza da adequação do produto e o bem produzido.

Explicar o planejamento para um prédio costuma ser o exemplo utilizado para se explicar o porque se faz planejamento exaustivo e adiantado para o desenvolvimento de software.

Entretanto, o desenvolvimento de software, em função de ser um serviço exploratório, que envolve a descoberta de conhecimentos tácitos, entrevista com os especialistas, possibilidade de atualização on-the-fly destes mesmos conhecimentos, sugere a utilização de métodos ainda mais poderosos de planejamento, do que o planejamento estático, feito no início do processo de desenvolvimento, sem conhecimento suficiente e prevendo um intervalo de tempo normalmente muito grande.

O planejamento ágil é feito de forma incremental, prevendo escopo e horizontes de tempo de cada iteração, portanto muito menores e com probabilidade de acerto muito maior.

O risco ao longo deste processo fica diluido pelo escopo simplificado e prazo menores, sendo a probabilidade de sinistros também menor.

Qual é o planejamento mais seguro?
Qual o planejamento mais preciso?

Numéricamente o planejamento incremental é mais eficiente.
A dúvida deveria ser se esta forma de planejamento é viável para o processo de desenvolvimento de software, entretanto as críticas ou a auxência delas, segue no espaço do desconhecimento e desconsideração de sua existência e forma.

Segundo Jeff Patton (2008), conhecer o problema mas não saber desde o início o que se quer, é comum, é normal, é o suficiente.

Eu humildimente complementaria que é inclusive melhor sob o ponto de vista de obter algo de qualidade.

segunda-feira, 13 de dezembro de 2010

Workshop ScrumBan com Alisson Vale

Caros Colegas,

Neste final de ano participei de um encontro muito bom onde discutimos sobre a técnica de Kanban para otimização do processo de Desenvolvimento de Software.
O workshop ScrumBan foi organizado e ministrado pelo professor Rodrigo de Toledo (Tecgraf PUC-Rio, atualmente Prof. UFRJ) e por Alisson Vale, ganhador do premio de Excelência em Engenharia de Software Enxuto.
A qualidade deste workshop e dos participantes foi fantástica.
Foram abordadas as diferenças entre as técnicas XP, Scrum e Kanban, esclarecendo os conceitos de Lean que podem auxiliar no desenvolvimento de software, dando enfase no Kanban segundo Alisson Vale e David Anderson.
Comentarei melhor sobre o evento ainda esta semana.
A página do evento foi http://scrumban.com.br