Apesar de existir uma série de disciplinas relacionadas ao tema de gestão de desenvolvimento de software, ainda não é tarefa fácil acompanhar a evolução de um projeto de desenvolvimento e ter segurança que o seu andamento está a contento das expectativas do negócio.
Para tentar resolver essa dificuldade, geralmente, somos induzidos a pensar que o grande problema está na falta de clareza ou detalhes dos artefatos que utilizamos para demonstrar um cronograma. Porém, apesar dessa ser uma possível causa, na nossa experiência, temos visto que o problema de confiança sobre o andamento dos projetos não é uma questão de ter boas documentações.
Não é que não seja importante ter um bom cronograma e ter bons indicadores, mas, confiança se gera apresentando software funcionando de maneira constante e em prazos curtos. O time de negócio precisa perceber de maneira tangível que estamos tendo avanços significativos na direção correta.
Por mais que estejamos utilizando abordagens ágeis, realizar entregas palpáveis em períodos curtos não é tarefa simples. Por exemplo, como tangibilizar a entrega de features em uma API que nem mesmo interface gráfica possui? Como apresentar o andamento da construção de um middleware de integração? Em qual ambiente disponibilizar para o usuário? Apesar desses desafios, na nossa percepção as dificuldades tem mais a ver com o planejamento do desenvolvimento e estar focado em entregas curtas do que qualquer outra coisa.
Dicas práticas
Segue algumas dicas práticas e cuidados que podem facilitar muito ter entregas mais constantes e em prazos curtos:
- Para demonstrar progresso em entregas que não possuem interface planeje um ambiente para simulação. Por exemplo, implemente Swagger nas APIs de forma a dar visibilidade dos recursos já disponíveis e poder demonstrar os testes das chamadas das APIs.
- Utilize feature toggle para permitir disponibilizar em produção mesmo antes das funcionalidades estarem completamente concluídas
- Tenha um ambiente de homologação preparado e de fácil deploy.
- Mesmo se não tiver ambiente de homologação, apresente utilizando a máquina dos próprios desenvolvedores.
- No caso de implementação de middlewares, faça mocks para simular os softwares de borda e conseguir demonstrar entregas parciais.
- Para features que exigem dados cadastrados em um banco para funcionar utilize um seed para dar carga direto no banco enquanto as funcionalidades que permitem gravar essas dados não estão prontas.
- Implemente um front-end razoavelmente funcional para já poder demonstrar a tela.
E no seu time, como é essa realidade? Vocês conseguem ter entregas recorrentes sendo apresentadas regularmente para as áreas de negócio da emoresa? Quais são as maiores dificuldades?