O que é um processo de desenvolvimento de software?
Software refere-se aos sistemas operacionais de computadores, bem como a programas e aplicativos projetados para serem executados em computadores. Desenvolvimento de software é o design e a gravação de software, incluindo o desenvolvimento da arquitetura do programa, a interface do usuário e a programação do código-fonte. O processo de desenvolvimento de software é a abordagem adotada para o desenvolvimento de software e existem muitos modelos bem desenvolvidos para esse processo. Em geral, eles contêm variações nas fases de análise de requisitos, especificação do produto, criação da arquitetura de software, implementação do código, teste e documentação do produto, treinamento e suporte, manutenção e aprimoramento do release. Qualquer que seja o modelo que esteja sendo usado, o processo de desenvolvimento de software às vezes pode ser voltado para o desenvolvimento de novos produtos, enquanto outras vezes é focado na revisão - por exemplo, quando uma versão pontual é criada para corrigir bugs - e, em outros momentos, pode ser esteja preparado para uma nova versão do software existente, adicionando recursos significativos e oferecendo correções de bugs.
O Modelo Waterfall para o processo de desenvolvimento de software é um modelo inicial e também com limitações inerentes. Ele prescreve uma abordagem estritamente unidirecional do desenvolvimento, movendo-se unidirecionalmente pela sequência de fases de desenvolvimento de software, sem nunca retornar a um estágio anterior ou alterar a especificação, uma vez iniciado o desenvolvimento. O Modelo Espiral, por outro lado, usa um processo iterativo, no qual uma sequência de requisitos, seguida de design, implementação e finalmente teste é seguida por um segundo ciclo no qual mais recursos e componentes são adicionados. Nos Modelos Ágeis do processo de desenvolvimento de software - dos quais existem vários -, os projetos de desenvolvimento são divididos em subconjuntos de semana a mês, chamados timeboxes, cada um dos quais passa por uma versão em miniatura de todo um processo de desenvolvimento de software, incluindo uma versão em o fim. Outros recursos do desenvolvimento Agile incluem proximidade da equipe colaboradora e uso dos clientes para responder ao produto durante todo o processo.
O processo de desenvolvimento de software pode ser radicalmente diferente para uma grande empresa e para um programador individual. Por exemplo, um editor de software comercial, como a Sibelius Software®, parte da Avid Technology®, pode passar vários anos no processo de desenvolvimento de software para cada versão e lançar um aplicativo de software com centenas de MB de tamanho e usado por milhares de pessoas . Por outro lado, um indivíduo como Roman Molino Dunn, The Music Transcriber®, programando um plug-in em resposta ao desejo de alguém de fazer algo diferente com um software comercial, pode criar um software de 4 kb dentro de uma hora após ter a ideia, em um caso extremo.