Projeto de Sistemas
(Jim Waldo)
Vamos, primeiramente, entender o problema que o autor encontrou, ou seja, a motivação para a escrita do artigo. Em seguida, será apresentada a solução proposta por ele para solucionar tal problema. Por fim, são expostas algumas opiniões pessoais, bem como questões acerca do assunto que podem ser discutidas.
Problema
O autor enfatiza que sua maior preocupação está relacionada ao fato de que projetar sistemas de qualidade está sendo uma atividade cada vez menos constante nas empresas, um dos motivos disso é que com a pressão do mercado as empresas geralmente não dispõem de tempo suficiente para investir em um bom projeto de software, o que também acarreta um elevado custo. Outro motivo que também desestimula essa atividade é que alguns gerentes avaliam a produtividade da equipe de desenvolvimento pelo código produzido, e não têm coragem de dedicar grande parte do desenvolvimento do sistema na fase de projeto.
Como conseqüência disso, os projetos de software produzidos dessa forma tendem a ser cada vez menos coerentes, simples e agradáveis, tornando mais difícil o desenvolvimento de um sistema fácil de usar, aprender, e fazer manutenção.
Porém, o fato de o software ter um projeto não significa dizer que ele foi bem projetado, pois, na opinião do autor, para projetar um sistema é necessário que alguém pense numa maneira correta de decompor as funcionalidades, e em como criar um pequeno conjunto de abstrações que pode ser reutilizado. Um bom indício de que o software foi realmente bem projetado é a existência da documentação, escrita antes do desenvolvimento do software e na qual podemos encontrar toda a descrição do projeto.
Outro problema que Waldo argumenta é no âmbito educacional, pois ele afirma que para ser um bom projetista não basta ter talento, também tem que ter técnica: “Talento sem técnica é um desperdício”. Sim, mas onde está o problema? Ele existe a partir do momento em que o autor diz que a técnica necessária para um bom projetista não é ensinada nos cursos e universidades. Não existe curso ou regras para formar um bom projetista de software, o aperfeiçoamento e a técnica do profissional são adquiridos com a experiência, pois ao passo que ele projeta softwares podem ocorrer casos de sucesso e fracasso, em cada erro surgirão aprendizados que o levarão a ser um bom projetista.
Solução
Como solução para os problemas explanados acima o autor cita duas alternativas: os Métodos Ágeis e os Softwares Open Source.
Os Métodos Ágeis têm a proposta de dividir o sistema em partes menores, de modo que possamos pensar o que são estas partes separadas e como um todo, esta é uma maneira de pensarmos no sistema por inteiro. Outro aspecto dos Métodos Ágeis é a divisão da equipe em grupos pequenos, de forma que cada integrante entenda os artefatos por inteiro.
Em projetos Open Source existem listas de discussões que são disponibilizadas para os projetistas trocarem experiências sobre seus projetos, beneficiando a todos os membros da lista.
Resumidamente, podemos dizer que as características das alternativas citadas acima nos levam a um princípio mais abrangente, a constante comunicação entre os participantes do projeto.
Opinião
Os problemas apontados pelo autor realmente existem, porém ainda não há uma solução padrão e eficaz para sanar essa dificuldade, o que ele cita são algumas alternativas que podem ser utilizadas. Concordo plenamente com Waldo quando ele diz que não aprendemos a ser bons projetistas em cursos e universidades, essa qualidade nos será agregada à medida que obtemos experiência.
Um ponto que discordo com autor é quando ele diz que para sermos bons projetistas temos que unir o talento com a técnica, na minha opinião o talento não é uma característica que define um bom projetista, mas sim a técnica obtida com a experiência. O talento seria um fator adicional que ajudaria nos desenvolvimentos das atividades, mas não um fator determinante.
Pontos para discussão
Tendo em vista que o autor fala que “Talento sem técnica é um desperdício”, podemos dizer que uma pessoa sem talento ou técnica nunca será um bom projetista?
Além dos pontos comentados pelo autor, quais são os outros caminhos que podemos seguir para sermos bons projetistas?
Será que existe alguma forma de ensinarmos como ser um bom projetista de software nos cursos e universidades?
REFERÊNCIA:
Waldo, Jim (2006). On System Design. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). Acesso em: 28 de Março de 2008. Disponível em <http://research.sun.com/techrep/Perspectives/PS-2006-6.pdf>
Resumos Relacionados
- O Design Está Morto?
- Software Project Survival Guide
- Software Project Survival Guide
- Utilizando Uml E Padrões
- Alinhamento Do Software Com O Processo
|
|