F. P. B. Jr.
Chapel Hill, N. C.
Março de 1995
meu sucessor como gerente, tem muito do que se orgulhar. O sistema contém
aspectos excelentes, tanto de projeto quanto de execução, e foi um sucesso, che-
gando à utilização em larga escala. Algumas ideias, mais notavelmente o sistema
de entrada e saída (input-output), independente dos dispositivos utilizados, e um
gerenciamento de bibliotecas externas constituíram inovações técnicas que hoje
são amplamente copiadas. O sistema é, agora, bastante confiável, razoavelmente
eficiente e muito versátil.
Esse esforço não põde ser considerado, entretanto, um sucesso completo.
Qualquer usuário do OS/360 logo se dá conta de quanto o sistema pode ser me-
lhor. As falhas de projeto e execução existem, sobretudo no programa de contro-
le, à diferença dos compiladores de linguagens de programação. A maioria dessas
falhas datam do período de projeto, entre 1964-65, e, por isso, cabe a mim a cul-
pa. Além disso, o projeto atrasou, consumiu mais memória do que o planejado,
os custos muitas vezes superaram a estimativa e o sistema não funcionou bem até
o lançamento de várias versões depois da primeira.
Após deixar a IBM em 1965 e transferir-me para Chapel Hill, como era o
combinado quando assumi o OS/360, comecei a analisar essa experiência com o
intuito de tirar lições técnicas e de gestão. Mais especificamente, eu queria expli-
car a sensível diferença entre as experiências de gestão durante o desenvolvimento
de hardware do System/360 e de software do OS/360. Este livro é a resposta tar-
dia para as questões polêmicas levantadas por Tom Watson* sobre as razões pelas
quais é difícil gerenciar tarefas de programação.
Nessa busca, aproveitei as longas conversas com R. P. Case, auxiliar da ge-
rência entre 1964-65, e com F. M. Trapnell, gerente entre 1965-68. Comparei as
conclusões com outros gerentes de projetos gigantes de programação, incluindo
F. J. Corbato do M.I.T., John Harr e V. Vyssotsky da Bell Telephone Labora-
tories, Charles Portman da International Computers Limited, A. P. Ershov do
Laboratório de Computação da Divisão Siberiana da Academia de Ciências da
ex-União Soviética, e A. M. Pietrasanta da IBM.
Minhas conclusões estão nos ensaios a seguir, que têm como público-alvo
programadores profissionais, gerentes profissionais e, sobretudo, gerentes profis-
sionais de programadores.
* Thomas J. Watson foi contratado em 1914 como o primeiro CEO da empresa que, em 1924, passou a chamar-se Inter-
national Business Machines Corporation (IBM). Ele aposentou-se em meados dos anos 50, quando seu filho Thomas
J. Watson Jr. tornou-se o CEO da empresa até se aposentar, aos 60 anos de idade. As referências a Tom Watson, neste
livro, dizem respeito a Thomas J. Watson Jr.
F. P. B. Jr.
Chapel Hill, N.C.
Outubro de 1974
Fabio Kon
Departamento de Ciência da Computação
Instituto de Matemática e Estatística
Universidade de São Paulo
São Paulo, junho de 2009
1. O Poço de Alcatrão 1
2. O Mítico Homem-Mês 11
3. A Equipe Cirúrgica 25
4. Aristocracia, Democracia e o Projeto de Sistemas 37
5. O Efeito do Segundo Sistema 49
6. Transmitindo a Mensagem 57
7. Por que a Torre de Babel Falhou? 69
8. Prevendo o Lançamento 81
9. Dez Quilos em um Saco de Cinco 91
10. A Hipótese dos Documentos 101
* Os poços de alcatrão (piche) de La Brea, na Califórnia, compõem um sítio arqueológico onde muitos animais pré-
históricos foram descobertos. Os animais caíam nos poços que afloravam à superfície e não conseguiam mais sair,
afundando enquanto se debatiam. (N. T.)
Por que então não substituir todas as equipes de programação por dedicadas
duplas de garagem? É necessário examinar o que está sendo produzido.
No canto superior esquerdo da Figura 1.1 está um programa. Ele está com-
pleto, pronto para ser executado pelo autor no sistema para o qual foi desen-
volvido. É isso que costuma ser produzido em garagens e este é o objeto que o
programador individual utiliza ao estimar produtividade.
X3
Um Um Sistema de
Programa Programas
(Interfaces de Integração
de Sistemas)
X3
Um Um Produto da
Programa Programação de
Produto Sistemas
(Generalização, Testes,
Documentação,
Manutenção)
As Alegrias da Arte
Por que é divertido programar? Que alegrias o praticante dessa arte pode ter
como recompensa?
A primeira é a satisfação de construir algo. Da mesma maneira que uma
criança delicia-se com seu bolinho de lama, os adultos divertem-se construindo