O que deve estar definido antes de avançar
Assumindo que a decisão de desenvolver à medida está tomada e fundamentada, existe um conjunto de condições que precisam de estar resolvidas, pois a ausência destas condições é a causa mais frequente de projetos de desenvolvimento que ficam aquém das expetativas.
1. Os processos que o sistema vai suportar têm de estar estabilizados
Um sistema de software formaliza a forma como um processo funciona, transforma regras de negócio em lógica automatizada. Se essas regras ainda não estão claramente definidas, ou se o processo ainda está a mudar com frequência, o sistema vai precisar de ser alterado antes de estar completamente implementado. Estabilizar os processos antes de desenvolver, é o que determina se o software construído vai continuar a ser útil seis meses depois de estar em produção.
2. A origem e a circulação dos dados têm de estar definidas
Como desenvolvemos no artigo sobre a fonte única de verdade, cada tipo de informação deve ter um sistema claramente responsável pela sua criação e manutenção. Quando se desenvolve um novo sistema sem esta definição, corre-se o risco de criar mais uma fonte de dados paralela, que vai competir com as existentes em vez de as organizar. Definir antes do desenvolvimento onde os dados vão residir, como vão chegar ao novo sistema e como vão circular para os restantes é o que garante que o software se integra na operação em vez de a complicar.
3. O papel do novo sistema na operação tem de estar claro
Como abordámos no artigo sobre como definir o papel de cada sistema, cada plataforma deve ter uma função específica e limites definidos. Antes de desenvolver, é fundamental saber o que este sistema vai fazer, o que não vai fazer, e como se relaciona com os sistemas já existentes. Sem esta certeza, é comum que o sistema desenvolvido acabe a duplicar funcionalidades de outras plataformas ou a criar dependências desnecessárias.
4. Os requisitos têm de estar documentados com o detalhe suficiente
Este ponto parece óbvio, mas é frequentemente subvalorizado. Requisitos vagos como "o sistema deve gerir os nossos processos de forma mais eficiente" não são suficientes para orientar o desenvolvimento. Os requisitos precisam de descrever, com precisão, o que o sistema deve fazer em cada situação, que informação precisa de processar, que regras de negócio precisa de aplicar e que resultados precisa de produzir. Quanto mais detalhada for esta definição antes do desenvolvimento começar, menor é o risco de o sistema precisar de ser significativamente alterado durante ou após a implementação.