Documentos de Académico
Documentos de Profesional
Documentos de Cultura
O Codificador Limpo PDF
O Codificador Limpo PDF
³7LR%RE´0DUWLQGH¿QLWLYDPHQWHHOHYDRQtYHOFRPHVWHVHX~OWLPROLYUR
(OHH[SOLFDVXDVH[SHFWDWLYDVSDUDTXHXPSURJUDPDGRUSUR¿VVLRQDOJHUHQFLH
LQWHUDo}HVWHPSRDSUHVVmRDFRODERUDomRHDHVFROKDGHTXDLVIHUUDPHQWDVXVDU
$OpPGH7''H$''70DUWLQH[SOLFDQmRVRPHQWHRTXHWRGRSURJUDPDGRUTXH
VHFRQVLGHUDSUR¿VVLRQDOSUHFLVDVDEHUPDVWDPEpPRTXHSUHFLVDVHJXLUD¿PGH
ID]HUFRPTXHDMRYHPSUR¿VVmRGHGHVHQYROYLPHQWRGHVRIWZDUHFUHVoD
— Markus Gärtner
Desenvolvedor Sênior de Software
it-agile GmbH/www.it-agile.de/www.shine.de (conteúdo em inglês)
$OJXQVOLYURVWpFQLFRVLQVSLUDPHHQVLQDPRXWURVHQFDQWDPHGLYHUWHP
5DUDPHQWHXPOLYURWpFQLFRID]WRGDVHVVDVTXDWURFRLVDV1DPLQKDRSLQLmRRV
OLYURVGH5REHUW&0DUWLQVHPSUHDWHQGHPDHVVHVUHTXLVLWRVH2&RGL¿FDGRU
LimpoQmRpH[FHomR/HLDDSUHQGDHYLYDDVOLo}HVGHVWHOLYURHYRFrSRGHUi
LQWLWXODUVHXPSUR¿VVLRQDOGHVRIWZDUH
— George Bullock
Gerente Sênior de Programação
Microsoft Corp.
6HRFXUVRGH&LrQFLDGD&RPSXWDomRWLYHVVH³OHLWXUDREULJDWyULDDSyVD
JUDGXDomR´VHULDHVWD1RPXQGRUHDORFyGLJRUXLPQmRGHVDSDUHFHTXDQGRR
VHPHVWUHDFDEDYRFrQmRUHFHEHXP$SRUWHUIHLWRXPDPDUDWRQDFRGL¿FDGRUD
QDQRLWHDQWHULRUGDGHYLGDWDUHIDHSLRUGHWXGRYRFrSUHFLVDOLGDUFRPSHVVRDV
(QWmRJXUXVGDFRGL¿FDomRQmRVmRQHFHVVDULDPHQWHSUR¿VVLRQDLV2&RGL¿FDGRU
LimpoGHVFUHYHDMRUQDGDDRSUR¿VVLRQDOLVPRHID]XPWUDEDOKRQRWDYHOPHQWH
GLYHUWLGRDSDUWLUGHOD
— Jeff Overbey
Universidade de Illinois em Urbana-Champaign
2&RGL¿FDGRU/LPSRpPXLWRPDLVTXHXPFRQMXQWRGHUHJUDVHGLUHWUL]HV(OH
FRQWpPFRQKHFLPHQWRHVDEHGRULDFRQTXLVWDGRVDGXUDVSHQDVTXHQRUPDOPHQWHVmR
REWLGRVSRUPXLWRVDQRVGHWHQWDWLYDHHUURRXDRWUDEDOKDUFRPRDSUHQGL]GHXP
PHVWUH6HYRFrVHLQWLWXODSUR¿VVLRQDOGHVRIWZDUHSUHFLVDGHVWHOLYUR
— R. L. Bogetti
Projetista de Sistema de Liderança
Baxter Healthcare/www.RLBogetti.com
O Codificador Limpo
O Codificador Limpo
U M C Ó DIG O DE C O ND UTA PA R A
P RO G R A MA DO R ES P RO F IS S I O NA IS
R o b e r t C . M a r tin
R io de J a ne iro, 20 1 2
(QWUHHWUDEDOKHLFRP-LP1HZNLUNXPFROHJDGH7HUDG\QH
3DUWLOKiYDPRVXPDSDL[mRSHODSURJUDPDomRHSHORFyGLJROLPSR3DVViYDPRV
QRLWHV¿QDLVGHWDUGHH¿QVGHVHPDQDMXQWRVEULQFDQGRFRPGLIHUHQWHVHVWLORVGH
SURJUDPDomRHWpFQLFDVGHGHVHQYROYLPHQWR(VWiYDPRVRWHPSRWRGRFRQYHUVDQGR
VREUHLGHLDVGHQHJyFLRV)LQDOPHQWHFULDPRVMXQWRVDObject Mentor, Inc.$SUHQGL
PXLWDVFRLVDVFRP-LPQDPHGLGDHPTXHWUDoiYDPRVQRVVRVSODQRVMXQWRV0DV
XPDGDVFRLVDVPDLVLPSRUWDQWHVIRLVXDDWLWXGHGHtrabalho éticoHUDDOJRTXHHX
OXWDYDSDUDHPXODU-LPpXPSUR¿VVLRQDO7HQKRRUJXOKRGHWHUWUDEDOKDGRFRPHOH
HFKDPiORGHDPLJR
Sumário
S U MÁ R IO
Prefácio xiii
Introdução xix
Agradecimentos xxiii
Sobre o Autor xxix
Sobre a Capa xxxi
Introdução Pré-Requisito 1
Capítulo 1 Profissionalismo 7
&XLGDGRFRPR4XH9RFr3HGH
$VVXPLQGR5HVSRQVDELOLGDGH
3ULPHLUR1mR&DXVH'DQRV
eWLFDGH7UDEDOKR
%LEOLRJUD¿D
ix
Sumário
Capítulo 4 Codificando 57
3UHSDUDomR
$=RQDGH)OX[R
2%ORTXHLRGR3URJUDPDGRU
'HSXUDomR
(VWDEHOHFHQGRR5LWPR
$WUDVDQGRVH
$MXGD
%LEOLRJUD¿D
Capítulo 6 Prática 85
$OJXPDV&RQVLGHUDo}HV6REUHD3UiWLFD
2&RGLQJ'RMR
$PSOLDQGRVXD([SHULrQFLD
&RQFOXVmR
%LEOLRJUD¿D
x
Sumário
&RQFOXVmR
%LEOLRJUD¿D
xi
Sumário
(QVLQR
$SUHQGL]DJHP
+DELOLGDGH
&RQFOXVmR
Apêndice A Uso das Ferramentas 187
)HUUDPHQWDV
&RQWUROHGR&yGLJRIRQWH
,'((GLWRU
$FRPSDQKDPHQWRGH,WHQV
&RQVWUXomR&RQWtQXD
)HUUDPHQWDVGH7HVWHVGH8QLGDGHV
)HUUDPHQWDVGH7HVWHVGH&RPSRQHQWHV
)HUUDPHQWDVGH7HVWHVGH,QWHJUDomR
80/0'$
&RQFOXVmR
ËQGLFH
xii
Prefácio
P R EF ÁC I O
9RFrHVFROKHXHVWHOLYURHQWmRSUHVXPRTXHVHMDXPSUR¿VVLRQDOGHVRIWZDUH,VVR
pERPHXWDPEpPVRX(XPDYH]TXHWHQKRVXDDWHQomRSHUPLWDPHGL]HUSRUTXH
HXHVFROKLHVWHOLYUR
7XGRFRPHoRXKiSRXFRWHPSRHPXPOXJDUQmRPXLWRGLVWDQWH$EUDPDVFRUWLQDV
OX]HVHFkPHUDV&KDUOH\
$QRVDWUiVHXWUDEDOKDYDHPXPDHPSUHVDGHPpGLRSRUWHYHQGHQGRSURGXWRV
DOWDPHQWHUHJXODGRV9RFrFRQKHFHRWLSRVHQWiYDPRVHPFXEtFXORVHPXPSUpGLR
GHWUrVDQGDUHVGLUHWRUHVHVHXVVXSHULRUHVWLQKDPHVFULWyULRVSULYDGRVHMXQWDUWRGR
PXQGRTXHYRFrSUHFLVDYDSDUDXPDUHXQLmROHYDYDXPDVHPDQD
2SHUiYDPRVHPXPPHUFDGREDVWDQWHFRPSHWLWLYRTXDQGRRJRYHUQRWRUQRXXP
QRYRSURGXWRDFHVVtYHO
'HUHSHQWHWtQKDPRVXPFRQMXQWRGHFOLHQWHVHPSRWHQFLDOFRPSOHWDPHQWHQRYR
WXGRRTXHQHFHVVLWiYDPRVID]HUHUDGDUXPMHLWRSDUDTXHHOHVFRPSUDVVHPR
SURGXWR,VVRVLJQL¿FDYDTXHSUHFLViYDPRVSHGLUGHWHUPLQDGRSUD]RSDUDRJRYHUQR
IHGHUDOSDVVDUXPDDXGLWRULDGHDYDOLDomRHPRXWUDGDWDHFKHJDUDRPHUFDGRHP
XPDWHUFHLUD
5HSHWLGDPHQWHQRVVRJHUHQWHHQIDWL]DYDDLPSRUWkQFLDGDTXHODVGDWDV8PD~QLFD
HVFRUUHJDGDQRVGHL[DULDGHIRUDGRPHUFDGRSRUXPDQRHVHRVFOLHQWHVQmR
xiii
Prefácio
SXGHVVHPVHFDGDVWUDUQRSULPHLURGLDHQWmRWRGRVVHFDGDVWUDULDPFRPRXWURH
HVWDUtDPRVIRUDGRQHJyFLR
(VVHpRWLSRGHDPELHQWHQRTXDODOJXPDVSHVVRDVUHFODPDPHRXWUDVDSRQWDPTXH
D³SUHVVmRSURGX]GLDPDQWHV´
(XHUDJHUHQWHGHSURMHWRWpFQLFRSURPRYLGRGRVHWRUGHGHVHQYROYLPHQWR0LQKD
UHVSRQVDELOLGDGHHUDDGHFRORFDURVLWHQRDUGLDULDPHQWHGHIRUPDTXHRVFOLHQWHV
SRWHQFLDLVSXGHVVHPEDL[DULQIRUPDo}HVHPDLVLPSRUWDQWHRVIRUPXOiULRVGH
FDGDVWUDPHQWR0HXSDUFHLURQDHPSUHLWDGDHUDRJHUHQWHGHSURMHWRVGHQHJyFLRV
DTXHPFKDPDUHLGH-RH2SDSHOGHOHHUDGHJHUHQFLDURRXWURODGROLGDQGRFRP
YHQGDVPDUNHWLQJHDVH[LJrQFLDVTXHQmRIRVVHPWpFQLFDV(OHWDPEpPHUDRFDUD
TXHJRVWDYDGRFRPHQWiULR³SUHVVmRSURGX]GLDPDQWHV´
6HYRFrMiWUDEDOKRXEDVWDQWHQRPXQGRFRUSRUDWLYRSURYDYHOPHQWHMiYLXRV
GHGRVDSRQWDGRVjSURFXUDGHFXOSDGRVHSHVVRDVFRPDYHUVmRDRWUDEDOKRRTXH
pFRPSOHWDPHQWHQDWXUDO1RVVDHPSUHVDWLQKDXPDVROXomRLQWHUHVVDQWHSDUDHVVH
SUREOHPDFRPLJRHFRP-RH
8PSRXTXLQKRFRPR%DWPDQH5RELQQRVVRWUDEDOKRHUDGHID]HUFRPTXH
DVFRLVDVDFRQWHFHVVHP(XPHHQFRQWUDYDFRPDHTXLSHWpFQLFDGLDULDPHQWH
HPXPFDQWRUHSDVViYDPRVDDJHQGDWRGRVDQWRGLDGHVFREUtDPRVRFDPLQKR
SULQFLSDOHHQWmRUHPRYtDPRVFDGDSRVVtYHOREVWiFXORGHOH6HDOJXpP
SUHFLVDYDGHVRIWZDUHtDPRVEXVFiOR6HHOHV³DGRUDYDP´FRQ¿JXUDUR
¿UHZDOOPDV³&DUDPEDpKRUDGRDOPRoR´FRPSUiYDPRVDOPRoRSDUDHOHV6H
DOJXpPTXLVHVVHWUDEDOKDUHPQRVVRWLFNHWGHFRQ¿JXUDomRPDVWLYHVVHRXWUDV
SULRULGDGHV-RHHHXIDOiYDPRVFRPRVXSHUYLVRU
'HSRLVFRPRJHUHQWH
'HSRLVFRPRGLUHWRU
&RQVHJXtDPRVTXHDVFRLVDVIRVVHPIHLWDV
eXPSRXFRGHH[DJHURGL]HUTXHFKXWiYDPRVFDGHLUDVSDUDRDOWRJULWiYDPRVH
GiYDPRVHVFkQGDORPDVXVDPRVFDGDWpFQLFDGLVSRQtYHOSDUDFRQVHJXLUTXHDVFRLVDV
IRVVHPIHLWDVLQYHQWDPRVDOJXPDVQRYDVDRORQJRGRFDPLQKRH¿]HPRVLVVRGHXPD
IRUPDpWLFDTXHPHRUJXOKDDWpKRMH
xiv
Prefácio
(XSHQVDYDHPPLPPHVPRFRPRXPPHPEURGDHTXLSHQmRSDVVDQGRSRUFLPD
GHODSDUDHVFUHYHUXPDLQVWUXomR64/RXID]HUXPEUHYHHPSDUHOKDPHQWRD¿P
GHREWHUXPFyGLJR$RPHVPRWHPSRSHQVDYDHP-RHGDPHVPDPDQHLUDFRPR
PHPEURGDHTXLSHQmRDFLPDGHOD
)LQDOPHQWHSHUFHELTXH-RHQmRSDUWLOKDYDGDPHVPDRSLQLmR$TXHOHIRLXPGLD
PXLWRWULVWHSDUDPLP
(UDVH[WDIHLUDjVKRVLWHHVWDYDSURJUDPDGRSDUDHQWUDUQRDUEHPFHGRQD
VHJXQGDIHLUDVHJXLQWH
(VWiYDPRVRUJXOKRVRV(UDXPERPPRPHQWR
(QWmR-RHDSDUHFHX
(OHGLVVHDOJRFRPR³0iVQRWtFLDV2MXUtGLFRQmRWHPRVIRUPXOiULRVGHFDGDVWUR
DLQGDHQWmRQmRSRGHPRVHQWUDUQRDU´
,VVRQmRHUDJUDQGHFRLVDWtQKDPRVVLGRGHWLGRVSRUXPDFRLVDRXRXWUDDRORQJR
GHWRGRRSURMHWRHWtQKDPRVDURWLQD%DWPDQ5RELQQDSRQWDGDOtQJXD(X
HVWDYDSURQWRHPLQKDUHVSRVWDIRLHVVHQFLDOPHQWH³2NSDUFHLURYDPRVID]HU
LVVRPDLVXPDYH]2MXUtGLFR¿FDQRWHUFHLURDQGDUFHUWR"´
$tDVFRLVDV¿FDUDPHVWUDQKDV
$RLQYpVGHFRQFRUGDUFRPLJR-RHSHUJXQWRX³'RTXHYRFrHVWiIDODQGR0DWW"´
(XGLVVH³9RFrVDEH1RVVRYHOKRWUXTXH(VWDPRVIDODQGRGHTXDWURDUTXLYRVHP
3')FHUWR"(OHVHVWmRIHLWRVRMXUtGLFRVySUHFLVDDSURYiORV"9DPRVDSDUHFHUHP
VHXVFXEtFXORVGDUXPDROKDGDIHLDHFRQVHJXLUTXHLVVRseja feito´
-RHQmRFRQFRUGRXFRPRTXHHXGLVVHHUHVSRQGHX³1yVHQWUDPRVQRDUXPSRXFR
GHSRLVQDVHPDQDTXHYHP1mRpJUDQGHFRLVD´
xv
Prefácio
9RFrSURYDYHOPHQWHSRGHDGLYLQKDURUHVWRGHQRVVDFRQYHUVDIRLDOJRPDLVRX
PHQRVDVVLP
0DWW ³0DVSRUTXr"(OHVSRGHPID]HULVVRHPSRXFDVKRUDV´
-RH ³3RGHOHYDUPDLVGRTXHLVVR´
0DWW ³0DVHOHVWrPWRGRR¿QDOGHVHPDQD7HPSRRVX¿FLHQWH9DPRV
Oi´
-RH ³0DWWHOHVVmRSUR¿VVLRQDLV1mRSRGHPRVVLPSOHVPHQWHHQFDUi
ORVHSHGLUTXHVDFUL¿TXHPVXDVYLGDVSHVVRDLVSRUQRVVRSHTXHQR
SURMHWR´
0DWWSDXVD³-RHRTXHYRFrDFKDTXHWHPRVIHLWRFRPDHTXLSHGH
HQJHQKDULDQRV~OWLPRVTXDWURPHVHV"´
-RH ³6LPPDVHVVHVVmRSUR¿VVLRQDLV´
3DXVD
5HVSLUH
24XH-RH$FDERX'H'L]HU"
1DpSRFDHXDFKDYDTXHDHTXLSHWpFQLFDHUDSUR¿VVLRQDOQRPHOKRUVHQWLGRGD
SDODYUD
5HOHPEUDQGRLVVRFRQWXGRQmRWHQKRWDQWDFHUWH]D
9DPRVGDUXPDROKDGDQDWpFQLFD%DWPDQH5RELQXPDVHJXQGDYH]GHXPD
SHUVSHFWLYDGLIHUHQWH(XDFKDYDTXHHVWDYDH[WUDLQGRRPHOKRUGHVHPSHQKRGD
HTXLSHPDVVXVSHLWRTXH-RHHVWDYDMRJDQGRFRPDVXSRVLomRLPSOtFLWDGHTXHD
HTXLSHWpFQLFDHUDVHXRSRQHQWH3HQVHQRDVVXQWRSRUTXHHUDQHFHVViULRFRUUHUSRU
WRGRVRVODGRVFKXWDUFDGHLUDVHLQFOLQDUVHVREUHDVSHVVRDV"
1mRGHYHUtDPRVWHUVLGRFDSD]HVGHSHUJXQWDUjHTXLSHTXDQGRHOHVWHULDPR
WUDEDOKRIHLWRREWHUXPDUHVSRVWD¿UPHDFUHGLWDUQRTXHQRVIRLGLWRHQmRVHUPRV
TXHLPDGRVSRUDTXHODFUHQoD"
&HUWDPHQWHFRPRSUR¿VVLRQDLVQyVGHYHUtDPRVHDRPHVPRWHPSRQmR
SRGtDPRV-RHQmRFRQ¿DYDHPQRVVDVUHVSRVWDVHVHVHQWLDFRQIRUWiYHO
xvi
Prefácio
PLFURJHUHQFLDQGRDHTXLSHWpFQLFD±HDRPHVPRWHPSRSRUDOJXPPRWLYRHOH
FRQ¿DYDQDHTXLSHMXUtGLFDHQmRHVWDYDGLVSRVWRDPLFURJHUHQFLiOD
2TXHLVVRTXHUGL]HU"
'HDOJXPDPDQHLUDDHTXLSHMXUtGLFDKDYLDGHPRQVWUDGRSUR¿VVLRQDOLVPRGHXPD
IRUPDTXHDWpFQLFDQmRWLQKD
'HDOJXPPRGRRRXWURJUXSRKDYLDFRQYHQFLGR-RHGHTXHHOHVQmRSUHFLVDYDPGH
XPDEDEiTXHQmRHVWDYDPMRJDQGRHTXHSUHFLVDYDPVHUWUDWDGRVFRPRFROHJDVD
VHUHPUHVSHLWDGRV
1mRHXQmRDFKRTXHLVVRWHQKDDOJRDYHUFRPFHUWL¿FDGRVH[WUDYDJDQWHV
SHQGXUDGRVQDVSDUHGHVRXDOJXQVDQRVDPDLVGHIDFXOGDGHHPERUDHVVHVDQRV
SRVVDPWHULQFOXtGRXPDSHTXHQDSRUomRGHWUHLQDPHQWRVRFLDOLPSOtFLWRVREUH
FRPRVHFRPSRUWDU
'HVGHDTXHOHGLDDQRVDWUiVSHUJXQWRPHFRPRDSUR¿VVmRWpFQLFDSUHFLVDULD
PXGDUSDUDVHUFRQVLGHUDGDSUR¿VVLRQDO
$VVLPWLYHDOJXPDVLGHLDV%ORJXHLXPSRXFROLEDVWDQWHEXVTXHLDSHUIHLoRDU
PLQKDYLGDSUR¿VVLRQDOHDMXGDUDOJXQVRXWURV&RQWXGRQmRVDELDGDH[LVWrQFLDGH
OLYURDOJXPTXHH[SXVHVVHXPSODQRTXHGHL[DVVHDVFRLVDVLQWHLUDPHQWHH[SOtFLWDV
(QWmRXPGLDGRQDGDUHFHELXPDRIHUWDSDUDUHYLVDURUDVFXQKRGHXPOLYURHVWH
TXHYRFrVHJXUDHPVXDVPmRVDJRUD
(VWHOLYUROKHGLUiSDVVRDSDVVRH[DWDPHQWHFRPRYRFrGHYHVHDSUHVHQWDUH
LQWHUDJLUFRPRXPSUR¿VVLRQDO1mRFRPXPFOLFKrEDQDOQmRFRPDSHORVD
SHGDoRVGHSDSHOPDVRTXHYRFrSRGHID]HUHFRPRID]rOR
(PDOJXQVFDVRVRVH[HPSORVVmRSDODYUDSRUSDODYUD
$OJXQVGHVVHVH[HPSORVWrPUHVSRVWDVFRQWUDUUpSOLFDVHVFODUHFLPHQWRVHDWp
FRQVHOKRVVREUHRTXHID]HUVHDRXWUDSHVVRDWHQWDU³VLPSOHVPHQWHLJQRUiOR´
(LROKDVyOiYHPR-RHGHQRYRIRUDGRSDOFRGHVWDYH]
xvii
Prefácio
$TXLHVWDPRVGHYROWDj*UDQGH(PSUHVDFRPLJRHFRP-RHPDLVXPDYH]QR
JUDQGHVLWHGRSURMHWRGHFRQYHUVmR
6yTXHGHVWDYH]LPDJLQHXPSRXFRGLIHUHQWH
(PYH]GHHVTXLYDUVHGHVHXVFRPSURPLVVRVDHTXLSHWpFQLFDGHIDWRRVFXPSUH
(PYH]GHHVTXLYDUVHGHHVWLPDWLYDVRXGHL[DUDOJXPDRXWUDSHVVRDID]HUR
SODQHMDPHQWRHGHSRLVUHFODPDUGHOHDHTXLSHWpFQLFDGHIDWRVHRUJDQL]DHWRUQD
RVFRPSURPLVVRVUHDLV
$JRUDLPDJLQHTXHDHTXLSHHVWHMDUHDOPHQWHWUDEDOKDQGRMXQWD4XDQGRRV
SURJUDPDGRUHVVmREORTXHDGRVSHODVRSHUDo}HVHOHVDSDQKDPRWHOHIRQHHR
DGPLQLVWUDGRUGHVLVWHPDVUHDOPHQWHFRPHoDDWUDEDOKDU
4XDQGR-RHYHPDSDJDUXPLQFrQGLRSDUDTXHRWLFNHWIXQFLRQHHOHQmRSUHFLVD
ID]HULVVRSRGHUiYHUTXHR'%$HVWiWUDEDOKDQGRGLOLJHQWHPHQWHHQmRVXUIDQGRQD
ZHE'HIRUPDSDUHFLGDDVHVWLPDWLYDVTXHHOHREWpPGDHTXLSHSDUHFHPFRQVLVWHQWHV
HHOHQmRWHPDVHQVDomRGHTXHRSURMHWRpSULRULWiULRHPDOJXPPRPHQWRHQWUHR
DOPRoRHDFKHFDJHPGHHPDLO7RGRVRVWUXTXHVHWHQWDWLYDVGHPDQLSXODUDDJHQGD
QmRYmRGHHQFRQWURD³1yVYDPRVWHQWDU´PDVVLP³(VWHpQRVVRFRPSURPHWLPHQWR
VHYRFrTXLVHUHVWDEHOHFHUVXDVSUySULDVPHWDVYiHPIUHQWH´
$SyVXPWHPSRVXVSHLWRTXH-RHFRPHoDULDDSHQVDUQDHTXLSHWpFQLFDFRPREHP
SUR¿VVLRQDLV(HOHHVWDULDFHUWR
2VSDVVRVSDUDWUDQVIRUPDUQRVVRFRPSRUWDPHQWRGHWpFQLFRVSDUDSUR¿VVLRQDLV"
9RFrRVHQFRQWUDUiQRUHVWDQWHGHVWHOLYUR
%HPYLQGRDRSUy[LPRSDVVRHPVXDFDUUHLUDHXVXVSHLWRTXHYRFrLUiJRVWDU
— Matthew Heusser
Naturalista de Processo de Software
xviii
Introdução
I NTRODUÇÃ O
¬VKPLQGHGHMDQHLURGHDSHQDVVHJXQGRVDSyVRDOPRoRH
jDOWLWXGHGHSpVDQDYHHVSDFLDO&KDOOHQJHUIRLSDUWLGDHPSHGDFLQKRVSRU
XPDIDOKDQDWXUELQDGLUHLWDGRIRJXHWHSURSXOVRU65%6HWHFRUDMRVRVDVWURQDXWDV
LQFOXLQGRDSURIHVVRUDGR(QVLQR0pGLR&KULVWD0F$XOLIIHPRUUHUDP$H[SUHVVmR
QRURVWRGDPmHGH0F$XOLIIHHQTXDQWRREVHUYDYDDPRUWHGHVXD¿OKDDQRYHPLO
PLOKDVDFLPDGHVXDFDEHoDPHDVVRPEUDDWpKRMH
$&KDOOHQJHUVHSDUWLXSRUTXHJDVHVTXHQWHVGHHVFDSHQDWXUELQD65%
GDQL¿FDGDYD]DUDPHQWUHRVVHJPHQWRVGHVHXFDVFRVHHVSDOKDQGRSHORWDQTXHGH
xix
Introdução
FRPEXVWtYHOH[WHUQR2IXQGRGRWDQTXHSULQFLSDOGHKLGURJrQLROtTXLGRH[SORGLX
LQÀDPDQGRRFRPEXVWtYHOHMRJDQGRRWDQTXHSDUDIUHQWHFKRFDQGRRFRQWUDR
WDQTXHGHR[LJrQLROtTXLGRTXH¿FDYDQDSDUWHGHFLPD$RPHVPRWHPSRD65%
VHGHVWDFRXGRVXSRUWHWUDVHLURHURGRXHPWRUQRGRGLDQWHLUR2QDUL]GDQDYHIRL
URPSLGRSHORWDQTXHGHR[LJrQLROtTXLGR(VVHVYHWRUHVGHIRUoDVDQRUPDLV¿]HUDP
FRPTXHDQDYHLQWHLUDVHPRYHQGREHPDFLPDGR0DFKURGDVVHFRQWUDD
FRUUHQWHGHDU)RUoDVDHURGLQkPLFDVUDSLGDPHQWHDGHVSHGDoDUDP
(QWUHRVVHJPHQWRVFLUFXODUHVGD65%KDYLDGRLVDQpLVFRQFrQWULFRVGHERUUDFKD
VLQWpWLFD4XDQGRRVDQpLVIRUDPDSDUDIXVDGRVHOHVIRUDPFRPSULPLGRV
IRUPDQGRXPDYHGDomRRQGHRVJDVHVGHH[DXVWmRQmRGHYHULDPWHUVLGRFDSD]HV
GHSHQHWUDU
0DVQRDQRLWHFHUDQWHULRUDRODQoDPHQWRDWHPSHUDWXUDQDSODWDIRUPDGH
ODQoDPHQWRFKHJRXD&JUDXVDEDL[RGDWHPSHUDWXUDPtQLPDHVSHFt¿FD
SDUDRVDQpLVHJUDXVPDLVEDL[RVGRTXHTXDOTXHUODQoDPHQWRMiIHLWR&RPR
UHVXOWDGRRVDQpLV¿FDUDPPXLWRUtJLGRVSDUDEORTXHDUHPRVJDVHVTXHQWHV&RP
DWXUELQDHPFKDPDVKRXYHXPSXOVRGHSUHVVmRjPHGLGDTXHRVJDVHVTXHQWHV
DFXPXODYDPVHUDSLGDPHQWH2VVHJPHQWRVGRGtQDPRLQFKDUDPGRODGRGHIRUD
HUHOD[DUDPDFRPSUHVVmRGRVDQpLV$ULJLGH]HYLWRXTXHHOHVPDQWLYHVVHPD
YHGDomRHQWmRSDUWHGRVJDVHVYD]RXHYDSRUL]RXRVDQpLVHPXPDUFRGHJUDXV
2VHQJHQKHLURVGD0RUWRQ7KLRNROTXHGHVHQKDUDPD65%VDELDPTXHKDYLD
SUREOHPDVFRPRVDQpLVHHOHVMiWHULDPVLGRUHSRUWDGRVDRVJHUHQWHVGD7KLRNRO
HGD1$6$VHWHDQRVDQWHV'HIDWRRVDQpLVGHODQoDPHQWRVDQWHULRUHVIRUDP
GDQL¿FDGRVGHPDQHLUDVVHPHOKDQWHVHPERUDQmRRVX¿FLHQWHSDUDFDXVDU
XPDFDWiVWURIH2ODQoDPHQWRPDLVIULRWHYHDH[SHULrQFLDPDLVSUHMXGLFLDO2V
HQJHQKHLURVWLQKDPGHVHQKDGRXPUHSDURSDUDRSUREOHPDPDVDLPSOHPHQWDomR
KDYLDVLGRDGLDGDSRUXPORQJRWHPSR
2VHQJHQKHLURVVXVSHLWDYDPTXHRVDQpLVHQULMHFHVVHPTXDQGR¿FDYDIULR7DPEpP
VDELDPTXHDVWHPSHUDWXUDVSDUDRODQoDPHQWRGD&KDOOHQJHUHUDPPDLVEDL[DV
GRTXHHPTXDOTXHURXWURODQoDPHQWRIHLWRDQWHULRUPHQWHHEHPDEDL[RGDOLQKD
YHUPHOKD2XVHMDRVHQJHQKHLURVsabiamTXHRULVFRHUDEDVWDQWHDOWR(OHVDJLUDP
HPFRQIRUPLGDGHDHVVHFRQKHFLPHQWR(VFUHYHUDPPHPRUDQGRVOHYDQWDQGR
EDQGHLUDVYHUPHOKDVJLJDQWHVFDV5HFRPHQGDUDPIRUWHPHQWHTXHRVJHUHQWHVGD
7KLRNROHGD1$6$QmR¿]HVVHPRODQoDPHQWR(PXPDUHXQLmRGH~OWLPDKRUD
RFRUULGDDOJXPDVKRUDVDQWHVGRODQoDPHQWRRVHQJHQKHLURVDSUHVHQWDUDPVHXV
xx
Introdução
PHOKRUHVGDGRV(OHVVHH[DOWDUDPWHQWDUDPSHUVXDGLURVJHUHQWHVHSURWHVWDUDP
0DVQR¿QDOIRUDPLJQRUDGRV
4XDQGRFKHJRXDKRUDGRODQoDPHQWRDOJXQVGRVHQJHQKHLURVVHUHFXVDUDPD
DVVLVWLUDWUDQVPLVVmRSRUTXHWHPLDPXPDH[SORVmRQDSODWDIRUPDGHODQoDPHQWR
0DVjPHGLGDTXHD&KDOOHQJHUFRPHoRXDYRDUJUDFLRVDPHQWHSHORFpX
FRPHoDUDPDUHOD[DU0RPHQWRVDQWHVGDGHVWUXLomRHQTXDQWRREVHUYDYDPDQDYH
SDVVDUSHOR0DFKXPGHOHVGLVVHTXHHOHVWLQKDP³VHHVTXLYDGRGHXPDEDOD´
$SHVDUGHWRGRVRVSURWHVWRVPHPRUDQGRVHSHGLGRVGRVHQJHQKHLURVRVJHUHQWHV
DFKDYDPTXHHVWDYDPFHUWRVHTXHRVHQJHQKHLURVHVWDYDPH[DJHUDQGR1mR
FRQ¿DUDPQRVGDGRVHFRQFOXV}HVGHOHV)L]HUDPRODQoDPHQWRSRUTXHHVWDYDP
GHEDL[RGHXPDSUHVVmR¿QDQFHLUDHSROtWLFDLPHQVD(QR¿QDOesperavamTXH
WXGR¿FDVVHEHP
(VVHVJHUHQWHVQmRIRUDPPHUDPHQWHWRORVHOHVIRUDPFULPLQRVRV$VYLGDVGHVHWH
ERQVKRPHQVHPXOKHUHVHDVHVSHUDQoDVGHXPDJHUDomRROKDQGRHPGLUHomRjV
YLDJHQVHVSDFLDLVIRUDPGHVWUXtGDVQDTXHODPDQKmIULDSRUTXHDTXHOHVJHUHQWHV
FRORFDUDPVHXVPHGRVHVSHUDQoDVHLQWXLo}HVDFLPDGDVSDODYUDVGHVHXVSUySULRV
HVSHFLDOLVWDV(OHVWRPDUDPXPDGHFLVmRTXHQmRWLQKDPRGLUHLWRGHWRPDU
8VXUSDUDPDDXWRULGDGHGDVSHVVRDVTXHUHDOPHQWHVDELDPRVHQJHQKHLURV
0DVHTXDQWRDRVHQJHQKHLURV"&HUWDPHQWHHOHV¿]HUDPRTXHWLQKDPTXHID]HU
,QIRUPDUDPVHXVJHUHQWHVHOXWDUDPPXLWRSDUDID]HUYDOHUVXDSRVLomR6HJXLUDP
SHORVFDQDLVDSURSULDGRVHLQYRFDUDPWRGRVRVSURWRFRORVFHUWRV)L]HUDPRTXH
SRGLDPdentroGRVLVWHPD±HDLQGDDVVLPRVJHUHQWHVRVLJQRUDUDP(QWmRSRGH
SDUHFHUTXHHVVHVHQJHQKHLURVSRGHPVHJXLUVHPTXDOTXHUFXOSD
0DVjVYH]HVHXPHSHUJXQWRVHDOJXPGHVVHVHQJHQKHLURV¿FDDFRUGDGRjQRLWH
DVVRPEUDGRSHODLPDJHPGDPmHGH&KULVWD0F$XOLIIHHGHVHMDQGRTXHWLYHVVH
FKDPDGR'DQ5DWKHU
1RWDGRWUDGXWRUMRUQDOLVWDQRUWHDPHULFDQRTXH¿FRXIDPRVRSRUFRQWDGDFREHUWXUDGRDVVDV
VLQDWRGH-RKQ.HQQHG\HP
xxi
Introdução
Ɣ 2TXHpXPSUR¿VVLRQDOGHVRIWZDUH"
Ɣ &RPRXPSUR¿VVLRQDOVHFRPSRUWD"
Ɣ &RPRXPSUR¿VVLRQDOOLGDFRPFRQÀLWRVSUD]RVDSHUWDGRVHJHUHQWHVSRXFR
UD]RiYHLV"
Ɣ 4XDQGRHFRPRXPSUR¿VVLRQDOGHYHGL]HU³QmR´"
Ɣ &RPRXPSUR¿VVLRQDOOLGDFRPDSUHVVmR"
3RUpPHVFRQGLGRHQWUHRVFRQVHOKRVPDLVSUDJPiWLFRVGHVWHOLYURYRFrHQFRQWUDUi
XPDDWLWXGHGHOXWDSDUDVHOLEHUWDUeXPDDWLWXGHGHKRQHVWLGDGHKRQUDUHVSHLWR
SUySULRHRUJXOKReXPDGLVSRVLomRSDUDDFHLWDUDWHUUtYHOUHVSRQVDELOLGDGHGHVHU
XPDUWHVmRHXPHQJHQKHLUR(VVDUHVSRQVDELOLGDGHLQFOXLWUDEDOKDUEHPHGHIRUPD
OLPSD(ODLQFOXLDERDFRPXQLFDomRHDHVWLPDWLYDFRQ¿iYHO,QFOXLJHUHQFLDUVHX
WHPSRHHQFDUDUDVGLItFHLVGHFLV}HVGHULVFRUHFRPSHQVD
0DVHVVDUHVSRQVDELOLGDGHLQFOXLRXWUDFRLVD±DOJRDVVXVWDGRU&RPRHQJHQKHLUR
YRFrWHPXPSURIXQGRFRQKHFLPHQWRVREUHVHXVVLVWHPDVHSURMHWRVTXHQHQKXP
RXWURJHUHQWHSRGHWHU&RPHVVHFRQKHFLPHQWRYHPDUHVSRQVDELOLGDGHGHagir
Bibliografia
(McConnell87):0DOFROP0F&RQQHOOHChallenger ‘A Major Malfunction’1RYD
<RUN1<6LPRQ 6KXVWHU
(Wiki-Challenger):³6SDFH6KXWWOH&KDOOHQJHUGLVDVWHU´KWWSHQZLNLSHGLDRUJ
ZLNL6SDFHB6KXWWOHB&KDOOHQJHUBGLVDVWHU
xxii
Agradecimentos
A G R A DEC IMENTO S
0LQKDFDUUHLUDWHPVLGRXPDVpULHGHSURMHWRVHFRODERUDo}HV(PERUDHXWHQKD
WLGRPXLWRVVRQKRVHDVSLUDo}HVSHVVRDLVSDUHoRVHPSUHHQFRQWUDUDOJXpPFRP
TXHPSDUWLOKiORV1HVVHVHQWLGRPHVLQWRXPSRXFRFRPRRV6LWK³6HPSUH
H[LVWHPGRLV´
$SULPHLUDFRODERUDomRTXHSXGHFRQVLGHUDUSUR¿VVLRQDOIRLFRP-RKQ0DUFKHVH
DRVDQRV3ODQHMDPRVFRQVWUXLUFRPSXWDGRUHVMXQWRV(XHUDRFpUHEURHHOHRV
P~VFXORV0RVWUDYDRQGHVROGDUXP¿RHHOHRVROGDYD0RVWUDYDRQGHPRQWDU
XPWUDQVPLVVRUHHOHPRQWDYD(UDEDVWDQWHGLYHUWLGRHSDVViYDPRVFHQWHQDV
GHKRUDVQLVVR1DYHUGDGHFRQVWUXtPRVDOJXQVSRXFRVREMHWRVTXHWLQKDPXP
DVSHFWRLPSUHVVLRQDQWHFRPWUDQVPLVVRUHVERW}HVOX]HVHDWpWHOHWLSRV&ODUR
QHQKXPGHOHVID]LDFRLVDDOJXPDGHIDWRPDVHUDPEDVWDQWHLPSUHVVLRQDQWHVH
WUDEDOKiYDPRVGXURQHOHV3DUD-RKQ2EULJDGR
4XDQGRHXHUDFDORXURQR(QVLQR0pGLRFRQKHFL7LP&RQUDGQDDXODGHDOHPmR
7LPHUDesperto1RVXQLPRVSDUDFULDUXPFRPSXWDGRUHOHHUDRFpUHEURHHXRV
P~VFXORV(OHPHHQVLQRXHOHWU{QLFDHGHXPLQKDSULPHLUDLQWURGXomRDR3'3
&RQVWUXtPRVGHIDWRXPDFDOFXODGRUDHOHWU{QLFDELQiULDGHELWVTXHIXQFLRQDYD
DSDUWLUGHDOJXQVFRPSRQHQWHVEiVLFRV(ODSRGLDVRPDUVXEWUDLUPXOWLSOLFDUH
GLYLGLU/HYRXXPDQRGH¿QDLVGHVHPDQDHWRGRVRVIHULDGRVGHSULPDYHUDYHUmR
H1DWDO7UDEDOKDPRVLQFDQVDYHOPHQWHQHOD1R¿QDOHODIXQFLRQDYDPXLWREHP
3DUD7LP2EULJDGR
xxiii
Agradecimentos
7LPHHXDSUHQGHPRVFRPRSURJUDPDUFRPSXWDGRUHV,VVRQmRHUDDOJRIiFLOGH
VHUIHLWRHPPDVGHPRVXPMHLWR3HJDPRVOLYURVVREUHPRQWDJHPGR3'3
)RUWUDQ&RERO3/HQWUHRXWURV'HYRUDPRVWRGRV(VFUHYHPRVSURJUDPDV
RVTXDLVQmRWtQKDPRVHVSHUDQoDGHH[HFXWDUSRLVQmRWtQKDPRVDFHVVRD
FRPSXWDGRUHV0DVRVHVFUHYHPRVGDPHVPDIRUPDDSHQDVSHODSDL[mRGHID]rOR
1RVVRFROpJLRLQWURGX]LXQDJUDGHXPFXUVRGHFLrQFLDGDFRPSXWDomRTXDQGR
HVWiYDPRVQRVHJXQGRDQR(OHVFRQHFWDUDPXP7HOHWLSR$65DXPPRGHP
GLVFDGRGHEDXG7LQKDPXPDFRQWDQRVLVWHPDGHSDUWLOKDGHWHPSR8QLYDF
GR,QVWLWXWRGH7HFQRORJLDGH,OOLQRLV7LPHHXLPHGLDWDPHQWHFRPHoDPRVD
RSHUDUDTXHODPiTXLQD1LQJXpPPDLVFRQVHJXLDFKHJDUSHUWRGHOD
2PRGHPHUDFRQHFWDGRDRDWHQGHURWHOHIRQHHGLVFDURQ~PHUR4XDQGRYRFr
RXYLDRVLQDOGHUHVSRVWDGRPRGHPDSHUWDYDRERWmR³RULJ´QR7HOHWLSRRTXH
ID]LDFRPTXHRPRGHPGHRULJHPHPLWLVVHVHXSUySULRVLQDO(QWmRGHVOLJDYDR
WHOHIRQHHDFRQH[mRGHGDGRVHVWDYDHVWDEHOHFLGD
2WHOHIRQHWLQKDXPDWUDYDQDGLVFDJHP6RPHQWHSURIHVVRUHVWLQKDPDFKDYH0DV
LVVRQmRLPSRUWDYDSRLVGHVFREULPRVTXHHUDSRVVtYHOGLVFDUXPWHOHIRQHTXDOTXHU
XPDRGLJLWDURQ~PHURGHOHQRLQWHUUXSWRUGRJDQFKR(XHUDEDWHULVWDHQWmRWLQKD
XPERPWLPLQJHUHÀH[R3RGLDGLVFDURPRGHPFRPDWUDYDQROXJDUHPPHQRVGH
GH]VHJXQGRV
7tQKDPRVGRLV7HOHWLSRVQRODERUDWyULRGHFRPSXWDomR8PHUDDPiTXLQDRQOLQHH
RRXWURXPDPiTXLQDRIÀLQH$PERVHUDPXVDGRVSRUHVWXGDQWHVSDUDHVFUHYHUVHXV
SURJUDPDV(OHVGHYHULDPGLJLWDUVHXVSURJUDPDVQRV7HOHWLSRVFRPD¿WDGHSDSHO
GRSHUIXUDGRUHQYROYLGD7RGRVRVWRTXHVQRWHFODGRHUDPSHUIXUDGRVQD¿WD2V
HVWXGDQWHVHVFUHYLDPVHXVSURJUDPDVHP,,7UDQXPDOLQJXDJHPGHLQWHUSUHWDomR
QRWDYHOPHQWHSRGHURVD2VHVWXGDQWHVGHL[DYDPDV¿WDVGHSDSHOHPXPDFHVWD
SUy[LPDDRV7HOHWLSRV
'HSRLVGDHVFROD7LPHHXGLVFiYDPRVRFRPSXWDGRUWHFODQGRFODUR
FDUUHJiYDPRVDV¿WDVQRVLVWHPDGR,,7UDQHHQWmRGHVOLJiYDPRV$FDUDFWHUHV
SRUVHJXQGRHVVHQmRHUDXPSURFHGLPHQWRUiSLGR0DLVRXPHQRVXPD
KRUDGHSRLVOLJiYDPRVGHYROWDHREWtQKDPRVDVLPSUHVV}HVQRYDPHQWHD
FDUDFWHUHVSRUVHJXQGR27HOHWLSRQmRVHSDUDYDDVOLVWDVGRVHVWXGDQWHVDRHMHWDU
xxiv
Agradecimentos
DVSiJLQDV(OHDSHQDVLPSULPLDXPDDSyVDRXWUDHDVVLPSRUGLDQWHHQWmRQyV
DVVHSDUiYDPRVXVDQGRWHVRXUDVMXQWiYDPRVRLQSXWFRPDOLVWDFRPXPFOLSHH
RVFRORFiYDPRVQDFHVWD
7LPHHXpUDPRVRVPHVWUHVHGHXVHVGHVVHSURFHVVR$WpPHVPRRVSURIHVVRUHV
QRVGHL[DYDPHPSD]TXDQGRHVWiYDPRVQDTXHODVDOD)D]tDPRVRWUDEDOKRGHOHV
HHOHVVDELDPGLVVR(OHVMDPDLVSHGLUDPTXHR¿]pVVHPRV-DPDLVGLVVHUDPTXH
SRGHUtDPRVID]rOR-DPDLVQRVGHUDPDFKDYHGRWHOHIRQH$SHQDVHQWUiYDPRV
HHOHVVDtDP±HHOHVQRVGDYDPJUDQGHOLEHUGDGH$RVPHXVSURIHVVRUHVGH
0DWHPiWLFD6U0F'HUPLW6U)RJHOH6U5RELHQ2EULJDGR
(QWmRGHSRLVTXHWRGRRWUDEDOKRGHFDVDHVWDYDIHLWRQyVEULQFiYDPRV
(VFUHYtDPRVSURJUDPDDSyVSURJUDPDSDUDID]HUTXDOTXHUWLSRGHFRLVDORXFD
HHVTXLVLWDHVFUHYtDPRVSURJUDPDVTXHFRORFDVVHPFtUFXORVHSDUiERODVHP
JUi¿FRVGH$6&,,QR7HOHWLSRHVFUHYtDPRVSURJUDPDVGHFLUFXLWRVDOHDWyULRV
HJHUDGRUHVGHSDODYUDVDOHDWyULDV&DOFXODPRVIDWRULDLVDWpR~OWLPRGtJLWR
3DVVDPRVKRUDVHKRUDVLQYHQWDQGRSURJUDPDVSDUDVHUHPHVFULWRVHHQWmR
FRORFDGRVHPIXQFLRQDPHQWR
'RLVDQRVGHSRLV7LPQRVVRSDUFHLUR5LFKDUG/OR\GHHXIRPRVFRQWUDWDGRV
FRPRSURJUDPDGRUHVSHOD$6&7DEXODWLQJHP/DNH%OXII,OOLQRLV7LPHHX
WtQKDPRVDQRVQDpSRFD'HFLGLPRVTXHIDFXOGDGHHUDSHUGDGHWHPSRHTXH
WtQKDPRVTXHFRPHoDUQRVVDVFDUUHLUDVLPHGLDWDPHQWH)RLDTXLTXHHQFRQWUDPRV
%LOO+RKUL)UDQN5\GHU%LJ-LP&DUOLQH-RKQ0LOOHU(OHVGHUDPDDOJXQVMRYHQV
DRSRUWXQLGDGHGHDSUHQGHURTXHDSURJUDPDomRSUR¿VVLRQDOHUDQDYHUGDGH
$H[SHULrQFLDQmRIRLLQWHLUDPHQWHSRVLWLYDQHPQHJDWLYD)RLVHPG~YLGD
HGXFDFLRQDO3DUDWRGRVHOHVHSDUD5LFKDUGTXHFRPDQGRXHGLULJLXDPDLRUSDUWH
GRSURFHVVR2EULJDGR
'HSRLVGHGHVLVWLUHGHID]HUEHVWHLUDDRVDQRV¿]XPELFRFRPRFRUWDGRUGH
JUDPDWUDEDOKDQGRSDUDPHXFXQKDGR(UDWmRSpVVLPRQLVVRTXHHOHWHYHTXHPH
GHVSHGLU2EULJDGR:HV
$SUR[LPDGDPHQWHXPDQRGHSRLVDFDEHLWUDEDOKDQGRQD2XWERDUG0DULQH
&RUSRUDWLRQ1DRFDVLmRHVWDYDFDVDGRHWLQKDXPEHErDFDPLQKR(OHVWDPEpP
PHGHVSHGLUDP2EULJDGR-RKQ5DOSKH7RP
xxv
Agradecimentos
(QWmRIXLWUDEDOKDUQD7HUDG\QHRQGHHQFRQWUHL5XVV$VKGRZQ.HQ)LQGHU%RE
&RSLWKRUQH&KXFN6WXGHHH&.6ULWKUDQDJRUD.ULV,\HU.HQHUDPHXFKHIH
&KXFNH&.HUDPPHXVFROHJDV$SUHQGLPXLWRFRPWRGRVHOHV2EULJDGRSHVVRDO
(OiHVWDYD0LNH&DUHZ1D7HUDG\QHQRVWRUQDPRVXPDGXSODGLQkPLFD
(VFUHYHPRVGLYHUVRVVLVWHPDVMXQWRV6HYRFrTXLVHVVHTXHDOJRIRVVHIHLWRHFRP
YHORFLGDGHFKDPDYD%REH0LNH1RVGLYHUWLPRVEDVWDQWHMXQWRV2EULJDGR0LNH
-HUU\)LW]SDWULFNWDPEpPWUDEDOKRXQD7HUDG\QH1RVFRQKHFHPRVHQTXDQWR
MRJiYDPRV'XQJHRQV 'UDJRQVMXQWRVPDVUDSLGDPHQWHFRPHoDPRVD
FRODERUDU(VFUHYHPRVVRIWZDUHQR&RPPRGRUHSDUDGDUVXSRUWHDRVXVXiULRV
GH' '7DPEpPFRPHoDPRVXPQRYRSURMHWRQD7HUDG\QHFKDPDGR³$
6HFUHWiULD(OHWU{QLFD´7UDEDOKDPRVMXQWRVSRUYiULRVDQRVHHOHWRUQRXVHH
SHUPDQHFHXPJUDQGHDPLJR2EULJDGR-HUU\
3DVVHLXPDQRQD,QJODWHUUDHQTXDQWRWUDEDOKDYDSDUDD7HUDG\QH/iPHMXQWHLD
0LNH.HUJR]RX-XQWRVWUDPDPRVVREUHWRGRWLSRGHFRLVDVHPERUDDPDLRUSDUWH
GHVVDVWUDPRLDVWLYHVVHDYHUFRPELFLFOHWDVHSXEV0DVHOHHUDXPSURJUDPDGRU
GHGLFDGRHEDVWDQWHIRFDGRHPTXDOLGDGHHGLVFLSOLQDHPERUDHOHWDOYH]GLVFRUGH
2EULJDGR0LNH
$RYROWDUGD,QJODWHUUDHPFRPHFHLDID]HUSODQRVFRP-LP1HZNLUN$PERV
GHL[DPRVD7HUDG\QHFRPPHVHVGHGLIHUHQoDHQRVMXQWDPRVDXPDHPSUHVD
LQLFLDQWHFKDPDGD&OHDU&RPPXQLFDWLRQV)LFDPRVPXLWRVDQRVMXQWRVOXWDQGR
SDUDFRQVHJXLURVPLOK}HVTXHQXQFDYLHUDP0DVFRQWLQXDPRVFRPQRVVRVSODQRV
2EULJDGR-LP
1R¿QDOIXQGDPRVMXQWRVD2EMHFW0HQWRU-LPpDSHVVRDPDLVGLUHWDGLVFLSOLQDGD
HREMHWLYDFRPTXHPMiWLYHRSULYLOpJLRGHWUDEDOKDU(OHPHHQVLQRXWDQWDVFRLVDV
TXHQmRSRVVRVHTXHUHQXPHUiODV(PYH]GLVVRGHGLTXHLHVWHOLYURDHOH
+iWDQWRVRXWURVFRPTXHPWUDEDOKHLWDQWRVFRPTXHPFRODERUHLWDQWRVTXH
WLYHUDPLPSDFWRHPPLQKDYLGDSUR¿VVLRQDO/RZHOO/LQGVWURP'DYH7KRPDV
0LFKDHO)HDWKHUV%RE.RVV%UHWW6FKXFKHUW'HDQ:DPSOHU3DVFDO5R\-HII
/DQJU-DPHV*UHQQLQJ%ULDQ%XWWRQ$ODQ)UDQFLV0LNH+LOO(ULF0HDGH5RQ
-HIIULHV.HQW%HFN0DUWLQ)RZOHU*UDG\%RRFKHXPDOLVWDLQWHUPLQiYHOGH
RXWUDVSHVVRDV2EULJDGRDWRGRV
xxvi
Agradecimentos
&ODURDPDLRUFRODERUDGRUDGHPLQKDYLGDWHPVLGRPLQKDDPDGDHVSRVD$QQ
0DULH1RVFDVDPRVTXDQGRHXWLQKDDQRVWUrVGLDVDSyVHODFRPSOHWDUDQRV
3RUDQRVHODWHPVLGRPLQKDFRPSDQKHLUD¿UPHPHXOHPHHYHODPHXDPRUH
PLQKDYLGD(VWRXDQVLRVRSRURXWUDVTXDWURGpFDGDVDRODGRGHOD
(DJRUDPHXVFRODERUDGRUHVHSDUFHLURVGHSODQHMDPHQWRVmRPHXV¿OKRV
7UDEDOKRMXQWRFRPPLQKD¿OKDPDLVYHOKD$QJHODPLQKDDGRUDGDSURWHWRUDH
LQWUpSLGDDVVLVWHQWH(ODPHPDQWpPQRVWULOKRVHQXQFDSHUPLWHTXHHXHVTXHoD
XPFRPSURPLVVR)DoRSODQRVGHQHJyFLRVFRPPHX¿OKR0LFDKRIXQGDGRUGD
WKOLJKWFRP6XDFDEHoDSDUDQHJyFLRVpGHORQJHPHOKRUGRTXHDPLQKDMDPDLV
IRL1RVVD~OWLPDHPSUHLWDGDDFOHDQFRGHUVFRPpPXLWRHPSROJDQWH
0HX¿OKRPDLVQRYR-XVWLQDFDERXGHFRPHoDUDWUDEDOKDUFRP0LFDKQD
WK/LJKW0LQKD¿OKDPDLVMRYHP*LQDpHQJHQKHLUDTXtPLFDHWUDEDOKDQD
+RQH\ZHOO&RPHVVHVGRLVRVSURMHWRVPDLVVpULRVDFDEDUDPGHFRPHoDU
1LQJXpPHPVXDYLGDOKHHQVLQDUiPDLVGRTXHVHXV¿OKRV2EULJDGRFULDQoDV
xxvii
Sobre o Autor
S OB R E O A U TO R
0DUWLQSXEOLFRXGH]HQDVGHDUWLJRVHPGLYHUVDVUHYLVWDVHVSHFLDOL]DGDVHp
SDOHVWUDQWHUHJXODUHPFRQIHUrQFLDVLQWHUQDFLRQDLVHIHLUDV
(OHpDXWRUHHGLWRUGHGLYHUVRVOLYURVLQFOXLQGR
Ɣ Código LimpoGDHGLWRUD$OWD%RRNV
xxix
Sobre o Autor
Ɣ([WUHPH3URJUDPPLQJLQ3UDFWLFH
/tGHUQDLQG~VWULDGRGHVHQYROYLPHQWRGHVRIWZDUH0DUWLQIRLHGLWRUFKHIHGR&
5HSRUWGXUDQWHWUrVDQRVHRSULPHLURSUHVLGHQWHGD$JLOH$OOLDQFH
5REHUWWDPEpPpIXQGDGRUGD8QFOH%RE&RQVXOWLQJ//&HFRIXQGDGRU
MXQWDPHQWHFRPVHX¿OKR0LFDK0DUWLQGR7KH&OHDQ&RGHUV//&
xxx
Sobre a Capa
S OBRE A C A PA
$PDUDYLOKRVDLPDJHPQDFDSDUHPLQLVFrQFLDGRROKRGH6DXURQp0D1HEXORVD
GR&DUDQJXHMR0¿FDHP7DXUXVSRUYROWDGHXPJUDXjGLUHLWDGH=HWD7DXUL
DHVWUHODQDSRQWDGRFKLIUHHVTXHUGRGRWRXUR$1HEXORVDGR&DUDQJXHMRpD
VREUDGHXPDVXSHUQRYDTXHVRSURXVXDVUDMDGDVQRVFpXVQDGDWDDXVSLFLRVDGH
GHMXOKRHP'&'LVWDQWHDQRVOX]GHQyVDH[SORVmRSDUHFHXSDUD
RVFKLQHVHVVHUXPDQRYDHVWUHODDSUR[LPDGDPHQWHWmREULOKDQWHTXDQWR-~SLWHU
xxxi
Sobre a Capa
'HIDWRHODHUDYLVtYHOdurante o dia$RORQJRGRVVHLVPHVHVVHJXLQWHVHOD
OHQWDPHQWHIRLVHDSDJDQGRGDYLVmRDROKRQX
$LPDJHPGDFDSDpXPFRPSRVWRGHUDLRV[HOX]YLVtYHO$LPDJHPYLVtYHOIRL
WLUDGDSHORWHOHVFySLR+XEEOHHFRQVWLWXLRHQYROWyULRH[WHUQR2REMHWRLQWHUQRTXH
VHSDUHFHFRPXPD]XODOYRIRLIRWRJUDIDGRSHORWHOHVFySLRGHUDLRV[&KDQGUD
(VVDLPDJHPYLVtYHOPRVWUDXPDUiSLGDQXYHPGHSyHJiVVHH[SDQGLQGRHQODoDGD
DHOHPHQWRVSHVDGRVGHL[DGRVSHODH[SORVmRGDVXSHUQRYD(VVDQXYHPWHP
DJRUDDQRVOX]GHGLkPHWURSHVDPDVVDVVRODUHVHHVWiVHH[SDQGLQGRQD
WD[DIXULRVDGHTXLO{PHWURVSRUVHJXQGR$HQHUJLDFLQpWLFDGDTXHODYHOKD
H[SORVmRpLPSUHVVLRQDQWHSDUDGL]HURPtQLPR
%HPQRFHQWURGRDOYRKiXPSRQWRD]XOEULOKDQWHeRQGH¿FDRpulsar)RL
DIRUPDomRGHOHTXHIH]FRPTXHDHVWUHODH[SORGLVVHHPSULPHLUROXJDU
$SUR[LPDGDPHQWHXPDPDVVDVRODUGHPDWHULDOQRFHQWURGDHVWUHODFRQGHQDGD
LPSORGLXHPXPDHVIHUDGHQrXWURQVTXHWLQKDSRUYROWDGHTXLO{PHWURVGH
GLkPHWUR$HQHUJLDFLQpWLFDGDTXHODLPSORVmRVRPDGDjLQFUtYHOEDUUDJHPGH
QHXWULQRVFULDGRVTXDQGRWRGRVDTXHOHVQrXWURQVVHIRUPDUDPUDVJRXDHVWUHODH
HODVHREOLWHURX
2SXOVDUHVWiJLUDQGRSRUYROWDGHYH]HVSRUVHJXQGRODPSHMDQGRQDPHGLGD
HPTXHJLUD3RGHPRVYrORSLVFDUHPQRVVRVWHOHVFySLRV(VVHVSXOVRVGHOX]VmRR
PRWLYRSHORTXDOHOHpFKDPDGRGHSXOVDUTXHpDDEUHYLDWXUDSDUD(VWUHOD3XOVDQWH
xxxii
Introdução Pré-Requisito
I NT RO D UÇÃO
P R É -R EQU I SI TO
(não pule, você precisará dela)
Presumo que você tenha escolhido este livro por ser um programador e está
intrigado com a noção de SUR¿VVLRQDOLVPR(GHYHHVWDU3UR¿VVLRQDOLVPRpDOJR
TXHQRVVDSUR¿VVmRSUHFLVDWHUULYHOPHQWH
1mRHQWUHHPSkQLFR
7HUPRWpFQLFRGHRULJHPGHVFRQKHFLGD
1
Introdução Pré-Requisito
FRPVLVWHPDVFRUSRUDWLYRVEXURFUiWLFRV3URJUDPHLQR&2%2/)2575$1%$/
3'33'3&&-DYD5XE\6PDOOWDONHXPDJUDQGHTXDQWLGDGHGHRXWUDV
OLQJXDJHQVHVLVWHPDV7UDEDOKHLFRPODGU}HVGHFRQWUDFKHTXHQmRFRQ¿iYHLVHFRP
SUR¿VVLRQDLVH[SHULHQWHV(VWD~OWLPDFODVVL¿FDomRpRWySLFRGHVWHOLYUR
1DVSiJLQDVDVHJXLUWHQWDUHLGH¿QLURTXHVLJQL¿FDVHUXPSURJUDPDGRU
SUR¿VVLRQDO'HVFUHYHUHLDVDWLWXGHVGLVFLSOLQDVHDo}HVTXHFRQVLGHURHVVHQFLDLVD
XPSUR¿VVLRQDO
&RPRVHLTXDLVVmRHVVDVDWLWXGHVGLVFLSOLQDVHDo}HV"3RUTXHSUHFLVHLDSUHQGr
ODVGDIRUPDPDLVGLItFLO9HMDTXDQGRFRQVHJXLPHXSULPHLURWUDEDOKRFRPR
SURJUDPDGRUSUR¿VVLRQDOVHULDD~OWLPDSDODYUDTXHYRFrXVDULDSDUDPHGHVFUHYHU
2DQRHUD(XWLQKDDQRV0HXSDLWLQKDDWRUPHQWDGRXPD¿UPDORFDO
FKDPDGD$6&SDUDPHFRQWUDWDUFRPRSURJUDPDGRUWHPSRUiULRPHLRSHUtRGR6LP
PHXSDLID]LDFRLVDVDVVLP&HUWDYH]RYLHQWUDUQDIUHQWHGHXPFDUURHPDOWD
YHORFLGDGHHFRPDPmRHUJXLGDHOHRUGHQRXµ3DUH¶2FDUURSDURX1LQJXpPGL]LD
³QmR´SDUDPHXSDL$HPSUHVDPHFRORFRXSDUDWUDEDOKDUQDVDODHPTXHWRGRV
RVPDQXDLVGHFRPSXWDGRUHVGD,%0HUDPJXDUGDGRV(OHV¿]HUDPFRPTXHHX
FRORFDVVHDQRVHDQRVGHDWXDOL]Do}HVQRVPDQXDLV)RLDOLTXHHXYLSHODSULPHLUD
YH]DIUDVH³(VWDSiJLQDIRLGHL[DGDLQWHQFLRQDOPHQWHHPEUDQFR´
$SyVDOJXQVGLDVDWXDOL]DQGRPDQXDLVPHXVXSHUYLVRUSHGLXTXHHXHVFUHYHVVH
XPVLPSOHVSURJUDPD(DV\FRGHU3)LTXHLH[WDVLDGR1XQFDKDYLDFULDGRXP
SURJUDPDSDUDXPFRPSXWDGRUGHYHUGDGHDQWHV(QWUHWDQWRHXKDYLDGHYRUDGRRV
OLYURVVREUH$XWRFRGHUHWLQKDXPDYDJDQRomRGHFRPRFRPHoDU
2SURJUDPDHUDVLPSOHVPHQWHOHUJUDYDo}HVGHXPD¿WDHVXEVWLWXLUDV,'VGHVVDV
JUDYDo}HVSRUQRYDV$VQRYDV,'VFRPHoDYDPHPHHUDPLQFUHPHQWDGDVHP
DFDGDQRYDJUDYDomR$VJUDYDo}HVFRPDVQRYDV,'VWLQKDPTXHVHUHVFULWDVHP
XPDQRYD¿WD
0HXVXSHUYLVRUPHPRVWURXXPDSUDWHOHLUDTXHWLQKDPXLWDVSLOKDVGHFDUW}HV
SHUIXUDGRVYHUPHOKRVHD]XLV,PDJLQHTXHYRFrFRPSURXEDUDOKRVGHFDUWDV
YHUPHOKRVHD]XLV(QWmRYRFrHPSLOKDHVVHVEDUDOKRVXQVVREUHRVRXWURV
(UDDVVLPTXHHVVDVSLOKDVGHFDUW}HVVHSDUHFLDP(ODVHUDPDJUXSDGDVHP
YHUPHOKRHD]XOHFDGDFRUWLQKDHPWRUQRGHFDUW}HV&DGDFRUFRQWLQKDR
(DV\FRGHUHUDRPRQWDGRUSDUDRFRPSXWDGRU+RQH\ZHOO+TXHHUDVLPLODUDR$XWRFRGHUSDUDR,%0
2
Introdução Pré-Requisito
FyGLJRIRQWHSDUDDELEOLRWHFDGHVXEURWLQDVTXHRVSURJUDPDGRUHVQRUPDOPHQWH
XVDYDP2VSURJUDPDGRUHVVLPSOHVPHQWHDSDQKDYDPREDUDOKRGHFLPDGDSLOKD
FHUWL¿FDQGRVHGHTXHQmRSHJDVVHPQDGDDOpPGHFDUW}HVD]XLVHYHUPHOKRVH
HQWmRRVFRORFDYDPQR¿PGHVHXEDUDOKRGHSURJUDPDomR
(VFUHYLPHXSURJUDPDHPDOJXQVIRUPXOiULRVGHFyGLJR)RUPXOiULRVGHFyGLJR
HUDPIROKDVGHSDSHOJUDQGHVHUHWDQJXODUHVGLYLGLGDVHPOLQKDVHFROXQDV
&DGDOLQKDUHSUHVHQWDYDXPFDUWmR9RFrHVFUHYLDVHXSURJUDPDQRIRUPXOiULRGH
FyGLJRXVDQGROHWUDVPDL~VFXODVHOiSLVQ1DV~OWLPDVFROXQDVGHFDGDOLQKD
HVFUHYLDVHTXrQFLDQXPpULFDFRPDTXHOHOiSLV&RPRGHFRVWXPHLQFUHPHQWHLD
VHTXrQFLDQXPpULFDHPGHIRUPDTXHSXGHVVHLQVHULURVFDUW}HVSRVWHULRUPHQWH
2VIRUPXOiULRVGHFyGLJRLDPSDUDDVSHUIXUDGRUDVSULQFLSDLV(VVDHPSUHVDWLQKD
XPJUXSRGHPXOKHUHVTXHSHJDYDPRVIRUPXOiULRVGHFyGLJRVGHGHQWURGHXPD
HQRUPHFHVWDHHQWmR³GLJLWDYDP´QDVPiTXLQDVSHUIXUDGRUDV(VVDVPiTXLQDV
VHSDUHFLDPEDVWDQWHFRPPiTXLQDVGHHVFUHYHUH[FHWRTXHRVFDUDFWHUHVHUDP
SHUIXUDGRVHPFDUW}HVDRLQYpVGHLPSUHVVRVHPSDSHO
1RGLDVHJXLQWHDVSHUIXUDGRUDVHQYLDUDPPHXSURJUDPDGHYROWDSRUPHLRGH
FRUUHLRLQWHUQR0HXSHTXHQREDUDOKRGHFDUW}HVSHUIXUDGRVYHLRHPEUXOKDGR
SHORVPHXVIRUPXOiULRVGHFyGLJRHXPHOiVWLFR(XSURFXUHLSRUHUURVQRV
FDUW}HV1mRKDYLDQHQKXP(QWmRFRORTXHLREDUDOKRGDELEOLRWHFDGHVXE
URWLQDQR¿QDOGRPHXEDUDOKRGHSURJUDPDHOHYHLWXGRSDUDRVRSHUDGRUHVGH
FRPSXWDGRUHVQRDQGDUGHFLPD
2VFRPSXWDGRUHV¿FDYDPDWUiVGHSRUWDVWUDQFDGDVHPXPDVDODDPELHQWDOPHQWH
FRQWURODGDFRPXPSLVRHOHYDGRSDUDWRGRRFDEHDPHQWR(XEDWLQDSRUWDHXP
RSHUDGRUSHJRXPHXEDUDOKRDXVWHUDPHQWHHRFRORFRXHPRXWUDFHVWDGHQWURGDVDOD
GHFRPSXWDGRUHV4XDQGRHOHVFKHJDUDPDWpHODFRORFDUDPPHXEDUDOKRSDUDURGDU
1RGLDVHJXLQWHSHJXHLPHXEDUDOKRGHYROWD(OHHVWDYDHPEUXOKDGRHPXPDOLVWD
GHUHVXOWDGRVHDWDGRFRPXPHOiVWLFRXViYDPRVPXLWRVHOiVWLFRVQDTXHOHVGLDV
(XDEULDOLVWDHYLTXHPLQKDFRPSLODomRWLQKDIDOKDGR$VPHQVDJHQVGHHUURQD
OLVWDHUDPPXLWRGLItFHLVGHHQWHQGHUHQWmRDVOHYHLDRPHXVXSHUYLVRU(OHGHX
XPDROKDGDPXUPXURXDOJRIH]DOJXPDVDQRWDo}HVUiSLGDVQDOLVWDDSDQKRXPHX
EDUDOKRHSHGLXTXHRVHJXLVVH
3
Introdução Pré-Requisito
/HYRXPHDWpDVDODGHSHUIXUDomRHVHQWRXVHDXPDPiTXLQDTXHHVWDYDYDJD
&RUULJLXXPSRUXPRVFDUW}HVTXHWLQKDPHUURHDGLFLRQRXPDLVXPRXGRLV
FDUW}HV([SOLFRXUDSLGDPHQWHRTXHHVWDYDID]HQGRPDVWXGRSDVVRXFRPR
XPUHOkPSDJR
(OHOHYRXRQRYREDUDOKRDWpDVDODGHFRPSXWDGRUHVHEDWHXQDSRUWD'LVVH
DOJXPDVSDODYUDVPiJLFDVDXPGRVRSHUDGRUHVHHQWmRHQWURXQDVDOD)H]XPVLQDO
SDUDTXHRVHJXLVVH2RSHUDGRUSUHSDURXRVGULYHVSDUDD¿WDHFDUUHJRXREDUDOKR
HQTXDQWRQyVREVHUYiYDPRV$V¿WDVURGDUDPDLPSUHVVRUDIH]EDUXOKRHHQWmR
HVWDYDWHUPLQDGR2SURJUDPDWLQKDIXQFLRQDGR
1RGLDVHJXLQWHPHXVXSHUYLVRUDJUDGHFHXPHSRUPLQKDDMXGDHPHGHVSHGLX
$SDUHQWHPHQWHD$6&VHQWLXTXHQmRWLQKDWHPSRGHQXWULUXPMRYHPGHDQRV
0DVPHXHORFRPDHPSUHVDQmRKDYLDWHUPLQDGR$OJXQVPHVHVGHSRLVIXL
FRQWUDWDGRHPWHPSRLQWHJUDOQD$6&SDUDRSHUDULPSUHVVRUDVRIÀLQH(VVDV
máquinas imprimiam junk mailOL[RHOHWU{QLFRDSDUWLUGHLPDJHQVLPSUHVVDVTXH
KDYLDPVLGRDUPD]HQDGDVHP¿WDV0HXWUDEDOKRHUDFDUUHJDUDVLPSUHVVRUDVFRP
SDSHOFDUUHJDUDV¿WDVGHQWURGRVGULYHVUHVROYHURDWRODPHQWRGHSDSpLVHVHWXGR
FRUUHVVHEHPDSHQDVREVHUYDUDVPiTXLQDVIXQFLRQDUHP
2DQRHUD)DFXOGDGHQmRHUDRSomRSDUDPLPQHPDWLoDYDTXDOTXHUVHGXomR
HPSDUWLFXODU$*XHUUDGR9LHWQmDLQGDHVWDYDHPDQGDPHQWRHRVFDPSXVHUDP
FDyWLFRV&RQWLQXHLDGHYRUDUOLYURVVREUH&2%2/)RUWUDQ3/3'3H,%0
$VVHPEOHU0LQKDLQWHQomRHUDDGHFRQWRUQDURVHVWXGRVHVHJXLUGLUHWRHR
PDLVUiSLGRSRVVtYHOSDUDDREWHQomRGHXPWUDEDOKRFRPRSURJUDPDGRU
'R]HPHVHVGHSRLVDWLQJLPLQKDPHWD)XLSURPRYLGRDSURJUDPDGRUHPWHPSR
LQWHJUDOQD$6&(XHGRLVERQVDPLJRV5LFKDUGH7LPWDPEpPFRPDQRV
WUDEDOKDPRVFRPXPDHTXLSHGHWUrVSURJUDPDGRUHVHVFUHYHQGRXPVLVWHPDGH
FRQWDELOLGDGHHPWHPSRUHDOSDUDD7HDPVWHU$PiTXLQDHUDXP9DULDQL(UD
XPVLPSOHVPLQLFRPSXWDGRUVLPLODUHPDUTXLWHWXUDDR3'3H[FHWRTXHWLQKD
GRLVUHJLVWURVHXPYRFiEXORGHELWV$OLQJXDJHPHUD$VVHPEOHU
(VFUHYHPRVFDGDOLQKDGRFyGLJRQDTXHOHVLVWHPD(TXHURGL]HUcadaOLQKD
(VFUHYHPRVRVLVWHPDGHRSHUDomRDVFDEHoDVGHLQWHUUXSWRURVGULYHUV,2R
DUTXLYRGHVLVWHPDVSDUDRVGLVFRVRHQYROYLPHQWRGRVZDSSHUHDWpPHVPRR
1RWDGRWUDGXWRUJUXSRGHVLQGLFDWRVGHWUDEDOKDGRUHVSRGHURVtVVLPRQRV(8$
4
Introdução Pré-Requisito
OLQNDGRUUHORFiYHO(VFUHYHPRVWXGRHPPHVHVWUDEDOKDQGRGHDKRUDVSRU
VHPDQDSDUDFXPSULURSUD]RLQIHUQDO0HXVDOiULRHUDGH8SRUDQR
(QWUHJDPRVDTXHOHVLVWHPDHGHSRLVSHGLPRVGHPLVVmR
6DtPRVUHSHQWLQDPHQWHHFRPPDOtFLD9HMDDSyVWRGRDTXHOHWUDEDOKRHGHSRLV
GHWHUHQWUHJDGRXPVLVWHPDEHPVXFHGLGRDHPSUHVDQRVGHXXPDXPHQWRGH
6HQWLPRVTXHHVWiYDPRVVHQGRURXEDGRVHDEXVDGRV9iULRVSURJUDPDGRUHVWLQKDP
WUDEDOKRVHPRXWURVOXJDUHVHVLPSOHVPHQWHVHGHPLWLUDP
(XHQWUHWDQWRDVVXPLXPDDERUGDJHPGLIHUHQWHHEDVWDQWHLQIHOL]-XQWRFRPXP
FROHJDLQYDGLPRVRHVFULWyULRGRFKHIHHSHGLPRVGHPLVVmRMXQWRVID]HQGREDVWDQWH
EDUXOKR,VVRIRLHPRFLRQDOPHQWHPXLWRVDWLVIDWyULR±SRUXPGLD
1RGLDVHJXLQWHIXLDWLQJLGRSHORIDWRGHHVWDUGHVHPSUHJDGR7LQKDDQRVVHP
WUDEDOKRVHPJUDGXDomR)L]HQWUHYLVWDVSDUDDOJXQVFDUJRVGHSURJUDPDGRUSRUpP
VHPVXFHVVR(QWmRWUDEDOKHLQDR¿FLQDGHFRQVHUWRGHFRUWDGRUHVGHJUDPDGHPHX
FXQKDGRGXUDQWHTXDWURPHVHV,QIHOL]PHQWHHXHUDXPSpVVLPRUHSDUDGRU1R¿P
HOHWHYHTXHPHGLVSHQVDU&DtHPGHSUHVVmR
)LFDYDWRGDQRLWHDFRUGDGRDWpjVGDPDGUXJDGDFRPHQGRSL]]DHDVVLVWLQGR
DQWLJRV¿OPHVGHWHUURUQDYHOKDWHOHYLVmRSUHWRHEUDQFRGRVPHXVSDLV6RPHQWH
DOJXQVGRVIDQWDVPDVHUDPSHUVRQDJHQVGRV¿OPHV)LFDYDQDFDPDDWpjGDWDUGH
SRUTXHQmRTXHULDHQFDUDUPHXVGLDVPHODQFyOLFRV)L]XPFXUVRGHFiOFXORHPXPD
IDFXOGDGHORFDOHIXLUHSURYDGR(VWDYDDUUDVDGR
0LQKDPmHPHFKDPRXGHODGRHPHGLVVHTXHPLQKDYLGDHVWDYDXPDEDJXQoDH
que eu tinha sido um idiota de pedir demissão sem ter um novo emprego, e por tê-lo
IHLWRGHIRUPDWmRHPRFLRQDOHMXQWRDXPFROHJD(ODPHGLVVHTXHMDPDLVVHGHYH
sair sem ter algo em vista e, que, devemos sempre agir com calma, tranquilamente
HVR]LQKR'LVVHWDPEpPTXHHXGHYHULDWHOHIRQDUSDUDPHXDQWLJRFKHIHHLPSORUDU
SHORPHXWUDEDOKRGHYROWD(ODGLVVH³9RFrSUHFLVDFRPHUXPSRXFRGDWRUWDGD
KXPLOGDGH´
-RYHQVGHDQRVQmRVmRIDPRVRVSRUVHXDSHWLWHSRUWRUWDVGHKXPLOGDGHHHXQmR
HUDH[FHomR0DVDVFLUFXQVWkQFLDVKDYLDPFREUDGRVHXSHGiJLRVREUHPHXRUJXOKR
1R¿QDOWHOHIRQHLSDUDPHXFKHIHHGHLXPDJUDQGHERFDGDQDWRUWDGDKXPLOGDGH
(IXQFLRQRX(OH¿FRXIHOL]HPPHUHFRQWUDWDUSRU8SRUDQRHHX¿TXHL
IHOL]HPDFHLWDU
5
Introdução Pré-Requisito
)LTXHLPDLVGH]RLWRPHVHVWUDEDOKDQGROiREVHUYDQGRPLQKDVPDQHLUDVHWHQWDQGR
VHURIXQFLRQiULRPDLVYDOLRVRTXHSRGLD)XLUHFRPSHQVDGRFRPSURPRo}HVH
DXPHQWRVHXPFRQWUDFKHTXHUHJXODU$YLGDHUDERD4XDQGRVDtGDHPSUHVDIRL
HPWHUPRVDPLJiYHLVHFRPXPDRIHUWDSDUDXPHPSUHJRPHOKRUGHEDL[RGREUDoR
9RFrSRGHSHQVDUTXHHXKDYLDDSUHQGLGRDOLomRTXHDJRUDHXHUDXP
SUR¿VVLRQDO/RQJHGLVVR$TXHODIRLDSHQDVDSULPHLUDGHPXLWDVOLo}HVTXH
SUHFLVHLWRPDU1RVDQRVTXHVHVHJXLUDPHXVHULDGHVSHGLGRGHXPHPSUHJRSRU
SHUGHUQHJOLJHQWHPHQWHGDWDVLPSRUWDQWHVHTXDVHGHVSHGLGRGHRXWURSRUGHL[DU
YD]DULQDGYHUWLGDPHQWHLQIRUPDomRFRQ¿GHQFLDOSDUDXPFOLHQWH(XDVVXPLULD
DOLGHUDQoDGHXPSURMHWRFRQGHQDGRHROHYDULDDWpRIXQGRGRSRoRVHPSHGLU
DMXGDDQLQJXpPTXDQGRVDELDTXHSUHFLVDYD'HIHQGHULDDJUHVVLYDPHQWHPLQKDV
GHFLV}HVWpFQLFDVPHVPRTXHHODVHVYRDoDVVHPGLDQWHGDVQHFHVVLGDGHVGRV
FOLHQWHV&RQWUDWDULDXPDSHVVRDFRPSOHWDPHQWHGHVTXDOL¿FDGDVREUHFDUUHJDQGR
PHXHPSUHJDGRUFRPXPDHQRUPHUHVSRQVDELOLGDGHSDUDVHOLGDU(SLRUGH
tudo, faria com que outras duas pessoas fossem despedidas por conta de minha
LQDELOLGDGHHPOLGHUDU
6
1
P ROF I S SI O NA LI S MO
“Ria, Curtin, velho garoto. Foi uma grande peça pregada em nós pelo Senhor,
ou pelo destino, ou natureza, o que você preferir. Mas quem quer ou o que
quer que a tenha pregado, certamente tinha senso de humor! Rá!”.
– Howard27HVRXURGH6LHUUD0DGUH
7
Capítulo 1 Profissionalismo
(QWmRYRFrTXHUVHUXPSUR¿VVLRQDOGHGHVHQYROYLPHQWRGHVRIWZDUHFHUWR"4XHU
HUJXHUDFDEHoDHGHFODUDUSDUDRPXQGR³(XVRXXPSUR¿VVLRQDO´4XHUTXHDV
SHVVRDVROKHPSDUDYRFrFRPUHVSHLWRHRWUDWHPFRPFRQVLGHUDomR4XHUTXHDV
PmHVDSRQWHPSDUDYRFrHGLJDPDVHXV¿OKRVSDUDHOHVVHUHPFRPRYRFr9RFr
TXHULVVRWXGR&HUWR"
eEHPPDLVIiFLOQmRVHUSUR¿VVLRQDO1mRSUR¿VVLRQDLVQmRSRGHPVHU
UHVSRQVDELOL]DGRVSHORVWUDEDOKRVTXHID]HP±HOHVGHL[DPLVVRSDUDVHXV
HPSUHJDGRUHV6HXPGHOHVFRPHWHXPHUURRHPSUHJDGRUOLPSDDEDJXQoD
0DVTXDQGRXPSUR¿VVLRQDOFRPHWHXPHUUReleOLPSDDEDJXQoD
2TXHDFRQWHFHULDVHYRFrSHUPLWLVVHTXHXPGHIHLWRSDVVDVVHSRUXPPyGXORH
FXVWDVVHjVXDHPSUHVD5"2QmRSUR¿VVLRQDOGDULDGHRPEURVGLULDTXH
³HVVDVFRLVDVDFRQWHFHP´HFRPHoDULDDHVFUHYHURPyGXORVHJXLQWH2SUR¿VVLRQDO
IDULDXPFKHTXHGH5SDUDDHPSUHVD1
6LPDVHQVDomRpXPSRXFRGLIHUHQWHTXDQGRpVHXSUySULRGLQKHLURQmRp"0DV
HVVDVHQVDomRpDPHVPDTXHXPSUR¿VVLRQDOWHPRWHPSRWRGR1DYHUGDGHLVVR
pDHVVrQFLDGRSUR¿VVLRQDOLVPR3RUTXHYHMDSUR¿VVLRQDOLVPRWHPWXGRDYHUFRP
DVVXPLUUHVSRQVDELOLGDGHV
Assumindo Responsabilidade
9RFrOHXDLQWURGXomRFHUWR"6HQmRYROWHHOHLDHODHVWDEHOHFHRFRQWH[WRSDUDWXGR
RTXHVHVHJXHQHVWHOLYUR
(XDSUHQGLDDVVXPLUDUHVSRQVDELOLGDGHDRVRIUHUDVFRQVHTXrQFLDVSRUQmRID]rOR
$HVSHUDQoDpTXHHOHWHQKDXPDERDSROtWLFDGH(UURVH2PLVV}HV
8
Assumindo Responsabilidade
(PHXWUDEDOKDYDSDUDXPDHPSUHVDFKDPDGD7HUDG\QH(UDR³HQJHQKHLUR
UHVSRQViYHO´SHORVRIWZDUHTXHFRQWURODYDRVLVWHPDEDVHGRPLQLHGR
PLFURFRPSXWDGRUTXHPHGLDDTXDOLGDGHGDVOLQKDVWHOHI{QLFDV2PLQLFRPSXWDGRU
FHQWUDOHUDFRQHFWDGRYLDEDXGRXFRQH[mRGLDOXSXVDQGROLQKDVWHOHI{QLFDV
SDUDGH]HQDVGHPLFURFRPSXWDGRUHVVDWpOLWHVTXHFRQWURODYDPRKDUGZDUHGH
PHGLomR2FyGLJRHUDWRGRHVFULWRHP$VVHPEOHU
1RVVRVFOLHQWHVHUDPRVJHUHQWHVGHVHUYLoRVGHJUDQGHVFRPSDQKLDVWHOHI{QLFDV
&DGDTXDOHUDUHVSRQViYHOSRUOLQKDVWHOHI{QLFDVRXPDLV0HXVLVWHPD
DMXGDYDHVVHVJHUHQWHVGHiUHDDHQFRQWUDUHPHUHSDUDUHPGHIHLWRVHSUREOHPDV
QDVOLQKDVDQWHVTXHRVFOLHQWHVSHUFHEHVVHP,VVRUHGX]LDDWD[DGHUHFODPDomR
TXHDVFRPLVV}HVGHXWLOLGDGHS~EOLFDPHGLDPHFRVWXPDYDUHJXODUDVWD[DV
TXHDVFRPSDQKLDVWHOHI{QLFDVSRGLDPFREUDU2XVHMDHVVHVVLVWHPDVHUDP
LQFULYHOPHQWHLPSRUWDQWHV
7RGDQRLWHRVVLVWHPDVSDVVDYDPSRUXPD³URWLQDQRWXUQD´QDTXDOR
PLQLFRPSXWDGRUFHQWUDOGL]LDDFDGDXPGRVPLFURFRPSXWDGRUHVVDWpOLWHVSDUDWHVWDU
WRGDVDVOLQKDVWHOHI{QLFDVVREVHXFRQWUROH7RGDPDQKmRFRPSXWDGRUFHQWUDO
SX[DYDDOLVWDGHOLQKDVFRPGHIHLWRMXQWDPHQWHFRPDVFDUDFWHUtVWLFDVGDIDOKD2V
JHUHQWHVGHVHUYLoRGDiUHDXVDYDPHVVHUHODWyULRSDUDDJHQGDUUHSDUDGRUHVD¿PGH
FRQVHUWDUDVIDOKDVDQWHVTXHRVFOLHQWHVUHFODPDVVHP
(PXPDRFDVLmRHXHQYLHLXPQRYRODQoDPHQWRSDUDGH]HQDVGHFOLHQWHV³(QYLDU´
pH[DWDPHQWHDSDODYUDFHUWD(VFUHYLRVVRIWZDUHVHP¿WDVHDVHQYLHLDRVFOLHQWHV
(OHVFDUUHJDUDPDV¿WDVHHQWmRUHLQLFLDUDPRVVLVWHPDV
2QRYRODQoDPHQWRFRQVHUWRXGHIHLWRVPHQRUHVHDGLFLRQRXQRYRVUHFXUVRVTXH
RVFOLHQWHVHVWDYDPH[LJLQGR+DYtDPRVOKHVGLWRTXHSURYHUtDPRVDTXHOHQRYR
UHFXUVRGHQWURGHXPGHWHUPLQDGRSUD]R(XSDVVHLDQRLWHLQWHLUDWUDEDOKDQGRQDV
¿WDVSDUDTXHHODVFKHJDVVHPQRSUD]RSURPHWLGR
'RLVGLDVGHSRLVUHFHELXPDFKDPDGDGHQRVVRJHUHQWHGHVHUYLoRGHFDPSR
7RP(OHPHGLVVHTXHYiULRVFOLHQWHVUHFODPDUDPTXHD³URWLQDQRWXUQD´QmRVH
FRPSOHWDYDHTXHHOHVQmRUHFHEHUDPRVUHODWyULRV0HXFRUDomRGLVSDURXSRLVD
¿PGHHQYLDURVVRIWZDUHVDWHPSRKDYLDQHJOLJHQFLDGRDURWLQDGHWHVWHV(XKDYLD
testado a maior parte das outras funcionalidades do sistema, mas testar a rotina
OHYDYDKRUDVHHXSUHFLVDYDGHVSDFKDURVRIWZDUH1HQKXPDGDVFRUUHo}HVGHEXJV
HVWDYDQRFyGLJRGDURWLQDHQWmRPHVHQWLVHJXUR
9
Capítulo 1 Profissionalismo
3HUGHUXPUHODWyULRQRWXUQRHUDDOJRPXLWRVpULR6LJQL¿FDYDTXHRWpFQLFRTXHIDULD
RVUHSDURVWHULDPHQRVDID]HUQDTXHODGDWDPDVWHULDWUDEDOKRHPH[FHVVRGHSRLV
6LJQL¿FDYDTXHRVFOLHQWHVSRGHULDPSHUFHEHUXPGHIHLWRHUHFODPDU3HUGHURV
GDGRVGHXPDQRLWHpRVX¿FLHQWHSDUDID]HUFRPTXHXPJHUHQWHGHVHUYLoRVGHiUHD
FKDPDVVH7RPHOKHGHVVHXPDEURQFD
/LJXHLRVLVWHPDGHQRVVRODERUDWyULRFDUUHJXHLRQRYRVRIWZDUHHFRPHFHLDURWLQD
/HYRXYiULDVKRUDVPDVHQWmRHOHDERUWRX$URWLQDWLQKDIDOKDGR6HHXWLYHVVH
rodado esse teste antes do envio, as áreas de serviço não teriam perdido dados e
VHXVJHUHQWHVQmRHVWDULDPWRVWDQGR7RPQDTXHOHPRPHQWR
7HOHIRQHLSDUD7RPSDUDGL]HUOKHTXHHXSRGLDGXSOLFDURSUREOHPD(OHPHGLVVH
TXHRXWURVFOLHQWHVWHOHIRQDUDPFRPDPHVPDTXHL[D(QWmRHOHPHSHUJXQWRX
TXDQGRHXSRGHULDFRQVHUWDURSUREOHPD(XGLVVHTXHQmRVDELDPDVTXHHVWDYD
WUDEDOKDQGRQDTXLOR(QTXDQWRLVVRGLVVHTXHRVFOLHQWHVGHYHULDPUHWRUQDUDR
DQWLJRVRIWZDUH(OH¿FRXEUDYRFRPLJRD¿UPDQGRTXHLVVRHUDXPJROSHGXSOR
para os clientes, já que eles perderam uma noite inteira de dados e não poderiam
XWLOL]DURQRYRUHFXUVRFRQIRUPHSURPHWLGR
)RLGLItFLOGHHQFRQWUDURGHIHLWRHWHVWDUOHYDYDYiULDVKRUDV2SULPHLURUHSDUR
QmRIXQFLRQRX1HPRVHJXQGR)RUDPQHFHVViULDVYiULDVWHQWDWLYDVHSRUWDQWR
YiULRVGLDVSDUDSHUFHEHURTXHHVWDYDHUUDGR2WHPSRWRGR7RP¿FDYDPH
telefonando com o intervalo de algumas horas para perguntar se eu havia consertado
RSUREOHPD(OHWDPEpPFHUWL¿FRXVHGHTXHHXHVWLYHVVHVDEHQGRGDGRUGHFDEHoD
TXHRVJHUHQWHVGHVHUYLoRVHVWDYDPOKHGDQGRHRWDQWRTXHHUDHPEDUDoRVRSDUD
HOHGL]HUTXHGHYHULDPFRORFDUDVDQWLJDV¿WDVGHYROWD
1R¿QDOHQFRQWUHLRGHIHLWRHQYLHLDVQRYDV¿WDVHWXGRYROWRXDRQRUPDO7RPTXH
QmRHUDPHXFKHIHVHDFDOPRXHGHL[RXWRGRRHSLVyGLRSDUDWUiV0HXFKHIHPH
SURFXURXGHSRLVTXHWXGRHVWDYDWHUPLQDGRHGLVVH³$SRVWRTXHYRFrQmRYDLID]HU
LVVRGHQRYR´(XFRQFRUGHL
$RUHÀHWLUSHUFHELTXHHQYLDUDV¿WDVVHPWHVWiODVWLQKDVLGRXPD
LUUHVSRQVDELOLGDGH$UD]mRSHODTXDOQHJOLJHQFLHLRWHVWHHUDSDUDSRGHUGL]HUTXH
RHQYLRIRUDIHLWRQRSUD]R7LQKDDYHUFRPLJRVDOYDQGRPLQKDSHOH1mRHVWDYD
SUHRFXSDGRFRPRFOLHQWHQHPPHXHPSUHJDGRU(VWDYDFRQFHQWUDGRVRPHQWHHP
10