Estratégias de Engenharia
4 ESTRATÉGIAS DE ENGENHARIA DE SOFTWARE
Tendo em vista as informações apresentadas no documento, a decisão sobre as estratégias de engenharia de software a serem utilizadas prioriza a adaptação constante e a entrega de valor de forma ágil para um cliente que precisa de resultados rápidos e visíveis, considerando feedbacks.
4.1 Estratégia Priorizada
Abordagem de Desenvolvimento de Software: Ágil
Ciclo de vida: Iterativo e Incremental
Processo de Engenharia de Software: Open Unified Process (Open UP)
FrameWork: Kanban
4.2 Quadro Comparativo
| Características | Open UP | Feature-Driven Development (FDD) |
|---|---|---|
| Filosofia Central | Enfatiza uma abordagem mais estruturada e iterativa, focando na arquitetura do sistema e no gerenciamento de riscos desde o início para garantir uma base sólida e escalável. | Prioriza a entrega rápida de funcionalidades tangíveis para o cliente, o que pode levar a um foco excessivo em recursos de curto prazo em detrimento da coesão arquitetônica de longo prazo. |
| Ciclo de Vida | Iterativo e Incremental. O trabalho é dividido em quatro fases, sendo elas: Iniciação, Elaboração, Construção e Transição. O desenvolvimento ocorre em ciclos curtos dentro dessas fases. | Iterativo e Incremental. O processo é dividido em cinco etapas, com as duas últimas sendo iterativas: "Projetar por Funcionalidade" e "Construir por Funcionalidade". |
| Papéis (Funções) | Possui papéis bem definidos como Gerente de Projeto, Arquiteto e Desenvolvedor. Possui um foco na colaboração e na comunicação entre os papéis, tornando-o ideal para equipes enxutas como a nossa. | Baseado em um conjunto de práticas como a construção de Modelos de Domínio e a elaboração de Listas de Funcionalidades. O desenvolvimento é feito em times pequenos e orientados por funcionalidades. |
| Ritmo de Trabalho | Seu ritmo é guiado por iterações que priorizam os maiores riscos e a arquitetura, promovendo um workflow adaptável e estável desde o início. | O trabalho avança em ciclos curtos e constantes focados em funcionalidades, mas depende de um esforço inicial maior de modelagem e planejamento detalhado. |
| Documentação | Prioriza uma documentação mínima e essencial, focada em alinhar o entendimento com a visão do produto. Nesse sentido, a colaboração e a comunicação são incentivadas para evitar excesso de artefatos. | Embora seja ágil, é mais proativo na documentação. A modelagem de domínio é um ponto crucial, e a documentação é feita para cada funcionalidade. |
| Controle de Mudanças | Gerencia mudanças através de um processo iterativo e estruturado, com foco em mitigar riscos e manter a arquitetura, permitindo maior controle e previsibilidade sobre o impacto das alterações no projeto | Lida com mudanças de forma mais granular e reativa, focando na entrega de funcionalidades em ciclos curtos, novas solicitações são adicionadas à lista de funcionalidades, o que pode fragmentar a visão arquitetônica global. |
4.3 Justificativa
Para o desenvolvimento do LegisPro, que exige um processo leve, adaptável e eficiente, avaliamos abordagens ágeis que privilegiasse flexibilidade e entregas frequentes. Nesse contexto, o OpenUP destaca-se como alternativa adequada, por sua natureza interativa, que favorece ciclos curtos de desenvolvimento e feedback contínuo, além de reduzir a burocracia sem comprometer a qualidade
Dado a análise apresentada, a escolha do Open Unified Process (OpenUP) como processo de engenharia de software, em conjunto com o framework Kanban para gestão do fluxo de trabalho, configurou-se como a mais adequada para o projeto. Essa abordagem combina a estrutura leve de um processo com a flexibilidade de um framework, alinhando-se perfeitamente às necessidades do cliente e à dinâmica da nossa equipe enxuta.
O OpenUP foi escolhido por sua natureza iterativa e por sua clara divisão em fases, que oferece um roteiro sólido e previsível para o desenvolvimento. Isso é essencial para um projeto com entregas semanais, seguindo o cronograma previsto pelo KanBan, pois nos permite planejar, executar e validar o produto de forma organizada, garantindo que o escopo e os objetivos sejam alcançados sem a burocracia de processos mais formais. O OpenUP foca na colaboração, o que facilita a comunicação com o cliente e o alinhamento de expectativas em cada etapa.
Nesse sentido, o Kanban fica responsável por gerenciar o fluxo de trabalho diário, mostrando de forma visual como as tarefas evoluem do backlog até a conclusão. Enquanto o OpenUP define as demandas e o prazo do que será realizado em termos de fases do projeto, o Kanban cuida de como o trabalho deve fluir, permitindo que a equipe puxe as tarefas de acordo com a capacidade real. Com um quadro visual, a equipe pode puxar as tarefas do backlog continuamente, sem a rigidez de sprints fixas. Essa flexibilidade é crucial para se adaptar a mudanças rápidas e prioridades de última hora, garantindo que o tempo do sócio e da equipe sejam otimizados ao máximo.
Portanto, a combinação de OpenUP e Kanban oferece o melhor dos dois mundos: uma estrutura de processo clara para guiar o projeto do início ao fim e a agilidade necessária para o dia a dia. Essa abordagem nos permite entregar valor de forma contínua, com transparência e alta previsibilidade, minimizando riscos e garantindo a satisfação do cliente.