Processo de Software,

Como você definiu o processo de software para os seus projetos?

2
Shares

Processos de software organizam o conjunto de atividades realizadas em um projeto na produção artefatos que compõem um produto de software. Atualmente, podemos dividir os processos de desenvolvimento de software em duas abordagens: Processos Tradicionais (Plan-Driven ou Document-centric) e MétodosÁgeis.

Os processos de desenvolvimento do tipo Tradicional  (e.g., Cascata, Incremental e RUP) têm como característica resolver problemas que necessitem de requisitos e planejamento mais detalhados antes de iniciar as atividades desenvolvimento. Esses se destacam por terem atividades, papéis e artefatos bem definidos e, assim, são mais fáceis de entender e aplicar. O Cascata, por exemplo, possui atividades bem estabelecidas para levantamento de requisitos, desenvolvimento e testes; no entanto, é pouco flexível para mudanças, o que pode trazer problemas em projetos mais dinâmicos.

Por outro lado, os métodos Ágeis (e.g., Scrum, Less e Safe) têm como foco resolver problemas construindo uma solução que evolua no mesmo tempo em que se aprende sobre o problema. Atualmente, os métodos ágeis vêm ganhando espaço tanto na Industria quanto na Academia por serem mais flexíveis e adaptativos do que os processos tradicionais. Por exemplo, o Scrum permite entregar soluções que atendam às necessidades do cliente em um período mais curto. No entanto, precisa que os envolvidos no projeto (Cliente e Equipe de desenvolvimento) sejam bem capacitados no método, presentes no projeto e auto-organizados. Mas, atualmente, conseguir essas características em uma equipe é um desafio para algumas empresas.

Tendo isso em mente, como você definiu o processo de desenvolvimento em sua empresa? O que você levou em consideração? O problema a ser resolvido? Os perfis técnicos dos seus colaboradores? Os contratos com os clientes? Os textos dos blogs que descrevem o estilo “Google” de fazer alguma coisa?

Saber responder às perguntas acima é um dos primeiros passos para definir o processo de software de sua empresa ou do seu time de desenvolvimento. Não é necessário que o seu processo de software seja 100% Ágil ou 100% Tradicional, afinal isso não é time de futebol, em que é necessário escolher um lado para torcer.

A organização pode definir um processo de software que utilize partes boas das duas abordagens. O que é necessário entender é quais são as boas práticas (Ágeis ou Tradicionais) que a sua equipe consegue aplicar de forma mais natural e segura, que permitam entregar a solução para o cliente de maneira satisfatória, ou seja, atendendo ao que foi solicitado dentro do prazo, orçamento e sem stress.

Logo, vale perguntar novamente:  Como você definiu o processo de software para os seus projetos?

Paulo Sérgio

Professor do Instituto Federal do Espírito Santo (Ifes), participante do Leds e atualmente doutorando em Ciência da Computação, no Nemo, com foco em Ontologia, Integração de dados e métodos ágies. Além disso, se arrisca na cerveja artesanal e no surfe, é comandado por 4 cachorros.

Fabiano Ruy

Doutor em Ciência da Computação com pesquisa voltada a Engenharia de Software e Modelagem Conceitual. É professor do IFES campus Serra, atuando no Bacharelado em Sistemas de Informação e no Mestrado em Computação Aplicada. Membro do LEDS, com foco em projetos de inovação.