Depois da introdução ao RUP, e da lista das práticas por ele definidas, vamos entrar na primeira prática do RUP: desenvolver software iterativamente.
Iterativamente vem de iteração. Isso mesmo, o for e o while são laços de iteração. Mas o que isso tem a ver com RUP?
Iterar sobre alguma coisa, como você já deve saber das aulas de programação, é passar sobre ela várias vezes, é repetir, tornar a fazer. E a iteração é a base do RUP.
Quem conhece alguma coisa das metodologias ágeis já captou o conceito. O movimento ágil também é baseado nas rápidas iterações.
MAS CARAMBA, O QUE É DESENVOLVER SOFTWARE ITERATIVAMENTE?
É entender os requisitos, implementá-los e entregá-los continuamente. Você tem um conjunto de requisitos, classificados segundo uma prioridade determinada junto ao cliente, que será implementada numa rodada de desenvolvimento. Essa implementação é entregue ao cliente, que verificará se o que foi entregue está de acordo com o desejo dele; caso esteja, o ciclo continua com novas implementações; caso não esteja, o ciclo se repete para essa implementação errada. Desta vez, os requisitos são detalhados mais profundamente, a implementação é refeita e novos testes e validações são realizados.
PÁRA PÁRA PÁRA PÁRA!
Não confundir com os sprints do SCRUM. Lá os conceitos são ligeiramente diferentes, começando com a definição do Sprint Backlog.
Voltemos ao RUP agora: Pra que esse monte de iterações?
Pra descobrir rapidamente eventuais problemas que possam surgir.
Como você está sempre em contato com o cliente, você tem a oportunidade de implementar o que ele deseja corretamente, minimizando os erros. Acontece que alguns erros serão cometidos, pois nenhum software é a prova de erros, mas, lembre-se, você está em contato com o cliente sempre. Ele irá validar o que foi implementado e erros encontrados antecipadamente são mais fáceis de corrigir (caso você tenha dúvidas disso, pesquise por testes de software e você verá que quanto mais cedo um erro for encontrado, mais fácil será sua correção).
Uma outra característica importante que também está presente nas metodologias ágeis é de que as partes do sistema que são mais importantes para o cliente e que, por consequência, são as que trazem mais risco, são implementadas primeiramente.
Agora, do ponto de vista do cliente, essa abordagem do desenvolvimento iterativo garante a ele o acompanhamento do desenvolvimento do sistema e ele pode rapidamente intervir apontando o que foi entendido erradamente, fornecendo mais detalhes, enfim, o cliente fica próximo do desenvolvimento.
Mas gente isso é a cara do SCRUM!
Pode ser, mas o SCRUM traz outros conceitos que não estão aqui. Não façamos confusão com as metodologias.
No próximo post trataremos de gerenciar os requisitos.
Por Victor Leal