segunda-feira, 10 de agosto de 2009

Organizando as coisas e acelerando o processo.

Bom, se você seguiu algum dos caminhos citados no post anterior, mais especificamente o caminho do desenvolvimento de sistemas, já deve estar fazendo alguma coisa em relação a programação de computadores.

Você decidiu se dedicar a área de desenvolvimento de sistemas. Implementou um monte de algoritmos. Experimentou na prática uma série de técnicas de programação e com certeza chegou a uma conclusão de que apesar da evolução das linguagens de programação, programar é algo que demanda bastante tempo e esforço.

Tempo para escrever o código fonte dos programas, para testar e muito tempo para manter os sistemas que já foram desenvolvidos.

Enquanto isso acontece, seus clientes querem melhorias nos programas já desenvolvidos e novos clientes surgem com prazos apertadíssimos para o desenvolvimento de novos sistemas, com custos cada vez menores, cuja qualidade é essencial e onde há poucos recursos disponíveis.

Hoje o mercado de software demanda programas cada vez mais sofisticados, com prazos de entrega cada vez mais apertados. O cliente quer um produto de software de alta qualidade, baixo custo e tempo de entrega pequeno. Cabe aqui a seguinte pergunta: como chegar a uma equação utilizando essas grandezas inversamente proporcionais?

O primeiro passo dado nesse sentido foi o de incrementar o processo de manufatura de software. Não foi a toa que houve uma evolução nas técnicas de programação de computadores. Essa evolução surgiu da necessidade de acelerar o processo de desenvolvimento, promovendo o reuso de código, visando a facilidade de manutenção, sem que os produtos de software produzidos perdessem qualidade.

Nesse contexto, surgem a programação estruturada, a programação baseada em eventos, programação Orientada a Objetos, a programação orientada a aspectos e por aí vai.

Seguindo esta linha, surge também os designs patterns, que nada mais são do que nomes dados as técnicas conhecidas no mercado e que as empresas de software adotam para organizar os códigos-fonte que constituem os sistemas desenvolvidos por essas empresas.

As fábricas de software tiveram que adequar seus métodos de produção por conta das exigências de mercado citadas acima e para isso utilizaram as boas práticas de produção de software.

Além disso, as empresas de software criaram ou adotaram metodologias para a condução das atividades de desenvolvimento. A palavra metodologia deriva da palavra método e podemos definir método como sendo um conjunto de tarefas ou atividades que são necessárias para a conclusão de algum serviço ou objetivo.

Modelos de ciclos de vida como o modelo em cascata, espiral entre outros são criados de modo a nortear o processo de desenvolvimento de software.

Na área de desenvolvimento de sistemas existem duas metodologias que se destacam no mercado: O RUP (Rational Unified Process) e o XP (Extreme program). Logicamente, uma empresa pode desenvolver uma metodologia ou processo de desenvolvimento de software próprio, porém uma grande quantidade de empresas de software adota metodologias já experimentadas no mercado ou criam processos baseados nessas metodologias. Neste âmbito, não podemos deixar de mencionar o CMMI e o MPS BR que certificações centradas na qualidade e na melhoria de processos de desenvolvimento.

Enfim, o lema é encontrar meios de organizar o processo.

Nenhum comentário: