RealWorldSoftwareConfigurationManagementSEANKENEFICKAPressMedia,LLCRealWorldSoftwareConfigurationManagementCopyright2003bySeanKenefickOriginallypublishedbyApressin2003Allrightsreserved.
Nopartofthisworkmayberepro-ducedortransmittedinanyformorbyanymeans,electronicormechanical,includingphotocopying,recording,orbyanyinformationstorageorretrievalsystem,withoutthepriorwrittenpermissionofthecopyrightownerandthepublisher.
ISBN978-1-59059-065-2ISBN978-1-4302-0792-4(eBook)DOI10.
1007/978-1-4302-0792-4Trademarkednamesmayappearinthisbook.
Ratherthanuseatrademarksymbolwitheveryoccurrenceofatrademarkedname,weusethenamesonlyinaneditorialfashionandtothebenefitofthetrademarkowner,withnointentionofinfringementofthetrademark.
Borland,CodeWright,StarBase,andStarTeamareeitherregisteredtrademarksortrademarksofBorlandCorporationintheUnitedStatesandothercountries.
Screenshotsareusedwithpermission.
crnReadyisatrademarkofcrnReadySystems,Incorporated.
lliM,Rational,ClearCase,ClearQuest,Atria,DB2,andOS/2areeitherregisteredtrademarksortrademarksofIBMintheUnitedStatesandothercountries.
lnstallShield,Developer,Professional,Express,andAdminStudioareeitherregisteredtrademarksortrade-marksoflnstallShieldSoftwareCorporation,intheUnitedStatesandothercountries.
Screenshotsareusedwithpermission.
KinookandVisualBuildareeitherregisteredtrademarksortrademarksofKinookSoftware,Inc.
,intheUnitedStatesandothercountries.
Screenshotsareusedwithpermission.
MerantandPVCSareeitherregisteredtrademarksortrademarksofMerant,lnc.
,intheUnitedStatesandothercountries.
Screenshotsareusedwithpermission.
Microsoft,VisualSourceSafe,Access,Office,VisualStudio,VisualC++,VisualBasic,SQLServer,andWindowsareeitherregisteredtrademarksortrade-marksofMicrosoftCorporationintheUnitedStatesandothercountries.
Alloperatingsystemslisted,includingWindows95,Wmdows98,WmdowsNT,Wmdows2000andWmdowsXP.
arecopyrightedbyMicrosoftCorpo-ration.
Screenshotsareusedwithpermission.
MKSandSourceIntegrityareeitherregisteredtrade-marksortrademarksofMKS,Inc.
,intheUnitedStatesandothercountries.
Oracle,OracleBi,andOracle9iareeitherregisteredtrademarksortrademarksofOracleCorporation,intheUnitedStatesandothercountries.
ScreenshotsforSourceGearVaultareusedwithpermission.
Sun,Java,andSolarisareeitherregisteredtrademarksortrademarksofSunMicrosystems,Inc,intheUnitedStatesandothercountries.
WiseSolutions,WiseforVisualStudio.
NET,andWiseforWmdowsInstallerareeithertrademarksorregisteredtrademarksofWiseSolutions,Inc.
Screenshotsareusedwithpermission.
TechnicalReviewer:DavidBirminghamEditorialBoard:DanAppleman,CraigBerry,GaryCornell,TonyDavis,StevenRycroft,JulianSkinner,MartinStreicher,JimSumser,KarenWatterson,GavinWray,JohnZukowskiAssistantPublisher:GraceWongProjectManager:TracyBrownCollinsCopyEditor:KimWrmpsettProductionEditor:JanetVailCompositor:DianaVanWmkle,VanWmkleDesignGroupIllustrator:CaraBrunk,BlueMudProductionsProofreader:NancySixsmithIndexer:KevinBroccoli,BroccoliInformationManagmentCoverDesigner:KurtKramesManufacturingManager:TomDebolskiTheinformationinthisbookisdistributedonan"asis"basis,withoutwarranty.
Althougheveryprecautionhasbeentakeninthepreparationofthiswork,neithertheauthor(s)norApressshallhaveanyliabilitytoanypersonorentitywithrespecttoanylossordamagecausedorallegedtobecauseddirectlyorindirectlybytheinfor-mationcontainedinthiswork.
Thesourcecodeforthisbookisavailabletoreadersathttp:I/www.
apress.
comintheDownloadssection.
DedicatedtoScottVouriandPaulHiggins,whogavemeachancewhentheydidn'thavetodoso.
ContentsataGlanceForewordbyDavidBirmingham.
xiForewordbyMicheleLerouxBustamantexivAbouttheAuthor.
xviiAbouttheForewordWritersxviiiAcknowledgments.
xixIntroductionxxiPartOneTheRole1Chapter1Chapter2Chapter3PartTwoGettingtoKnowtheSCMRole3TheSCMandtheSoftwareDevelopmentProcess.
.
.
.
.
.
.
17AllAbouttheSource43TheTools.
69Chapter4Chapter5Chapter6PartThreeSourceControlTools71cvs.
1o1SourceSafe.
151TheTasks.
207Chapter7IntheSCMLab209Chapter8BasicBuilds.
229Chapter9BuildsforWindowsNET.
281Chapter10Installations331Chapter11DeploymentandBuildAfterthoughts411Index425vContentsForewordbyDavidBirmingham.
xiForewordbyMicheleLerouxBustamantexivAbouttheAuthor.
xviiAbouttheForewordWritersxviiiAcknowledgments.
xixIntroductionxxiPartOneTheRole.
1Chapter1GettingtoKnowtheSCMRole3ConfigurationManagementintheRealWorld4Programming1016AreYouaNativeofTheseHereParts7TheSoftwareConfigurationManagementDilemmas9Summary16Chapter2TheSCMandtheSoftwareDevelopmentProcess17The((Who'sWho"oftheProcess18UnderstandingtheDevelopmentProcessCycles24UnderstandingtheDifferentSCMPositions.
32UnderstandingtheSCM'sMostImportantRelationship36BecomingtheReleaseManager41Summary42Chapter3AllAbouttheSource43OrganizingFileswiththeSourceTree43SharingFilesBetweenBranches58ExploringStrategiesforControl60Summary68viiContentsPartTwoTheTools.
69Chapter4SourceControlTools71VersionControlvs.
ContentManagement72ChoosingtheRightTool73ExploringtheTools83Summary99Chapter5CVS101InstallingCVS105UnderstandingtheRepository109ImportingFiles116GettingSourceCodefromtheRepository119CheckinginCodeandAddingSourcetotheRepository122BinaryFilesintheRepository124CreatingModules127LabelingRevisionsintheSourceRepository130ViewingHistoryandStatusAboutFiles132DifferencingCode135BringingtheLocalDirectoryUp-to-Date136BranchingandMerging139UnderstandingKeywordExpansion143WorkingwithCVSandRemoteLocations145BackingUpandRestoring148Summary149Chapter6SourceSafe151ChutesandLadders151GettingandInstallingSourceSafe153AdministeringSourceSafe,Part1159UsingtheSourceSafeClient163AddingFilestoSourceSafefortheFirstTimeandOtherFileManagementTasks167GettingSourceandCommittingItBacktotheRepository.
.
.
.
.
.
.
169LabelingRevisionsintheSourceRepository172SearchingforFiles173ViewingHistoryAboutFiles173DifferencingCode175viiiContentsBranchingandMerging179OptionsfortheClient182AdministeringSourceSafe~Revisited182UsingThirdPartyAdd-Ons196UsingtheCommandLine197UsingtheAnalyzeTool202FoodforThought205Summary206PartThreeTheTasks.
2o7Chapter7IntheSCMLab.
209StockingtheLab209CreatinganSCMGuideforDevelopers211BestPracticesfortheSCM215BreakingDowntheSCMTaskSchedule223Summary228Chapter8BasicBuilds229GettingReadytoBuild231ToSkiptheBuildScript.
237.
.
.
OrNottoSkiptheBuildScript237CreatingaPseudo-Build237RefiningYourPseudo-Script249IntroducingMAKE259ConvertingYourPseudo-ScriptintoaMAKEScript272Summary279Chapter9BuildsforWindows.
NET.
281WhatIsNET281((PartsIsParts~284UnderstandingtheNETFileOrganization290BuildingApplications297UsingScriptingToolsinaVisualStudio.
NETBuild308UsingAutomatedUtilities312Summary329ixContentsChapter10Installations.
331ThinkingItThrough331ExploringtheWindowsTools336InstallationsforLinux398Summary412Chapter11DeploymentandBuildAfterthoughts411DeployingApplications411DeployingWebProducts414AftertheProductShips.
420Summary423Index425XForewordBYDAVIDBIRMINGHAMWHENGATHERINGTHETECHNICALTALENTandtoolstoputtogethersolutionsinanincreasinglycompetitiveanddemandingmarketplace,timelinesaretighter,moneyisthinner,andyoursolutiongroupisundertheconstanttemptationtopushsolutionsoutthedoorwithaminimumofformalproceduregettinginitsway.
It'snoteasy,quick,orcheap-andlackofattentiontoatleastaminimumofinfrastructurecanconvertyourcooln-tiersolutiontoann-tearsolutioninnotimeflat.
Notoneforheavy-handedproceduresandtediousISOcompliance,butknowingthatsomeinfrastructureprocessandforethoughtisindispensable,IlikeSeanKenefick'sapproach.
Ithasthekindofbalanceandflexibilitythatwillservemostteams.
Ifwehadunlimitedtimetostandaroundwhiteboards,waitonotherteammemberstofixbrokensoftwarethatkeepsusfromrunningfree,orcarefullytrainevennoviceprogrammersonthedisciplinesofsourcecontrol-wewouldn'tneedautomatedtoolsorproceduresjusttoprotectusfromeachother.
Imaginealineofworld-classrunnersinlanesonatrack.
Towin,theyneedtostayfocusedandpourtheirenergyoutathighspeed.
Theyalsoknowthattokeepfromgettingdisqualified,theyneedtostayintheirownlanes.
It'sforsafety,too-twopeopletrippingovereachotherandspillingoutatnearly20milesperhourcanirreversiblydamageahumanbody.
Wemustkeeptherunnersmovingandkeepthemsafe-protectingthemfromeachother.
SoftwareConfigurationManagement(SCM)anditstoolsandprocedureshelpdevelopersstayfocusedandkeeptheirprocessorsburningathightemper-ature.
Atrackmeetneedslotsofpeopletostayorganized,butagoodSCMcandoeverythingvirtually-butnotwithoutthecooperationoftheteam.
IftheteambeginstoseetheSCMasbeingintheway,theteamhaslostsightofthebigpictureinexchangeforshort-livedsuccess.
Onedeveloper"crossingtheline"cancauseotherstostumble.
Ifthiscontinues,theteamcan'tpossiblywintherace.
Softwaredevelopmentisasmuchabouttheprocessasthetechnology.
Irecallonedevelopercomingintomyoffice,closingthedoor,andseriouslysuggestingwedismisstheentiretestingteamforourproject.
"Theyareonlyintheway,"heclaimed.
"Nothingwedoisgoodenoughforthem.
"Experienceddevelopersseetheironyinthisstatement.
Ifthetestersrepresenttheendusers,theyaredoingyouafavor.
Don'ttakeitpersonally;justfixtheproblem.
Inanothersetting,threedeveloperspushedoutabreathtakingamountoffunctionalityataspeedthatabsolutelyastoundedthecustomer.
Itwasrocksolidandproductionstrength.
ThesethreepeopleunderstoodtheprocessofsoftwarexiForewordxiidevelopment,cross-testedtheirownwork,andbysheerforceofwillmaintainedthedisciplinetostayfocused,collaborate,andcloseissuesathighspeed.
Theiranticollisionstrategywastostayinthesameroomandcoordinateeverythingonthefly-anditworkedforthembecauseasateamtheyhadlong-sincegelledintoagroupthatcouldcompleteeachother'ssentences.
Butthatkindcultureisrare-sorarethattheneedforSCMisever-presenttomitigatethelackofcollaboration,thepaceoftheproject,thesizeoftheteam,andclashingpersonalitiesortheever-presentneedtoinsert,remove,orswapouttechnologistsatamoment'snotice.
Theconsistencyofprocessalsofreesyourdevelopersfromhavingtodealwiththeoh-so-tediousaspectsofsoftwareversioning,building,configuring,andotherlargelyadministrativeactivitiesofsoftwaredelivery.
Onedevelopertoldmehefeltconstrainedbytheuseofaversioncontrolsystem.
WhydoesheneedtocheckthingsintoacentralrepositoryifnobodyelseisworkingonitbuthimAdminis-trativethinkersunderstandthisneed,buttechnologists-especiallyinexperiencedones-justdon't.
Ifyou'veputtogetherateamofsoftwaredevelopersandhavenoinfrastructureinplace,you'llbesurprisedhowmanydeveloperswanttojoinyourteam.
Thenyou'llbeappalledathowlittletheycangetaccomplished.
SCMalsoprotectsyoufromroguebehavior.
The"activerogue"iseasiertoidentifyandcontrolbecausehe'soutintheopenandoftenveryverbal.
The"passiverogue"isprettymuchanyoneonyourteamwhowillsacrificequalitywhentheheatstartstorise.
Faceit,whencrunchtimecomes,youneedaprocessinplacethatkeepsyourpeoplefrombeingtemptedtoputinquickfixesthatulti-matelybecometimebombsforsomeoneelsetofix-orfortheusertoencounterafterdelivery.
What'sthat-youaddedanewtabletothedatabaseonyourlocalmachine,butitnevermadeittothecentralserverAndyouupgradedtoWidgets4.
0tosolveaproblem,buteveryoneelseisstillusingWidgets3.
0Youcheckedinabunchofsoftwarebeforeleavingforalongweekendbutdidn'tbothertoseeifitwouldevencompilecleanlyInmostcasesoffailedsoftwareprojects-atleastthosethatarefundedandstaffedtobesuccessful-thefailurerestsintheinabilitytokeepallofthedevel-opersintheirowntracksandnotsteppingoneachother.
TheSCMhasahugeresponsibilityindesigningtheinfrastructurebutrequiressignificantsupportfromtheproject'sleadership.
Seanmakesexcellentpointsabouthowtonavigatethestickypoliticalissuesandhelppeoplestayfocused.
AnSCMisideallypartadministrator,parttechnol-ogist,partcheerleader,partdiplomat,andpartpoliceofficer,andmustneverloseself-controlorasenseofhumor.
IfyourSCMisgruff,insensitive,sarcastic,orhasanyproblemsinactively(andenthusiastically)interactingwithpeopleonvariouslevels,you'vegotamoreseriousproblemthanhavingnoSCMatall.
SeandescribestheflexibilityandcongenialityrequiredofanSCM,andyou'llseehispersonalitycomeoutinthepagesyou'reabouttoread.
Whetheryou'reanadministrator,abusinessanalyst,atechnologist,onthetestingstaff,orinanyofthemyriadrolesonasoftwaredevelopmentproject,you'llseesomewisdomintheabilityofsimpleprocessesandinfrastructuretoput-andkeep-windinyoursailsandsomefunbackintotheprojectlifecycle.
Andwhodoesn'tneedmoreofthatDavidBirminghamCEO,VirtualMachineIntelligenceForewordxiiixivForewordBYMICHELELEROUXBUSTAMANTEONCEUPONATIME,whentheInternetwasinitsinfancyandbeforetherewasCom-ponentObjectModel(COM),Iwasresponsibleforthedevelopmentofinstallationsoftwareforseveralboxedimagingsolutions.
ItwasduringthattimethatIwouldlearntoappreciateandrespecttheartofconfigurationmanagement;becausemyjobcamelast,Iwasalwayslate.
Now,tobeclear,Iwaslatebecausethesoftwarewasalmostalwayslategettingintomyhands,whichmeantmytimelineonthewhiteboardschedulewascompressedtomeetourshrinkwrappingschedule(whichcomprisedanassemblylineofourstaff,stuffingandwrappingboxes).
So,atthekick-offofmyinstallationdevelopmentschedule,myofficewaslinedwithdevelopers,managers,andaChiefTechnicalOfficer(CTO)hoveringandofferingtobringmefood,water,andcoffeeasIcompletedthework.
Evenasimpleinstallationprogramiscriticalbecauseitisthefirstexperienceacustomerhaswithyoursoftware.
Itwilleithermakeorbreaktheirabilitytorunthesoftwaresuccessfully.
Yep,that'simportant,andifyou'veeverwrittenaninstallationfor"release,"thenyouknowtheintricatedetailsinvolvedthatcoulddriveeventhebestdevelopermad!
Agreatdealofpressurecomeswiththeresponsibilityofsoftwaredeployment,andthispressureincreaseswhenyouintroduceotherconfig-urationmanagementconceptssuchassourcecontrol,versioning,andautomatedproductionbuilds.
Thiscanbeevenfurthercomplicatedwhenthetechnologiesarecomplex.
Happily,IwasfortunatetohaveleftmyinstallationdaysbehindmebythetimeweintroducedCOMcomponentsintoourevolvingimagingsolutions.
Justinthenickoftime,too!
InthedaysofearlyCOM(orOLEAutomation1.
0),versioninganddeploymentheadacheswerealmostinsurmountable,especiallywhenyouhadtodealwithsomelegacy16-bitapplicationsandperformthunkingfrom32-bitcom-ponents!
Eventually,Ileftimagingandanimationtoworkondocumentmanagementsolutions.
ThatiswhenImettheauthorofthisbook,SeanKenefick,andlearnedhowaprofessionalconfigurationmanagementexpertgetsthejobdone.
Ourdoc-umentmanagementsolutionwasaclassicclient/serverenterpriseapplicationthatleveragedbothproprietaryandthird-partydatabases,includedemailservercon-figurationforworkflow,andwasbuiltusingdistributedCOMarchitecture(DCOM).
Sean,determinedtomakehisjobasenjoyableaspossible,setouttoautomatethebuild,versioning,anddeploymentprocesstoadesktopshortcuticon.
Andsoitwas.
OurnightlybuildswereautomatedsuchthatthededicatedbuildmachinehadadesktopiconthatwouldpullthelatestsourcecodefromVisualSourceSafe,buildallcomponentsusingascriptthatproperlyarrangedthebuildordertohandlecomponentdependencies,assignanincrementingversiontoallbuildoutput,labelsourcesafedirectorieswiththisversionstamp,andcreateaver-sioneddirectorywiththeresultingCDimage.
Iwasanimmediateadmirerofthis,givenmypriorexperiencewheresourcecontrolwasanightlybackuptotapeandwheredevelopersbuiltandtestedtheirowncomponents.
Fromabusinessperspective,thisautomatedprocesswascritical.
Implementingsourcecontrolensuredthecompanyhadthelatestsourcefromalldevelopers.
Auto-matingthebuildprocessfromthatsourceensuredthecorrectsourcewasusedtobuildcomponentsanddisciplineddeveloperstoavoid"breaking"thebuildbycheckinginpartiallycompletedwork.
Versioningprovideduswithhistoricalfoot-printsthatcouldbereviewedwhenfeatureswerebrokenbetweenbuildsbutalsomadeitpossiblefordevelopmentandQualityAssurance(QA)teamstorecordinwhichbuildtheydiscovereddefects.
ThisautomatedbuildprocesscompletelystreamlinedourabilitytoupdatedevelopmentandQAserverswiththelatestbuild.
Acoresetoftaskssimplymusthaveprocessandautomationintheback-officeofadevelopmentenvironment.
Youmusthavesourcecontroltoprotectyourcompany'scodeassetsandtoprovideversioningandrollbackfunctions.
Youmusthaveastreamlinedbuildprocessthatwillbuildcomponentsfromtheirsourceandorganizethedistributablecomponentsandothercontentfordeployment.
YoumustalsohaveanautomateddeploymentprocessthatcanbereliedupontoaccuratelyupdatethedestinationofthedeploymentbeitaCDinstallation,aWebdownload,orascriptthatdeploysupdatestoahostedenvironment.
We'vecomealongwayin10years.
TothinkIusedtobuildfloppydiskinstalla-tionsthatrequired"jamming"closeto1.
44MBofinformationoneachdisktoreducetheoveralldiskcount.
Infact,Irememberusingtoolsthatrequiredmetohandpickthefilestomakethispossible!
Ughh!
Nowadays,peopledownloadentireCDfootprintsovertheWeb.
AndalthoughthistraditionalCDinstallationisstillaliveandwell,therearemanymorethingstoconsidertodaysuchasWebdeployment,automaticversionupdatesovertheInternet,andapplicationhosting.
Today,aconfigurationmanager,alongwithdevelopmentteamsandman-agers,mustcometogetherontherightdeploymentmodelforanapplication.
Applicationversioningisnolongerassimpleasacomponentstamporasourcecontroldirectory.
So,newdistributionchannels,componentarchitectures,andversionupdatetechnologiesnowmakeitnecessaryforapplicationdeveloperstoassistconfigurationmanagersinformingthecorrectsoftwarearchitecturetocomplementthedeploymentplanandtoremovetheneedforinterventionforautomaticupdates.
Similarly,whenworkinginahostingenvironment,developersandInformationTechnology(IT)staffmustjoinforceswithconfigurationForewordXVForewordxvimanagerstoconstructaneffectiveprocessthatwillallowcompaniestomaintainservicelevelswhileupdatingproductionsites.
Theseconceptstrulycrossplatformboundaries.
DuringthetimeIwasChiefInformationOfficer(CIO)ofa24x7-hostedoperationbuiltonJava2EnterpriseEdition(J2EE),IhadtheopportunitytoworkwithSeanonceagain.
Thistime,hewasbroughtintobuildanentireprocessforconfigurationmanagementthatwouldberesponsibleforstreamliningthedeploymentofcodefromdevelopment,toQA,andfinallytoproduction.
Whenyouworkina24x7environmentandareultimatelyresponsibleforthesafedeploymentofproductionupdates,yourealizehowincrediblyimportantitistobeabletorollbackchanges,deployaccurateupdates,andhavewell-documentedproceduresandconfigurationsteps.
Wehadtobeabletorebuildaproductionmachineimmediatelyifwelostoneoriftherewasaproblemwithadeployment.
IcouldnothaveimaginedentrustingthisprocesstoanyonebutSeanbecauseinmyyearsofexperiencehewastheonlypersonIknewwhohadapassionforandtrulyhadperfectedthisartform.
Configurationmanagementisasmuchaboutprocessasitisimplementation.
Inlargeorganizations,manyofthetasksthatfallundertheumbrellaofconfigu-rationmanagementaredistributedamongseveralindividualsand/ordepartments.
Sean'sbookfocusesonthecoretasksofthe"CMguy,"buthealsoinjectshisvastpracticalexperiencewithprocessandmanagementintothecontenthedeliversineachchapter.
Hewillteachyouhowtoautomatebuildscripts,howtodeployappli-cationsovertheWeb,andhowtobuildtraditionalinstallationapplicationsusingsomeofthecommontoolsavailabletodayformultipleplatforms.
Moreimportant,hewillinspireyoutotakeprideintheperfectionofthisartthatisinmanycasesthecenterofasuccessfulsoftwaredevelopmentoperation.
Youwon'tfindabettersourceofinformationonthissubjectoramorepassionateauthorwillingtosharehisvastexperience!
MicheleLerouxBustamanteAssociate,!
Designhttp://www.
idesign.
netAbouttheAuthorSeanKenefickisoneofthefoundersofcmReadySystems,acompanyspecializinginsoftwareconfigu-rationmanagementservicesandcollocation/hostingsolutions.
Priortothat,hewasthedirectorofnetworkoperationsatConfirmNetCorporationandthemanagerofclientapplicationsatMotivaSoftware.
HehastaughtprogramminglanguagesthroughtheUniversityofCaliforniaatSanDiegoExtensionprogramsince1997.
Inhissparetime,heenjoysreading,biking,andtinkeringwiththesixcomputerslyingaroundhishouse.
HelivesinSanDiego,California,withadognamedGus,acatnamedSable,andfourunnamedgoldfish.
Seancanbereachedviaskenefick@cmready.
comorthroughthecmReadyWebsiteathttp:I/www.
cmready.
com.
xviixviiiAbouttheForewordWritersDavidBirmingham,alsothetechnicalreviewerofthisbook,isanindependentconsultantforMetamorphicSoftwareCorporationinDallas,Texas.
Davidhassuccessfullydeployedawiderangeoflarge-andmedium-scalesoftwaresolutionsinvaryingcomplexity-promotingproducts,services,andmethodologiestohelptechnicalgroupsgainandkeepafootholdinthemarketplace.
Davidhasembracedsoftwareconfigurationmanagementanditssupportingproductsinvariousforms,andhopesthereaderwillfindvalueandsuccessinapplyingtheconceptsofthisbook.
David,hiswife,andthreechildrenliveandplayjustnorthofDallas,Texas.
Seehisbook,alsofromApress,SoftwareDevelopmentonaLeash(Apress,2002).
Davidcanbereachedatdbirmingham@metamorphicsw.
com.
MicheleLerouxBustamanteisanassociateof!
Design,aMicrosoftregionaldirector,amemberoftheInternational.
NETSpeakersAssociation(INETA),andanauthor.
At!
Design,Michelecontributesherdiversebackgroundto.
NETtrainingandhigh-endcorporateconsulting.
ShefocusesontheC#language,ASP.
NET,andWebServicesandalsoprovidesguidancetotechnologyexecutives.
Micheleisalsoafrequentlypublishedwriterandinternationalconferencespeaker.
Formoreinformation,visithttp:Ilwww.
idesign.
netorsubscribetohernewsletterathttp:Ilwww.
dotnetdashboard.
net.
Acknowledgments1'HANKsTOEVERYONEI'veworkedwithatApressincludingthestraight-shootingbutalwayssupportiveKarenWatterson,technicalreviewerDavidBirmingham,copyeditorKim"Willy-Nilly"Wimpsett,andproductioneditorJanetVail-allofwhomwereforcedtoreadthismanuscriptagainandagain.
Special"monsterthanks"toprojectmanagerTracyBrownCollinswhoalwayskeptmepointingintherightdirection.
I'malsogoingtomissemailinghereveryday.
I'dalsoliketoacknowledgesomeofthefolksI'veworkedwithprofessionally,withoutwhomIcouldnot(orwouldnot)havewrittenthisbook.
Specifically,I'dliketomentionPaulHigginsandScottVouri(towhomthisbookisdedicated),BarryKnuttila,AndreaAmes,JoseCepeda,andMicheleLerouxBustamante(whogotmethegiginthefirstplace).
I'dalsoliketothank(andapologizeto)thefriendsandfamilywhosufferedinsilenceasIworkedeveryweekend,holiday,andvacationdayforthepasttwoyears:JerryandBeverlyKenefick(alsoknownasMomandDad),KelleeandRileyBergendahl,JeffPierick,andMikeEllis(thoughherarelysufferedsilently).
Thanksforthesupport!
Butmostimportant,IwanttosavorthismomentwithAudreyOberman-therockwhokeepsmesane.
xixIntroductionUNLESSYOUWORKFOREBENEZERSCROOGE,everybodytypicallywinswhenyourcompanyissuccessful.
Stockoptionsaresuddenlyworthcash.
Paychecksincreaseatreviewtime.
Companiescanofferbetterbenefits,suchas401(k)matchingandopticalcare.
It'sdefinitelyinyourbestinterestforyourcompanytosucceed.
Withthatitmind,buildingyourproductandpresentingittothemarketplacecouldbeconsideredthemostimportantjobinthecompany.
Butthere'sawholelotmoretoreleasingaproductthancomingupwiththeartworkforthebox.
SomeonehastomakesuretherightversionofthesoftwaregetscopiedtotheCD-ROMordeployedtotheWeb.
Thenheorshehastomakesurecustomersaren'tbeingexposedtothenextMelissavirus.
Butmoreimportant,longbeforethecustomereverseesthebox,thissamepersonhastowatchoverthebuildingblocksoftheproducttoensurethatnothinggoeswronglongenoughforthesoftwaretobeplacedonthefinalCD-ROM.
Thepersonistheteamgoalie:Behindeverycornerlurksdisasterthatcandestroyacompany'schanceforsuccess,andheorshehastoblockfate'skicks.
WhoisthepersonwhobearsallthisonhisorhershouldersMeettheSoftwareConfigurationManager(SCM).
WhoIstheSoftwareConfigurationManagerOddlyenough,sometimesthemostjuniorprogrammersarethrustintothisposition.
Withthebestintentions,andoftentimeslearningonthejob,theseapprenticestaketheburdenofensuringthattheprogrammers'outputisconstantlyavailableandthattheproductcanbebuiltandinstalled.
Itmayseemstrangethatcompaniespushthishighlyimportantjobontotheirmostinexperiencedpersonnel.
Butinthefast-pacedworldofsoftwareengineering,thesesamemanagersmustmeetwhatmanyconsidertobeimpossibledeadlineswhilesupervisingastaffofverylargeegos-theycanbeforgivenfortryingtocutcorners.
Especiallynow,afterwe'veenteredanewcenturyandalltheparadigmsinthesoftwareengineeringworldhavechanged.
Companiesnolongerhavetheluxuryofhiringonwhims.
Wheremanagersusedtosearchunsuccessfullyformonthstryingtoattractqualifiedcandidatesandevencreatedpositionsforgoodpeoplewhentheywerechancedupon,nowcompaniesmustmakedowiththestafftheyhave.
Companiesthatfrivolouslyspentmoneyonthe"whatever-it-takes"theoryofsoftwaredevelopmenthavegonethewayofthedinosaurs.
Intoday'smarket,onlythefrugalsurvive.
xxiIntroductionxxiiCompaniesintheknowcraveanddesirehigh-endSCMs(alsoknownbytheconfigurationmanagermoniker)whilesoftwareengineerscurrentlyfacetheworstjobmarketthey'veexperiencedinmemory.
AgoodSCMcanstillgetcallsfromrecruiterstwoorthreetimesamonth.
Andthentherearethecompaniesthatseemtonotknowanybetter.
Forthesecompanies,thejunioremployeesarestillgiventhearduoustaskofmakingsurealltheircoworkersstayemployed.
WhatArethePossibilitiesfortheSCMTodayWhenIstartedinthesoftwareengineeringindustry,IworkedforasmallvideocarddrivercreationcompanyinSanRafael,California.
Immediatelyuponjoiningtheprogrammingstaffasthemost-junioremployee,thebasicsofSCMwereputinmyhands:administeringthesourcedatabase,buildingtheproducts,andcreatinganinstallationforitsdeployment.
Afewyearslater,IwasofferedajobinSanDiegoastheseniorSCMforaproductdevelopmenthouse.
Theychosememoreformyprogrammingback-groundthanmySCMskills.
Iwaswaryabouttakingthejob-afterall,inmanycompanies,configurationmanagersareconsidered(alongwithqualityassuranceandtechnicalsupport)tobesecond-classcitizens.
Iwasalsoworriedaboutnotbeingchallengedbytheposition.
Buthey-itwasajobinSanDiego.
Itookit.
AndI'veneverlookedback.
IthinktheexperienceIgainedatthatcompanyhasgivenmeopportunitiesImightneverbeenaffordedifIstayedinmainstreamprogramming.
Ifindmyselfinanichethatisnoteasilyfilled.
AndIfindmyselfconstantlychallengedtokeepupwithtechnologiesImightneverhaveexploredifIhadstayedaC++programmer.
Inthismarket,atleasthereinCalifornia,programmerspoundthepavementlookingformarginalpositions.
ButSCMsarestillhighindemand.
RecentlyarecruitercalledmesoIcouldconsidertwoopenpositionshehad.
BecauseIwashappyinmycurrentsituation,Ipolitelydeclined.
"Well,haveyougotanyfriendswithsimilarexperiencelevelsYoumustknowsomeone,"hesaid.
Unfortunately,Icouldn'thelphim.
Infact,whenIwasamanagerlookingforastrongSCMcan-didate,Iwentthrougheightmonthsofinterviewing-andfoundonlyonepersonwhowasproperlyqualifiedforthejob.
Heturnedmedownbecausehewasofferedmuchmoremoneyfromacompetingsuitor.
Second-classcitizensNoway!
SmartcompaniesunderstandthenecessityforstrongSCM.
Andthatneedwillnevergoaway.
IntroductionSo,WhyaBookonSCMIdecidedIwantedtowriteabookthatwouldhelppeoplewho,likeIwas,havebeenthrownintoarolethat'stotallyforeigntothem.
Manyofthemhavenoformalprogrammingexperienceand,worse,havenoonetoguideormentorthem.
Almostalloftheirabilitiescomefromlearningthemonthejob.
I'mhopingthisbookmightaidthemintheirworktasks.
WhoShouldReadThisBookWhenIstartedintheSCMrole,Isearchedforabookthatmighthelpmeunder-standthebasicsofthisnewposition;instead,Ifoundplentyofbooksthatcoveredsmallpartsofthejob,butnonethatencompassedthefundamentaltasksandtoolsIwasgoingtohavetomaster.
Timehasmovedon,buttherestillseemstobeadearthofsuchbasicresourcesforthenewSCMonthejob.
BecausetheSCMpositioncanbethrustuponnotonlyprogrammers,butalsoqualityassuranceandtechnicalsupportpersonnel,thisbookisdesignedasa"start-from-scratch"manual.
Itdescribestherudimentaryaspectsofthepositionaswellasstrategiesthatcanhelpyouavoidthetypical"newbie"pitfalls.
MoreexperiencedSCMsmayfindthatthisbookwill"roundout"manyoftheirskillsaswellasdetailspecificstasksthattheymaywanttointegrateintotheirprocesses.
Thisbookisextremelywell-suitedforthoseworkinginbasicsoftwareengineeringhouses.
However,youmaybebuildingcriticalmedicalorengineeringsoftware.
Maybeyou'reprogrammingarollercoaster'sfunctionsorintegratingsoftwareintoanairplanecockpit.
Ifso,thisbookwillgiveyouanexcellentfoundationforyourjob-butthereareotherrulesandlawsyoumustfollowthatareoutsidethescopeofthisbook.
You'llwanttoexploreotherreferencematerialforyourparticularsituation.
HowThisBookIsOrganizedThisbookisdividedintothreeparts,eachmadeupofseveralchapters.
PartOne,"TheRole,"isafundamentalprimerfortheSCMrole.
Init,you'llfindadescriptionoftheroleitself,aswellasbasicinformationregardingsourcecontrolandthetoolsusedtoimplementit:Chapter1:"GettingtoKnowtheSCMRole"Chapter2:"TheSCMandtheSoftwareDevelopmentProcess"Chapter3:"AllAbouttheSource"PartTwo,"TheTools,"includesoverviewsofmanysourcecontroltools,aswellasdetailedchaptersonthetwomostpopularfreewaretools:xxiiiIntroductionxxivChapter4:"SourceControlTools"Chapter5:"CVS"Chapter6:"SourceSafe"PartThree,"TheTasks,"outlinestheresponsibilitiesthatareapartoftheSCMjob.
Thesechapterscoverhowtocareforyoursourcedatabaseandincludetechniquesforbuildingyourproduct.
Furthermore,thispartdiscussesspecificstrategiesfordifferentoperatingsystemsandcompilationtools.
You'llalsofindinformationonWebdeploymentandproductreleases:Chapter7:"IntheSCMLab"Chapter8:"BasicBuilds"Chapter9:"BuildsforWindows.
NET"Chapter10:"Installations"Chapter11:"DeploymentandBuildAfterthoughts"ConventionsUsedinThisBookThisbookusescertainstyleconventionstohelpyouunderstandcertainphrases.
Aconstant-widthfontindicatescodeexamples:suchasthisAconstant-widthfontinasentencesuchasthisdenotescommandsorkeywordsthatmightbecase-sensitivewhenused.
ItalsodenotesWebaddresses.
Italicsindicatenewtermsandimportantconcepts.
The>-symboldenotesamenuhierarchy.
Forexample,selectFile>-OpenProjectindicatesthatyoushouldselecttheFilemenuandthenselecttheOpenProjectcommand.
Unfortunately,bookpagesareonlysowide.
Asmallarrowattheendofacodelineindicatessinglecodelinesthathavebeensplitintomultiplelinesmerelytofittheconfinesoftheprintedpage:AConstantWidthFontwithanEndingArrow~andaFollowingIndentedLine
WHloud Date(鲸云数据),原做大数据和软件开发的团队,现在转变成云计算服务,面对海内外用户提供中国大陆,韩国,日本,香港等多个地方节点服务。24*7小时的在线支持,较为全面的虚拟化构架以及全方面的技术支持!官方网站:https://www.whloud.com/WHloud Date 韩国BGP云主机少量补货随时可以开通,随时可以用,两小时内提交退款,可在工作日期间全额原路返回!支持pa...
HostKvm,我们很多人都算是比较熟悉的国人服务商,旗下也有多个品牌,差异化多占位策略营销的,商家是一个创建于2013年的品牌,有提供中国香港、美国、日本、新加坡区域虚拟化服务器业务,所有业务均对中国大陆地区线路优化,已经如果做海外线路的话,竞争力不够。今天有看到HostKvm夏季优惠发布,主要针对香港国际和韩国VPS提供7折优惠,折后最低月付5.95美元,其他机房VPS依然是全场8折。第一、夏...
老周互联怎么样?老周互联隶属于老周网络科技部旗下,创立于2019年12月份,是一家具有代表性的国人商家。目前主营的产品有云服务器,裸金属服务器。创办一年多以来,我们一直坚持以口碑至上,服务宗旨为理念,为用户提供7*24小时的轮班服务,目前已有上千多家中小型站长选择我们!服务宗旨:老周互联提供7*24小时轮流值班客服,用户24小时内咨询问题可提交工单,我们会在30分钟内为您快速解答!另免费部署服务器...
sourcegear为你推荐
网络明星网络明星是怎样成名的呢?如何又是网络明星呢?!!bluestacksbluestacks到底是叫蓝手指还是叫蓝叠1433端口怎么去看1433端口安卓应用平台有没有什么安卓游戏都能找到的应用商店或者游戏中心iphone越狱后怎么恢复苹果手机越狱后怎么恢复安装迅雷看看播放器怎样安装迅雷看看播放器bt封杀为什么现在网上许多BT下载都被封了?小米手柄买了个小米蓝牙手柄,游戏是可以玩但是按键位置不舒服,怎么可以改按键系统分析员系统分析师是做什么 的声母是什么声母是什么?单韵母是什么
虚拟主机提供商 免费域名 申请域名 域名买卖 域名服务dns的主要功能为 免费动态域名解析 naning9韩国官网 simcentric cpanel主机 正版win8.1升级win10 512m内存 好看的桌面背景图 ibox官网 seednet 200g硬盘 能外链的相册 无限流量 web服务器搭建 789 中国域名 更多