Facebook Pixel
Searching...
Português
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
The Mythical Man-Month

The Mythical Man-Month

Essays on Software Engineering
por Frederick P. Brooks Jr. 1995 336 páginas
4.01
14k+ avaliações
Ouvir

Principais conclusões

1. A integridade conceitual é fundamental no design de software

A integridade conceitual é a consideração mais importante no design de sistemas.

Modelo mental coerente: Um produto de software deve apresentar um modelo mental coerente aos seus usuários, abrangendo a aplicação, estratégias de uso e a interface do usuário. Essa coerência é o principal fator na facilidade de uso e na qualidade geral do produto.

Desafios de grandes projetos: Alcançar a integridade conceitual torna-se mais difícil à medida que o tamanho do projeto aumenta e mais mentes estão envolvidas no processo de design. É por isso que gerenciar grandes projetos de programação é qualitativamente diferente de gerenciar pequenos.

Papel do arquiteto: Para manter a integridade conceitual, é crucial ter uma única mente ou um pequeno grupo de mentes concordantes responsáveis pelo design geral. É aqui que o papel do arquiteto do sistema se torna essencial, atuando como o agente do usuário e tomando decisões críticas de design.

2. O papel do arquiteto do sistema é crucial para o sucesso do projeto

A função mais importante que os construtores de software desempenham para seus clientes é a extração e refinamento iterativo dos requisitos do produto.

Arquiteto como defensor do usuário: O arquiteto do sistema serve como representante do usuário, responsável pela integridade conceitual de todos os aspectos do produto perceptíveis pelo usuário. Isso inclui definir o modelo mental público do produto e especificar suas funções e controles.

Separação de preocupações: Para tornar a tarefa do arquiteto gerenciável, é necessário separar a arquitetura (os aspectos perceptíveis pelo usuário) da implementação. Isso cria uma fronteira clara no processo de design, permitindo um esforço focado em ambos os lados.

Arquitetura recursiva: Para grandes projetos, o sistema pode ser dividido em subsistemas, cada um com seu próprio arquiteto reportando ao arquiteto mestre. Essa abordagem recursiva permite manter a integridade conceitual mesmo em sistemas complexos.

3. O efeito do segundo sistema pode levar ao superdesign e ao excesso de recursos

O segundo é o sistema mais perigoso que uma pessoa já projetou; a tendência geral é superprojetá-lo.

Designs ambiciosos demais: O segundo sistema que um designer cria frequentemente sofre de ambição excessiva e recursos em demasia. Isso se deve à confiança aumentada do designer e ao desejo de implementar todas as ideias que não puderam ser realizadas no primeiro sistema.

Equilíbrio: Ao projetar para um conjunto de usuários grande e diversificado, torna-se desafiador equilibrar as diferentes necessidades dos usuários. Isso frequentemente leva ao excesso de recursos, comprometendo o desempenho e a facilidade de uso.

Definição do conjunto de usuários: Para combater isso, é crucial definir explicitamente o conjunto de usuários-alvo, incluindo:

  • Quem são
  • O que precisam
  • O que pensam que precisam
  • O que querem

Adivinhar e documentar os atributos dos usuários e suas frequências pode ajudar a focar o processo de design e destacar áreas que requerem mais pesquisa.

4. A interface WIMP revolucionou a interação do usuário com computadores

O WIMP é um excelente exemplo de uma interface de usuário que possui integridade conceitual, alcançada pela adoção de um modelo mental familiar, a metáfora da área de trabalho, e sua extensão cuidadosa e consistente para explorar uma implementação gráfica de computador.

Integridade conceitual através da metáfora: A interface Windows, Icons, Menus, and Pointing (WIMP) alcançou integridade conceitual ao adotar a metáfora familiar da área de trabalho e estendê-la consistentemente ao ambiente de computador.

Equilíbrio entre poder e facilidade de uso: A interface WIMP equilibra com sucesso o poder para usuários experientes com a facilidade de uso para novatos:

  • Menus fornecem opções descobertas para novos usuários
  • Atalhos de teclado oferecem eficiência para usuários avançados
  • A interface permite uma transição suave entre esses modos

Imposição de padrões: O sucesso da interface WIMP em várias aplicações foi alcançado através de:

  • Construção da interface em memória somente leitura
  • Compromisso e persuasão da gestão
  • Críticas de revisores para produtos não conformes

Essa abordagem demonstra o poder da incorporação direta na imposição de padrões arquitetônicos.

5. O modelo em cascata é falho; o desenvolvimento incremental é superior

A falácia básica do modelo em cascata é que ele assume que um projeto passa pelo processo uma vez, que a arquitetura é excelente e fácil de usar, o design da implementação é sólido e a realização é corrigível à medida que os testes prosseguem.

Limitações do modelo em cascata:

  • Assume progressão linear através das etapas
  • Coloca o teste do sistema e do usuário no final
  • Não leva em conta o feedback necessário a montante

Benefícios do desenvolvimento incremental:

  • Permite testes de usuário antecipados
  • Fornece um sistema em funcionamento em todas as etapas
  • Permite estratégias de construção com orçamento
  • Melhora o moral da equipe através de progresso visível

Refinamento progressivo: Comece com um sistema esqueleto básico de ponta a ponta, depois adicione e refine módulos incrementalmente. Essa abordagem permite testes contínuos e adaptação com base no feedback do usuário e nos requisitos emergentes.

6. A gestão eficaz de projetos requer documentação clara e marcos

Os marcos devem ser eventos concretos, específicos e mensuráveis definidos com precisão cirúrgica.

Documentos críticos: Um pequeno conjunto de documentos bem definidos serve como ferramentas fundamentais para a gestão de projetos:

  • Objetivos
  • Manual do usuário
  • Cronograma
  • Orçamento
  • Organograma
  • Alocação de espaço

Características dos marcos:

  • Concretos e mensuráveis
  • Definidos com precisão para evitar ambiguidades
  • Usados para rastrear progresso e identificar atrasos

Ferramentas de comunicação: Esses documentos e marcos servem a múltiplos propósitos:

  • Focar o pensamento e cristalizar discussões
  • Comunicar planos e decisões à equipe
  • Fornecer uma base para rastreamento de status e alerta precoce de problemas

7. A engenharia de software enfrenta desafios únicos em produtividade e complexidade

Sistemas de software são talvez as coisas mais intrincadas e complexas que a humanidade faz.

Complexidade inerente: Sistemas de software são inerentemente complexos devido à sua natureza abstrata e à necessidade de se conformar a várias instituições e sistemas humanos.

Paradoxo da produtividade: Enquanto a produtividade na fabricação de hardware aumentou dramaticamente, a produtividade no desenvolvimento de software não viu ganhos comparáveis. Isso se deve em grande parte à natureza intensiva em mão de obra do desenvolvimento de software.

Desafios:

  • Invisibilidade: O software não possui uma representação geométrica natural
  • Mutabilidade: O software está constantemente sujeito a pressões de mudança
  • Conformidade: O software deve se adaptar a vários sistemas e convenções externas

8. A falácia do mês-homem mítico: adicionar mão de obra a um projeto atrasado o atrasa ainda mais

Lei de Brooks: Adicionar mão de obra a um projeto de software atrasado o atrasa ainda mais.

Razões para a falácia:

  • Tempo de adaptação para novos membros da equipe
  • Aumento da sobrecarga de comunicação
  • Fragmentação da tarefa

Implicações:

  • Planejamento e estimativa iniciais cuidadosos são cruciais
  • Projetos devem ser estruturados para minimizar interdependências
  • Estratégias alternativas (por exemplo, redução de escopo) devem ser consideradas antes de adicionar mão de obra

Estratégias de mitigação:

  • Uso de equipes pequenas e habilidosas (por exemplo, modelo de equipe cirúrgica)
  • Divisão clara de responsabilidades
  • Práticas eficazes de comunicação e documentação

9. Código auto-documentado e documentação adequada são essenciais

Para manter a documentação atualizada, é crucial que ela seja incorporada no programa-fonte, em vez de mantida como um documento separado.

Práticas de auto-documentação:

  • Use nomes significativos para variáveis e funções
  • Incorpore comentários dentro do código
  • Utilize recursos da linguagem que aumentem a legibilidade

Tipos de documentação:

  • Documentação do usuário: Visão geral, propósito, instruções de uso
  • Documentação técnica: Arquitetura, decisões de design, detalhes de implementação

Estratégias de documentação:

  • Escreva a documentação simultaneamente ao desenvolvimento do código
  • Use ferramentas que gerem documentação a partir do código
  • Revise e atualize regularmente a documentação à medida que o sistema evolui

Benefícios:

  • Melhor manutenção
  • Facilitação da integração de novos membros na equipe
  • Redução do risco de perda de conhecimento quando membros da equipe saem

Última atualização:

Avaliações

4.01 de 5
Média de 14k+ avaliações do Goodreads e da Amazon.

O Mítico Mês-Homem é uma obra seminal sobre gestão de engenharia de software que permanece relevante décadas após a sua publicação. Os leitores apreciam as percepções de Brooks sobre planeamento de projetos, estrutura de equipas e os desafios do desenvolvimento de software em grande escala. Muitos conceitos, como a Lei de Brooks e a importância da integridade conceptual, ainda são aplicáveis hoje em dia. No entanto, alguns críticos apontam as referências tecnológicas desatualizadas e a linguagem com viés de género. O valor duradouro do livro reside na sua sabedoria intemporal sobre os fatores humanos no desenvolvimento de software, tornando-o uma leitura indispensável para profissionais da área.

Sobre o autor

Frederick Phillips Brooks Jr. é um cientista da computação e engenheiro de software americano, mais conhecido por gerenciar o desenvolvimento da família de computadores System/360 da IBM e do pacote de software OS/360. Posteriormente, tornou-se professor na Universidade da Carolina do Norte em Chapel Hill, onde fundou o departamento de ciência da computação. As experiências de Brooks na IBM o inspiraram a escrever "The Mythical Man-Month", que se tornou um clássico na literatura de engenharia de software. Seu trabalho influenciou significativamente o campo da arquitetura de computadores e da gestão de projetos de software. Brooks recebeu inúmeros prêmios por suas contribuições, incluindo o Prêmio Turing em 1999. Sua abordagem ao desenvolvimento de software enfatiza a importância da simplicidade, da integridade conceitual e da compreensão dos fatores humanos na engenharia.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Unlock unlimited listening
Your first week's on us!
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Nov 30,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
“...I can 10x the number of books I can read...”
“...exceptionally accurate, engaging, and beautifully presented...”
“...better than any amazon review when I'm making a book-buying decision...”
Save 62%
Yearly
$119.88 $44.99/yr
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance