um nome adequado sugere a falta de importancia que esta atividade tem. Interessante notar que o autor aponta que tambem nos EUA esta e a atividade mais relegada. Durante seis anos, 200 pessoas foram entrevistadas para o cargo de projetista na Microsoft e destes, apenas cinco foram capazes de descrever razoavelmente os significados de modularizacao e ocultacao de informacoes.Sem o adequado dominio destes conceitos, nao e possivel discutir consistentemente a divisao em subsistemas, a organizacao em camadas, componentizacao.Dentre as grandes preocupacoes do projeto/design podemos citar: Metodologia de projeto: orientada a objetos, desenvolvimento estruturado, orientado a dadosArquitetura de software: uso de frameworks, divisao em camadas, divisao em subsistemasAdocao de padroes: tratamento de situacoes complexas mas corriqueiras tais como tratamento de excecoes, internacionalizacao, portabilidade entre plataformasTratamento de requisitos criticos: baixo tempo de resposta, alta disponibilidade, seguranca, baixo consumo de recursosGrandes sistemas foram desenvolvidos sem projeto/design, mas a custos bem superiores ao necessario. O projeto/design e fundamental para as outras atividades e para o aumento da velocidade de desenvolvimento.ConstrucaoTanto a gerencia de requisitos quanto o projeto/design podem reduzir mais significativamente os custos do projeto do que a construcao. A construcao oferece poucas oportunidades para a reducao de prazos, mas se nao for convenientemente conduzida, pode acarretar em aumentos drasticos dos custos e dos prazos de entrega.Omissoes no levantamento de requisitos ou falhas de projeto/design levam a reconstrucao de grandes partes dos sistemas. Falhas na construcao levam a programas confusos e de dificil depuracao.Aspectos tipicamente concernentes a atividade de construcao: normas de codificacao e documentacaoorientacoes quanto ao emprego de tipos de dados: CPF e sempre string, por exemploregras de empacotamento de codigonormas para teste unitario e depuracaoestrategia de integracaoestrategia para otimizacaorecomendacoes de emprego especificas da linguagem adotada: boas praticas da linguagemA adocao de padroes de construcao consome algum tempo, mas economiza tempo quando consideramos o projeto com um todo. Boas praticas de construcao possibilitam que qualquer codificador do projeto altere ou corrija um programa, mesmo quando o "dono" do programa nao esta disponivel.Trabalhei com manutencao de sistemas por alguns anos. Eram programas com 5 ou 6 anos de idade, desenvolvidos e alterados por diversas pessoas com niveis tecnicos e estilos de codificacao variados. Uma pratica simples mas que me ajudou bastante foi passar a executar um formatador de codigo nos fontes antes de proceder qualquer alteracao. Infelizmente, outros programadores da equipe, ja habituados ao formato de alguns programas, consideravam a pratica irritante. Mais uma vez o problema do peopleware, ou seja, tomei uma medida isoladamente, sem considerar eventuais impactos sobre outras pessoas. Se tivesse sabido administrar melhor a equipe, provavelmente teria aumentado a produtividade de todos e nao teria causado desconforto a ninguem.Gerencia de Configuracao de SoftwareTipicamente, e vista como controle de versao de codigos-fonte, porem abarca muitas outras atividades alem desta. Podemos citar a avaliacao das mudancas propostas e o controle de versao de outros artefatos.Assim como outras praticas apresentadas anteriormente, a gerencia de configuracao de software faz com que o esforco de desenvolvimento do software aumente em relacao ao caminho feliz (hipotese absolutamente teorica na qual o desenvolvimento ocorre sem qualquer percalco). Qualquer um