Quais são as vantagens e desvantagens legais de cada modelo de desenvolvimento de sistemas?
Existem metodologias específicas para conduzir projetos de desenvolvimento de sistemas. Normalmente, quando se estuda sobre questões legais relacionadas ao desenvolvimento de sistemas em livros e outros materiais, muitas vezes se assume como premissa o modelo Waterfall, que é o método mais clássico. No entanto, o modelo Waterfall não é o único método ou modelo para conduzir o desenvolvimento de sistemas. Por exemplo, recentemente, o método de desenvolvimento Agile tem sido frequentemente escolhido.
Neste artigo, vamos explicar e comparar os dois modelos, Waterfall e Agile, do ponto de vista da prevenção de riscos legais e disputas.
O que é um Modelo de Desenvolvimento
O que é o Modelo Waterfall
A abordagem mais comum e clássica para o desenvolvimento de sistemas é a seguinte:
- Definição de requisitos: Identificação das funções que o sistema a ser criado deve ter e das especificações necessárias
- Design básico: Design da imagem geral do sistema, principalmente do ponto de vista do usuário, incluindo design de tela e transições de tela
- Design detalhado: Design da imagem geral do sistema, principalmente do ponto de vista do fornecedor que desenvolve o sistema, incluindo as conexões entre os arquivos do programa
- Implementação de programação: Codificação do programa de acordo com o design
- Teste: Verificação se o produto final está de acordo com as especificações e solicitação de confirmação do usuário
Este método de desenvolvimento, que avança de forma a minimizar a inversão e o retorno dos procedimentos, como um rio que flui de montante para jusante, é chamado de “Modelo Waterfall”. Este fluxo em si não é essencial para criar um sistema funcional. No entanto, no desenvolvimento de sistemas, que tende a ser um projeto que envolve muitas pessoas e um longo período de tempo, o planejamento é importante. Portanto, também é importante considerar a divisão de cada processo, a organização de papéis e a clarificação das áreas de responsabilidade de cada pessoa encarregada.
O que é o Modelo de Desenvolvimento Ágil
Por outro lado, a maneira de avançar com o trabalho de desenvolvimento não é sempre adequada para um método que permite uma passagem direta de “montante para jusante”. Certamente, devido à natureza do trabalho, a importância do planejamento e da técnica de previsão é, claro, indiscutível. No entanto, em muitos casos, é impossível fazer um plano perfeito desde o início, especialmente quando se trata de criar algo novo ou uma obra de arte. Se valorizarmos esses pontos, deveria ser aceitável ter uma abordagem que não só avança o trabalho de acordo com o plano estabelecido, mas também é flexível para correções posteriores e mudanças de especificações, e aumenta o número de tentativas e erros. Este método de desenvolvimento que reflete essa maneira de pensar é chamado de “Modelo de Desenvolvimento Ágil”. No Modelo de Desenvolvimento Ágil, é comum minimizar o tempo gasto na preparação de planos detalhados e designs, implementar programas muito pequenos e repetir os testes, e gradualmente transformá-los em programas maiores e sistemas.
O modelo Waterfall facilita o estudo de questões legais
Antes de compararmos ambos os modelos de desenvolvimento, é importante mencionar que a facilidade de coleta de informações e o estudo de questões legais associadas a cada modelo de desenvolvimento são fatores a considerar.
A maioria dos livros de referência são escritos com base no modelo Waterfall
Quando se trata de estudar questões legais relacionadas ao desenvolvimento de sistemas ou de adquirir conhecimento jurídico, o modelo Waterfall é mais fácil de abordar. A maioria dos livros jurídicos que discutem o desenvolvimento de sistemas são escritos com o modelo Waterfall como premissa. Como o desenvolvimento de sistemas clássico e geral é realizado de acordo com o modelo Waterfall, o desenvolvimento ágil é geralmente mencionado apenas como um complemento, muitas vezes limitado a uma breve introdução. Portanto, se você está tentando obter informações sobre questões legais relacionadas ao desenvolvimento de sistemas a partir de livros, é mais fácil progredir com o modelo Waterfall.
O modelo Waterfall também tem muitos casos judiciais acumulados
Além disso, como o modelo Waterfall é um método clássico e geral de desenvolvimento de sistemas, também há uma rica acumulação de casos de disputas que realmente ocorreram no passado. Em discussões legais, o conhecimento de casos judiciais anteriores é tão importante quanto os artigos da lei. Em casos onde é difícil dizer se a leitura do texto do artigo é “branca” ou “preta”, às vezes é possível complementar o conteúdo do artigo obtendo insights de casos judiciais anteriores.
Além disso, mesmo que não seja uma lei codificada, a acumulação de julgamentos apresentados pelos tribunais pode ser estabelecida como um critério de julgamento, assim como os artigos. Isso é chamado de “jurisprudência”. Mesmo em áreas onde já existe uma acumulação de jurisprudência, como o desenvolvimento de sistemas, pode ser relativamente fácil prever o resultado final de uma disputa desconhecida. Nesse sentido, o desenvolvimento de sistemas baseado no modelo Waterfall tem muitas vantagens.
Vantagens de cada método de desenvolvimento
Com base no conteúdo acima, vamos organizar as vantagens e desvantagens de cada método, comparando-os. A primeira parte é organizada em torno das vantagens do modelo Waterfall, e à medida que descemos, as vantagens do desenvolvimento Agile tornam-se mais claras.
Comparação em termos de planeamento e previsibilidade
Em termos de planeamento e previsibilidade, pode-se dizer que o modelo Waterfall leva a melhor. Não importa quão grande seja o sistema a ser construído, ele será sempre dividido em etapas que descem de “upstream” para “downstream”. Se definir um prazo para cada etapa, o progresso pode ser gerido de forma relativamente planeada.
Por outro lado, o desenvolvimento Agile é um método que não dedica muito custo ou esforço ao planeamento prévio ou à concepção geral, por isso pode facilmente tornar-se uma abordagem ad hoc.
Comparação em termos de clarificação dos papéis e responsabilidades individuais
No modelo Waterfall, a divisão detalhada de cada etapa permite clarificar o papel de cada membro do projeto, o que é uma vantagem.
Por outro lado, no desenvolvimento Agile, a divisão das etapas tende a ser vaga, por isso é fácil tornar-se vago sobre quem é responsável por problemas imprevistos, por exemplo.
Comparação em termos de facilidade de desenvolvimento em larga escala
O modelo Waterfall, que é superior em termos de planeamento e organização de papéis, tem maiores vantagens quanto maior for o desenvolvimento. Mesmo que se esteja a organizar um grande número de pessoal, se se promover a divisão do trabalho dividindo as etapas, o custo de ajustar as relações humanas pode ser reduzido.
Por outro lado, o modelo de desenvolvimento Agile não é muito adequado para o desenvolvimento em larga escala. Por ser uma abordagem que valoriza a sensação de velocidade até ao início, mais do que o planeamento e a organização de papéis, é difícil de aplicar em situações onde se teme um desvio no prazo final.
Comparação em termos de sensação de velocidade e eficiência
O desenvolvimento Agile começa mais cedo
Em termos de sensação de velocidade desde que o utilizador tem um pedido de funcionalidade até que ele é realmente implementado, o desenvolvimento Agile leva a melhor. Isto porque, no modelo Waterfall, é normal que os responsáveis pelas etapas upstream e downstream sejam claramente separados, o que tende a aumentar o esforço de comunicação interna do fornecedor. Este esforço de comunicação, que tende a ser grande, está também ligado ao facto de ser facilmente vulnerável a pedidos de alteração de especificações após o facto.
Por outro lado, o modelo de desenvolvimento Agile permite esperar que se comece e se execute com uma sensação de velocidade sem a necessidade de um intermediário. Isto está intimamente ligado à maior vantagem do modelo de desenvolvimento Agile, que é a facilidade de lidar com alterações de especificações após o facto. No entanto, mesmo no modelo de desenvolvimento Agile, se continuar a responder de forma descontrolada a pedidos de alteração de especificações e desenvolvimento adicional, isso pode tornar-se um risco de “incêndio” no projeto. Neste sentido, a chave para o sucesso do desenvolvimento de sistemas com o modelo de desenvolvimento Agile é como gerir as “alterações”. Uma explicação detalhada sobre a gestão de alterações é dada no seguinte artigo.
https://monolith.law/corporate/howto-manage-change-in-system-development[ja]
O modelo Waterfall é menos provável de falhar a meio
Por outro lado, na comparação em termos de sensação de velocidade e eficiência, é importante considerar num horizonte de tempo a longo prazo. Se considerarmos o risco de um projeto incendiar-se a meio e o progresso parar a partir daí, o modelo Waterfall leva a melhor. O maior risco de um projeto falhar a meio é a falta de comunicação entre o utilizador e o fornecedor. O modelo Waterfall, que facilita a clarificação da divisão de papéis entre as duas partes, tem uma vantagem neste ponto.
O desenvolvimento Agile é mais fácil de avançar na fase de aceitação
No entanto, em termos de facilidade de avançar as discussões na fase de aceitação, o modelo de desenvolvimento Agile tem uma ligeira vantagem. Isto porque se pressupõe que o utilizador e o fornecedor partilham informações detalhadas mesmo durante o desenvolvimento do sistema. Isto pode reduzir o risco de discrepâncias de percepção entre as duas partes tornarem-se aparentes de uma só vez ao verem o produto final. Além disso, uma explicação detalhada sobre o passo de aceitação do desenvolvimento de sistemas e os problemas legais associados é dada no seguinte artigo.
https://monolith.law/corporate/estimated-inspection-of-system-development[ja]
Resumo
Como podemos ver através desta comparação, em geral, o modelo Waterfall é mais adequado para uma gestão rigorosa, enquanto o modelo de desenvolvimento Agile enfatiza a rapidez desde o início até a execução. Além disso, os problemas legais associados ao desenvolvimento de sistemas baseados no modelo de desenvolvimento Agile são discutidos em detalhe no seguinte artigo.
A escolha do modelo de desenvolvimento mais adequado deve ser feita considerando não só o ponto de vista legal, mas também o tamanho do projeto, o orçamento, o objetivo, entre outros. Acreditamos que esta decisão deve ser tomada de forma abrangente.
Category: IT
Tag: ITSystem Development