domingo, 1 de março de 2009

Engenharia de Software - Doomsday ep01

A História:

James Bond desenvolveu um sistema bastante complexo, não adotou nenhuma metodologia de desenvolvimento, código complexo,funções paranormais (só baixando um santo pra saber) e inúmeras Stored Procedures ao invés de utilizar da boa prática de uma camada de Acesso aos Dados (DAL) no software e ainda por cima não documentou nada, nem sequer comentou as Stored Procedures. Depois de quase concluído o sistema, James saiu da empresa e deixou a liga da justiça na mão, pois nada foi documentado, nem sequer para que serve o sistema. Posteriormente com sistema ainda inacabado, o cliente Lex Luthor solicitou N modificações no sistema.
A liga da justiça foi acionada, com 0% de conhecimento do sistema Martian Manhunter verificou as alterações a serem feitas passou para o Mestre Yoda o que deveria ser feito. Logo Mestre Yoda passou o prazo de entrega para as alterações e Lex Luthor ficou satisfeito por enquanto...só por enquanto.
Martian Manhunter com seu amigo Arqueiro Verde começaram a documentar o sistema e enteder o funcionamento do sistema e nessa documentação percebem que o perigo eminente é muito maior do que esperavam. As modificações são imensas e irão afetar o sistema inteiro. Martian Manhunter percebeu então que o prazo para a entrega da solicitação feita por Lex Luthor não seria mais possível, nem mesmo com a ajuda do The Flash...



A história acima pode ser um exemplo de como não proceder ao desenvolver um software, a falta de documentação e entendimento do sistema prejudicou toda a Liga da Justiça. Podemos citar isso como falta de maturidade em uma equipe de desenvolvimento de softwares. São boas práticas que essencialmente ajudam na futura manutenibilidade do código.

Estimativas de software são geralmente feitas na hora errada e pelas pessoas erradas!



Tabelas desnormalizadas, atributos no banco com underscore, SQL junto com regras de negócios, Stored Procedure com regras de negócio, interface carregada, várias opções de cadastro em uma mesma tela, falta de comentário em linha de código e todo tipo possível de má prática em um desenvolvimento de software...

Um dos fatores mais importante na qualidade do trabalho de desenvolvimento de software é a qualidade dos programadores.