Searching...
Português
English
Español
简体中文
Français
Deutsch
日本語
Português
Italiano
한국어
Русский
Nederlands
العربية
Polski
हिन्दी
Tiếng Việt
Svenska
Ελληνικά
Türkçe
ไทย
Čeština
Română
Magyar
Українська
Bahasa Indonesia
Dansk
Suomi
Български
עברית
Norsk
Hrvatski
Català
Slovenčina
Lietuvių
Slovenščina
Српски
Eesti
Latviešu
فارسی
മലയാളം
தமிழ்
اردو
Mythical Man-Month, The

Mythical Man-Month, The

Essays on Software Engineering, Anniversary Edition
by Frederick Brooks Jr. 1995 336 pages
Programming
Computer Science
Technology
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

Last updated:

Avaliações

4.01 out of 5
Average of 14k+ ratings from Goodreads and 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
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Listening – audio summariesListen to the first takeaway of every book for free, upgrade to Pro for unlimited listening.
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 5: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Sep 26,
cancel anytime before.
What our users say
“...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...”
Compare Features
Free Pro
Read full text summaries
Listen to full summaries
Unlimited Bookmarks
Unlimited History
Benefits
Get Ahead in Your Career
People who read at least 7 business books per year earn 2.3 times more on average than those who only read one book per year.
Unlock Knowledge Faster (or Read any book in 10 hours minutes)
How would your life change if we gave you the superpower to read 10 books per month?
Access 12,000+ hours of audio
Access almost unlimited content—if you listen to 1 hour daily, it’ll take you 33 years to listen to all of it.
Priority 24/7 AI-powered and human support
If you have any questions or issues, our AI can resolve 90% of the issues, and we respond in 2 hours during office hours: Mon-Fri 9 AM - 9 PM PT.
New features and books every week
We are a fast-paced company and continuously add more books and features on a weekly basis.
Fun Fact
2.8x
Pro users consume 2.8x more books than free users.
Interesting Stats
Reduced Stress: Reading for just 6 minutes can reduce stress levels by 68%
Reading can boost emotional development and career prospects by 50% to 100%
Vocabulary Expansion: Reading for 20 minutes a day are exposed to about 1.8 million words per year
Improved Cognitive Function: Reading can help reduce mental decline in old age by up to 32%.
Better Sleep: 50% of people who read before bed report better sleep.
Can I switch plans later?
Yes, you can easily switch between plans.
Is it easy to cancel?
Yes, it's just a couple of clicks. Simply go to Manage Subscription in the upper-right menu.
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.