Post on 14-Mar-2020
DataFlowDiagrammingbyExample
ProcessModeling
Techniquesfor
RequirementsElicitation
ThomasHathawayAngelaHathaway
©2015byBA-Experts.
Allrightsreserved.Nopartofthispublicationmaybereproduced,storedinaretrievalsystem,or
transmittedinanyformorbyanymeans,electronic,
mechanical,photocopying,recording,orotherwise
withoutpriorpermissionofthecopyrightholder.
Thecontentsofthis
publicationareprovidedingoodfaithandneitherTheAuthorsnorThePublishercanbeheldresponsibleforanyerrorsoromissions
containedherein.Anypersonrelyingupontheinformationmustindependentlysatisfyhimselforherselfastothe
safetyoranyotherimplicationsofactinguponsuchinformationandnoliabilityshallbeacceptedeitherbyTheAuthororThe
Publisherintheeventofrelianceuponsuch
informationnorforanydamageorinjuryarisingfrom
anyinterpretationofitscontents.Thispublicationmaynotbeusedinany
processofriskassessment.
PrefaceThiseBookwasneithercreated“ForDummies®”nor“ForCompleteIdiots®”,butfornormalpeopleintherealworldtogivethemabasicunderstandingofbusinessanalysisconceptsandtechniques.Manypeopledobusinessanalysisalthoughit
isnotintheirjobdescription.WhetheryouaretheCEO,COO,Director,Manager,oronthefrontlines,youmaybeinvolvedindefininghowtechnologycanbenefityouandyourorganization.Whenyouareinthatawesomerole,youareatthattime“theonewearingtheBusinessAnalysis(BA)hat”.
Intoday’swiredworld,softwareapplicationsoften
takecenterstageinoptimizingworkflowandincreasingproductivity.Unfortunately,theprocessofdeliveringtherightsoftwaretotherightpeopleattherighttimeischallengingtosaytheleast.ThiseBookpresentsDataFlowDiagrams(DFDs)asaphenomenaltoolforvisualizingandanalyzingdependenciesandinteractionsamongstmanualandautomatedbusiness
processes.ItexplainswhataDFDis,whyyouneedone,andhowtocreateit.Youwilllearnthebenefitsofprocessvisualizationforthebusinesscommunity,fortheonewearingtheBAhat,forthosetaskedwithdevelopingthesolution,andultimatelyfortheentireorganization.YouwillalsodiscoverhowDFDsarepowerfultoolsforrecognizingandeliminatingtwoofthemajorproblems
thathauntITprojects,namelyScopeCreepandProjectOverrunscausedbylateprojectchangerequests.
AbouttheAuthorsAngelaandTomHathawayhaveauthoredanddeliveredhundredsoftrainingcoursesandpublicationstothousandsofbusinessanalystsaroundtheworld.Theyhavefacilitatednumerousrequirementsdiscovery
sessionsforinformationtechnologyprojectsunderavarietyofacronyms(JAD,ASAP,JADr,JRP,etc.).
Basedontheirpersonaljourneyandexperiencesreportedbytheirstudents,theyrecognizedhowmuchanyonecanbenefitfromabasicunderstandingofwhataDataFlowDiagramis,whattheyrepresent,whoneedsone,andhowtogetstarted
creatingone.
Angela’sandTom’smissionistoallowanyone,anywhereaccesstosimple,easy-to-learntechniquesbysharingtheirexperienceandexpertiseintheirtrainingseminars,blogposts,eBooks,videocourses,KnowledgeKnuggets™,andpublicpresentations.
AdditionalResourcesThecontentsofthiseBookarealsocontainedinourinstructor-ledtrainingwhichweofferonlineoratyoursite.Peruseourtrainingprogram.
TableofContents
Preface
AbouttheAuthors
TableofContents
IntroductiontoDataFlowDiagrams(DFDs)forthe
BusinessBusinessProcesses,DataFlows,andValueChainsWhyCreateaDataFlowDiagram?
ModelingtheFlowofMaterialandData
VisualizingProjectScope
HowtoIdentifyInternalProcessesonaDFD
GettingtotheNextLevelMiningforProcesses
DrawingaDetailLevelDFD
DiscoveringMissingProcessesandData
DetailedProcessandDataSpecificationsOptionalProcessMini-Specs
CapturingDataElementsHorizontalBalancingRevealsMissingDataElements
ThePowerofDataFlowDiagramsWhatDoestheDataFlowDiagramDoforYou?AFullyBalancedDFDCreatingaDFDFragment
Summary
IntroductiontoDataFlowDiagrams(DFDs)fortheBusiness
Questionsansweredinthischapter:
WhatisaDataFlowDiagram(DFD)?WhendoIneedone?
BusinessProcesses,DataFlows,andValueChains
Apicturereallyisworthathousandwords,especiallyintheworldofBusiness
AnalysisforITprojects.TrytodescribeworkflowsorbusinessprocessesinnaturallanguageandthechancesthatITwilldeliverthesolutionyouwantareverysmallindeed.Thechallengeiswhatpicturedoyouneedtodraw?
Thereareseveraltechniquesfordrawingprocessmodelsordiagramsatvariouslevelsofdetailandeachhasaspecificfocus.DataFlow
Diagrams(DFDs)representtheworkfloworstepswithinaprocesswithafocusontheflowandtransformationofdata.YoucancreateDFDsatthebusinesslevel(asinthisexample)representingbusinessprocessesandbusinessdataoratthesystemleveldepictingITapplications,databases,andfiles.Sincewearetalkingaboutbusinessanalysis,ourfocuswillbecreatingand
usingdataflowdiagramsatthebusinesslevel.
Everybusinessprocessisamore-or-lesscomplexsequenceofstepsthatchangessomethingcomingin
tocreatesomethingnew.Assuch,theprocessneedssomeformofinput,whichcouldbeinformationoranyotherresource.Bydefinition,adataflowdiagramisapictureofhowthedepictedprocessescreate,consume,transport,andstoredata.ADFDistherightchoiceforbusinessprocessmodelingifyouneedtounderstandthecreationanduseofdatawithintheindividualbusinessprocesses.
Thoseprocessescanbemanualorautomated;itdoesnotmatterasfarasthediagramisconcerned.
Processesuseinputtocreateoutput,whethertheoutputissomethingaltogetherneworsimplyanalteredversionof
theoriginalinput.Sincetheprocessaddssomemeasurablevaluetotheinput,weoftenrefertothe“valuechain”oftheorganization.
Fundamentally,anydiagramissimplyapicturewithconstraints.InthecaseoftheDFD,theconstraintsarewhichsymbolsyoucanuseandwhateachsymbolmeans.Therearereallyonlytwowidelyusedconventionsfor
drawingDFDsandthedifferencesareminimal.Bothallowonlyfourbasicsymbols.
Aroundedrectangle(oracircledependingonwhichconventionyoufollow)representsaprocessatsomelevelofdetail.Thenameoftheprocesstellsuswhattheprocessdoes(i.e.,whatitsprimaryfunctionis)incommonbusinessterms.
Sincefunctionsareactions,thenameconsistsofanactiveverb(whatisdone)andadirectobject(whatisitdoneto—e.g.,PROCESSCREDITCARD,SELLPRODUCT,CHECKITEMPRICE).
Asyoucanseefromthe
examples,thenamedprocesscanbeatanylevelofdetail,fromtheveryhigh-level(SELLPRODUCT)totheverylow-level(CHECKITEMPRICE).
ProcessesInteractwithData
Anarrowrepresentsadataflow,meaninginformationcomingfromsomewhereandgoingsomewhereelse.
Becausethedataismovingfromsomewheretosomewhere,thearrowpointsinthedirectionofmovement.Everydataflowhastohaveaname.Becauseitrepresentsdataanddataisathing,thenamehastobeanounwithorwithoutappropriatemodifiers(i.e.,CreditCardAuthorization,Invoice,ItemNumber).Aswiththeprocess,thenameddataflowcanbeatanylevelofdetail.
Adatastoreissimplydataatrest.Itisnotgoinganywheresoitcannotbeadataflow;itiswaitingtobeconsumedbyaprocess.Adatastoreisnotnecessarilyafilealthoughafileisadatastore(likeasquareisarectanglebutarectangleisnotnecessarilyasquare).Aspecialsymbol
consistingofasmallsquarewiththetopandbottomlinesextendingoutwardtotheright(orsimplytwoparallellines,againdependingonconvention)representsadatastore.
ADFDMakesScopeVisible
Asimplesquare(withor
withoutanoptionalshadow)representsanexternalentity.Intheworldofdataflowdiagramming,anexternalentityrepresentsaperson,organization,orapplicationthatisoutofscopefortheprojectfromtheperspectiveoftheDFD.Specifically,itimpliesthattherepresentedobjectisnotgoingtobeanalyzedorimpactedbyanyprojectusingthisdiagramalthoughdataflowstoand
fromtheexternalentityhavetobeanalyzed.
WhyCreateaDataFlowDiagram?
ADFDservesmultiplepurposes.Youmightcreateonetobeabletoanalyzethecurrentsituationwiththegoalofidentifyingroadblocksandimprovingefficiency.You
mightalsocreateonetopresentanddiscusstheprocesswithothers.YoucouldcreateaDFDofaproposedbusinessprocessbeforeyoudevelopdetailedprocessesandsupportingITapplicationstoidentifypotentialissuesbeforetheyoccur.Itsprincipleuseispresumablytoidentify,document,andcommunicatestakeholderrequirementsforanITproject.
Fundamentally,therearetwogoodreasonswhyyouneedadiagram.Firstoff,peoplecanpointtothediagramtodiscussaprocessorflowinsteadofusingwordstodescribewhattheymean.Thediagramrepresentsavisualmodeofcommunication,whichallstudiesshowismuchmoreeffectivethanmerewords.Pointingpowerprovesthatitworks.Secondly,studyingthe
diagramgeneratesquestionsthatmightindicatemissingstepsorexternalentities.Ifthediagrampiquesyourcuriosity,itiswellworthyourwhiletoinvestigatethesituationtofindananswer.
ModelingtheFlowofMaterialandData
Questionsansweredinthischapter:
WhatisaRigorousPhysicalProcessModel(RPPM)andwhydoIneedone?Whatsymbols
doesituse?HowcanIcreateanRPPMfrominterviewnotes?
ARigorousPhysicalProcessModelshowsthemovementofphysicalobjectsanddataamongsttheunitsinan
organization.Theideaistorepresenttherealworldascloselyaspossible.Giventhattheproposedinformationtechnology(IT)solutionwillneedtoknowsomethingaboutthephysicalobjects,thesewillhavetoberepresentedindataaswell.ThepowerofanRPPMliesinitssimplicity.Itonlyallowstwosymbols,acircletorepresentpeopleorplacesandanarrowrepresentingthe
movementofphysicalmaterialordata.ThissimplicitymakesiteasytoimplementanditisanidealprecursortoaDataFlowDiagram.
NowthatyouknowthesymbolsforcreatinganRPPM,Iwouldliketowalkyouthroughtheexerciseofanalyzingasituationtocreateoneusingastandardscenariofromourinstructor-ledclass.
FYI,thisisatranscriptofaninterviewwiththeManageroftheOrderEntryDepartment,Mary(theprojectsponsor).
InterviewNotes
Thecustomertriggersalltheactioninour
department.Wereceiveanorder(withorwithoutpayment),acomplaintorapayment(withorwithoutinvoicecopy)fromthecustomer.These
areseparatedandthefollowing
actionstakeplace:
Ifitisanorder,weverifyanexistingcustomer'screditstatusandthenweverifythattheitemnumbers
arevalidbycheckingourinventoryfile.Newcustomer'sordersaresentto
thecreditdepartmentandhelduntiltheyclearacredit
check.(Ifhalfpaymentormoreisincluded,that
orderistreatedasifitwereacreditorderwithgood
credit.)
Validordersareaccumulated
andgroupedintoshippingzonesandtransmittedtothewarehousetobefilled.Afteran
orderisfilled,thecustomeraddressisattached,thebestorrequested
shippingmethoddetermined,postageor
shippingcostscalculated,theorderisshipped,andthewarehouse
inventoryisreduced.Acopyof
thepackingslipgoestoaccountingwhereaninvoiceiscreatedandsenttothecustomer,andthecustomer'saccountupdated.Copiesoforderswithpaymentsand
paymentsgotoaccounting,wherethepaymentsareappliedtothecustomer's
account.Theiteminventoryis
officiallyupdatedinaccounting.
Customercomplaintsgodirectlyto
customerservice.Theyresearchthesituationandrespondtothecustomerassoonaspossible.Any
actiontakenbycustomerservice,whichaffectsaccountingorinventory,is
passedtothemforupdating.Possibleactionsareaneworder,adebit,ora
credit.Theselookexactlyliketheregularorderprocess.
MyapproachistoreadthetextandlookforpeopleandplacesthatIwanttorepresentinmyRPPM.WhenIfindanoun,Idecidewhetheritnamesapersonorplaceon
myprocessmodelorsimplynamesdataorphysicalmaterialIneedtotrack.I’lltrymybest,butdon’thavetobeperfectasthisismyfirstcutatit.
InterviewNotes
Thecustomertriggersallthe
actioninourdepartment.Wereceiveanorder(withorwithoutpayment),a
complaint,orapayment(withorwithoutinvoicecopy)fromthe
customer.Theseareseparatedandthefollowing
actionstakeplace:
Ifitisanorder,weverifyanexistingcustomer'screditstatusandthenweverifythat
theitemnumbersarevalidbycheckingourinventoryfile.Newcustomer'sordersaresentto
thecreditdepartmentandhelduntilthey
clearacreditcheck.(Ifhalf
paymentormoreisincluded,that
orderistreatedasifitwereacreditorderwithgood
credit.)
Validorders
areaccumulatedandgroupedintoshippingzonesandtransmittedtothewarehousetobefilled.Afteran
orderisfilled,thecustomeraddressisattached,the
bestorrequestedshippingmethoddetermined,postageor
shippingcostscalculated,theorderisshipped,andthewarehouse
inventoryis
reduced.Acopyofthepackingslipgoestoaccountingwhereaninvoiceiscreatedandsenttothecustomer,andthecustomer'saccountupdated.Copiesoforders
withpaymentsandpaymentsgotoaccounting,wherethepaymentsareappliedtothecustomer's
account.Theiteminventoryis
officiallyupdated
inaccounting.
Customercomplaintsgodirectlyto
customerservice.Theyresearchthesituationandrespondtothecustomerassoon
aspossible.Anyactiontakenbycustomerservice,whichaffectsaccountingorinventory,is
passedtothemforupdating.Possibleactionsareanew
order,adebit,oracredit.Theselookexactlyliketheregularorderprocess.
Iusuallyusecolor-codingwhileIamdoingthis,soasyouseehere,IhighlightedfivenounsthatIthink
representpeopleorplaces(ourdepartment–akaORDERENTRY,CREDITDEPARTMENT,WAREHOUSE,ACCOUNTING,andCUSTOMERSERVICE)andtheCUSTOMER.Therearealotofothernounsinthenarrative,butIthinktheyareallsimplythingsImayneedtokeeptrackof,soIamgoingtoignorethemfornow.Atthistime,Iamonly
interestedinpeopleandplaces(inthiscase,organizationalunits)wherethedatamightcomefromorgoto.
Sincethetextindicatesthateverythingstartswiththecustomer,Istartmydiagrambydrawingacircleintheupperleft-handcornerofthepageandlabelingitCUSTOMER.Thenextpartmentionedinthenarrativeis
‘ourdepartment’,soIdrawanothercirclediagonallytotherightofandbelowtheCUSTOMERandnameitORDERENTRY.SinceIwilladdflowsbetweentheentities,Ineedtoleaveroomenoughforalabelandoneormorearrowsbetweenthetwocircles.Analyzingthenarrative,IseethatORDERENTRYreceivesOrders,Payments,andComplaintsfromtheCUSTOMER,soI
drawthearrowindicatingtheflowfromtheCUSTOMERtoORDERENTRYandlabelitrespectively.
Next,IreadseveralthingsthatORDERENTRYdoeswiththeincomingflow.Iam
goingtobeinterestedinthesespecificactionslater(onceIknowthescopeofthisproject)butforthetimebeing,Iamignoringthem.AllIamreallyinterestedinatthistimeistheflowofdatabetweendepartmentsandnotwhateachdepartmentdoeswithit.Becauseofthat,thenextflowIfindinthenarrativeisthatORDERENTRYsendsnewcustomerorderstotheCREDIT
DEPARTMENT.ThatcausesmetoaddacirclediagonallyaboveandtotherightoftheORDERENTRYsymbol,labellingitCREDITDEPARTMENT,addinganarrowfromORDERENTRYtotheCREDITDEPARTMENT,andlabellingthearrowNewCustomerOrder.Again,Ineedtomakesurethespacingbetweenthecirclesleavesroomforthearrowandits
label.
Readingon,InotethatvalidordersaretransmittedtotheWAREHOUSE,soIaddacirclelabelled“WAREHOUSE”belowtheonelabelledCREDIT
DEPARTMENTandaddaValidOrderarroworiginatingfromORDERENTRY.Asyoucanbynowsurmise,Iamtryingtodrawthediagramdiagonallyfromtheupperlefttothelowerrightofthepagefollowingtheflowoftheorderasexpressedinthenarrative.Themajorreasonforthisiscultural.Englishandmanyotherlanguagesarewrittenfromlefttorightstartingatthetopofthepage
andcontinuedowntothebottom.Ifmydiagramconformstothisconvention,itiseasierformostpeopletofollow.
Backtothenarrative,thenextflowofdatathatInoteistheWAREHOUSEshippingtheordertothecustomer.Torepresentthisflow,IcoulddrawanarrowfromtheWAREHOUSEaroundtheCREDITDEPARTMENTbacktotheCUSTOMERbutthatwouldviolatemyleft-to-right,top-to-bottomflow.SinceIconsiderthereadabilityofthediagramtobecritical,I’mgoingto
‘cheat’byaddingasecondcirclelabelledCUSTOMER/2(indicatingthatthissymbolisarepeat)diagonallybelowandtotherightoftheWAREHOUSEsymbolandinsertanarrowlabelledShipmentfromtheWAREHOUSEtotheCUSTOMER/2symbol.Thispositioningkeepsthedirectionalflowintact.
Next,IreadacopyofthePackingSlipgoesfromtheWAREHOUSEtoACCOUNTING,soIaddan
appropriatelylabelledcirclebelow,totheleftoftheWAREHOUSEsymbol,andaddtheflowCopyofPackingSlipfromtheWAREHOUSEtoACCOUNTING.ACCOUNTINGsendsaninvoicetothecustomerwhichIrepresentwithanarrowlabelledinvoicefromACCOUNTINGtoCUSTOMER/2,againmaintainingtheproperreadingdirectionofthe
diagram.WhenIread‘copiesoforderswithpaymentsandpaymentsgotoaccounting’,IhavetobacktracktothebeginningofthenarrativetodiscoverthatthesearecomingfromtheCUSTOMERtoORDERENTRY,sothissimplyaddsanewflowfromORDERENTRYtoACCOUNTINGwiththelabelCopyofOrderwithPayment,Payments.UpdatingtheItemInventory
isinternaltoACCOUNTING,soitdoesnotconcernmehere.
Thefinalparagraphisabitmoreconfusing.Firstoff,complaintsgodirectlytoCUSTOMERSERVICE.Again,byrereadingthefirstparagraph,IrecognizethatORDERENTRYreceivedthecomplaints,soIaddthearrowcomplaintsgoingfromORDERENTRYtoCUSTOMERSERVICE.CUSTOMERSERVICEsendsaResponsetothecustomerwhichisanarrow
betweenCUSTOMERSERVICEandCUSTOMER/2.InreadingtheactionsCUSTOMERSERVICEtakes,IconcludethatIalsoneedaflowlabeledDebitorCreditfromCUSTOMERSERVICEtoACCOUNTINGandaNewOrderflowfromCUSTOMERSERVICEbacktotheORDERENTRYdepartment(whichmakesthese“lookexactlyliketheregularorderprocess”as
expressedintheinterviewnotes).
Inowhaveapictureofthe
processdepictedintheinterviewnotesfromMary.Icanuseittopresenttheprocesstoanyaudience.Wecanfocusourdiscussionsabouttheprocessbypointingatthevariousunitsandflows.Asimple,clearpicturelikethisincreasescomprehensionandretention.OnceIhavegainedMary’sapprovalthatmydiagramisanaccuraterepresentationoftheprocessflow,wecaninitiatethe
processofmorphingthisRigorousPhysicalProcessModelintoalegitimateDataFlowDiagram.
VisualizingProjectScope
Questionsansweredinthischapter:
WhatisthedifferencebetweenaRigorousPhysicalProcessModelandaContext-LevelDFD?HowcanI
converttheRPPMtoalegitimateDFD?Whyisthisconversionnecessary?
Atthispoint,Ihaveagreatdiagramofthesituationdescribedinthenarrative.
TheproblemisthatitdoesnotfollowtherulesgoverningsymbolsonaDataFlowDiagram.AllIhavearecircleswithNOUNnamesbutaccordingtotherules,circlesrepresentPROCESSESonaDFDandPROCESSEShavetohaveaVERB/OBJECTname(dosomethingtosomething)!ThereasonforthisisthatIdrewtheRigorousPhysicalProcessModelwithoutknowing
whichofthesedepictedpeopleandplacesareinscopeformyprojectandwhicharenot.IneedtogetananswertothescopequestiontoconvertthisRigorousPhysicalProcessModeltoaContextDataFlowDiagram.
AstheonewearingtheBAhat,Icannotmakeadecisionregardingthescopeoftheproject.Thatdecision
ultimatelyhastobemadebytheprojectsponsor(thecommontitlefortheindividualintheorganizationwhoisfundingtheproject).MaryisourprojectsponsorandtheDepartmentManagerofOrderEntry.HerauthorityislimitedtoanythingtheOrderEntryDepartmentdoes.Basedonherauthority,Icannowconvertmyinitialdiagrambyfollowingafewsimplerules.Firstoff,since
ORDERENTRYisinscopeformyproject,IneedtochangethenounORDERENTRYtoaVERB/OBJECTtomakeitalegitimatefunction.WhatIlookforistheprimaryfunctionthatORDERENTRYperformsandMaryagreesthattheirprimaryfunctionistoENTERORDERS.
BychangingthenameofthecirclefromthedepartmentORDERENTRYtothefunctionENTERORDERS,I
notonlyhavealegitimatefunction,Ialsomadeacriticalpsychologicalshift.Astheprojectprogresses,IamgoingtoanalyzewhathappensinsidetheENTERORDERSprocesswhichwillleadtotherecognitionthatthereareseveralproblemswithhowtheunitcurrentlyprocessesorders(that’swhytheprojectwasinitiated).
IfIleavethenameofthe
objectORDERENTRY,Iwouldbeaccusingthedepartmentofmakingerrors,whichleadstopointingfingersandmakingaccusations.Thiscanresultinalotofpushbackfromtheemployeesinthedepartmentastheyfeelunjustlycriticized.Havingchangedthenamefromthedepartmenttothefunction,IcancriticallyanalyzetheENTERORDERSfunctionandfind
flawsinit.Inthiscase,thesameemployeeswilljoininenthusiasticallybecausetheproblemsarecausedbytheprocessanditisnottheirfault.Thisseeminglysimplestepcanliterallymakeorbreaktheproject.
Next,Iconvertallothercirclesonthediagramtosquarestoturnthemintolegitimateexternalentitiestogettoanalmostlegitimate
DFD.Theonlyremainingproblemisthatthediagramviolatesasimplebutpowerfulruleofdataflowdiagramming,namelythatflowsbetweentwoexternalentitiesarelogicallyoutofscope(sincebothendsoftheflowareoutofscope).
Tocomplywiththatrule,IeliminatetheDebitorCreditflowfromCUSTOMERSERVICEtoACCOUNTING
andtheflowResponsefromCUSTOMERSERVICEtoCUSTOMER/2.IcanfurtherignoretheShipmentflowfromtheWAREHOUSEtoCUSTOMER/2,theCopyofPackingSlipfromtheWAREHOUSEtoACCOUNTING,andtheInvoiceflowfromACCOUNTINGtoCUSTOMER/2.Aftereliminatingalloftheseout-of-scopeflows,Iseethatthe
CUSTOMER/2entityIhadaddedtomaintainthelogicalleft-to-right,top-downflowisunnecessarysinceitisnolongerinvolvedinanydataflows,soIcanalsodeleteit.
InowhaveaperfectlylegitimateContextLevelDataFlowDiagram(akaa“ContextDiagram”,a“Level
O(Zero)DFD”,orsometimesa“Level1DFD”)fortheproject.Notethateveryflowonthediagrameithergoesintoorcomesoutoftheoneprocessonthediagramthatisinscope,namelyENTERORDERS.ThatisoneofthehallmarksofagoodContextLevelDFD.Itsprimaryreasonforbeingistomanagethescopeoftheproject.Assumingmydiagramisanaccurate
representationofthesituation,anythingdoneduringtheENTERORDERSprocessisinscopeandsubjecttochange;everythingelseisoutofscopeforthisproject.Ifanyonestartstodiscussproblemswithselectingthebestshippingmethodforashipment(basedonthenarrativethisisdoneintheWAREHOUSE),Ipointtothediagramtoshowwhythatproblemisirrelevant
tothecurrentscopeoftheprojectandthereforeweshouldnotspendprojectresourcesdiscussingit.
WhenIlookatthisdiagram,Irecognizeadifferentproblem.IamsendingNewCustomerOrderstotheCREDITDEPARTMENTwhereaccordingtothenarrativetheyare‘helduntiltheyclearacreditcheck’.Thatbegsthequestion,‘What
happenstothemoncetheyhaveclearedthecreditcheck?’WhatdoestheCREDITDEPARTMENTdowiththem?WhenIposethatquestiontomyprojectsponsor,sheexplainsthattheCREDITDEPARTMENTsendsapprovedordersbacktoORDERENTRY,whichODERENTRYhastocontinueprocessingthesameasotherordersfromknowncustomerswithgoodcredit.
ThatfactcausesmetoaddtheflowCreditOKOrdersfromtheCREDITDEPARTMENTtotheENTERORDERSprocess.
Asasidenote,itisnotunusualtodiscovermissingflowssuchasthisonceyoustarttoworkwiththeContext
LevelDFD.Theearlierintheprojectthatyoucanidentifythem,thecheaperitistoincorporatethemintoyourprojectwork.Bytheway,ifyouidentifiedthisissuewhileyouwerecreatingtheoriginaldiagramandaddedthisflowatthattime,kudos,youareonestepaheadofme.
HowtoIdentifyInternalProcessesonaDFD
Questionsansweredinthischapter:
Whatdoes“explodingaprocess”mean?Whatisthebusinessvalueofdoingit?Whatprocesses
willthelowerleveldiagramcontain?
GettingtotheNextLevel
AsrevealingandusefulasaContextDiagrammaybe,itiscertainlylackingalotofdetail.InDataFlowDiagramminglingo,thedetailisrevealedby“exploding”or“levelling”complexprocesses(e.g.ORDER
GOODS)toidentifyinternalprocessesandflowsthatarenotvisibleatthehigherlevel.Byexplodingaprocess,youwillalsoidentifyinternaldatastores,meaningplaceswherethedatajustsitswithintheprocesswaitinguntilitisusedbyanotherprocess.DelvingintothislevelofdetailmayallowyoutodiscoveradditionalmissingflowssuchastheCreditOKOrdersflowwedealtwith
previously.
Eachoftheseinternalprocessescreatesand
consumesspecificdata.Ifyoudrawadataflowdiagramatthismoredetailedlevel,youuncoverinternaldataflowsanddatastoresthataremorespecificanddetailedaswell.Anyprocessatanylevelofdetailisapotentialcandidateforexploding.Theonlyfactortoconsideriswhetheryouunderstandtheprocesssufficientlytopredicthowchangewillaffectit.
Forexample,toanalyzehowtheENTERORDERSprocessworks,Ineeddetails.Torepresentit,IamgoingtolookinsidetheENTERORDERSprocessanddefinehowitcurrentlyworks.
MiningforProcesses
GiventhatallIhaveatthistimearemyinterviewnotesfromtheprojectsponsor,Istartbyanalyzingthemtofindtheselower-leveldetails.Specifically,Iamlookingforactionsthatrepresentlowerlevelprocessesperformed
withinENTERORDERS.Weexpressactionsasverbs,buttheverbshavetopassacoupleofothertestsbeforeIwillconsiderthemcandidatesforaprocessonmydetail-leveldiagram:
1. Verb-Object
Iwillonlyacceptverbsintheiractivevoice(e.g.,‘enterorders’isactivewhereas‘orders
areentered’ispassive).WhenIfindaverbinthepassivevoice,Iconvertittoactivevoicetoevaluateifitisalegitimateprocess.Specifically,Itrytogiveeachprospectaproperactive-verb-direct-objectnameasrecommendedfornamingprocessesonaDFD(e.g.,CheckInventory,Separate
Mail).
2. TransformingAction
Thestatedactionhastodosomethingthatwillultimatelyberepresentedintheformofdata,meaningittransformsincomingdataintooutgoingdata.Iftheactionaffectsphysicalmaterial(e.g.,‘Shipment’),the
applicationwillhavetoknowsomethingaboutthematerialandthatsomethingwillalsobedatainsomeformoranother.
3. InScope
TheactionhastobewithinthescopeoftheprocessIamanalyzing(inthiscase,EnterOrders).
OnlyiftheactionpassesallthreeruleswillIconsideritasapotentialinternalprocess.
TomakesurethatmylowerleveldiagramisanaccuratedepictionofhowtheENTERORDERSprocessreallyworkstoday,Iinvolvearepresentativefromthegroupwhoactuallydoesthework.ManagerssuchasMarytypicallydonotneedtoknowthelevelofdetailIneed.
Assumingtheywerepromotedfromtheranks,theyprobablyknowhowtheydidtheworkbackthenbuttheymaynotbeuptodateonexactlyhowtheworkisdonetoday.TogetatrulyaccurateandcurrentpictureoftheENTERORDERSprocess,IreviewthenarrativeandidentifytheinternalprocesseswithPaul,anOrderEntryClerk.SinceprocessesonaDFDareactions,wesimply
lookforverbsstatingorimplyingactionsandthenapplymythreerules.Hereisalistofthecandidatesweidentifyinouranalysisoftheinterviewnotes.
InterviewNotes
Thecustomertriggersallthe
actioninourdepartment.Wereceiveanorder(withorwithoutpayment),a
complaint,orapayment(withorwithoutinvoicecopy)fromthe
customer.Theseareseparatedandthefollowing
actionstakeplace:
Ifitisanorder,weverifyanexistingcustomer'screditstatusandthenweverifythat
theitemnumbersarevalidbycheckingourinventoryfile.Newcustomer'sordersaresentto
thecreditdepartmentandhelduntilthey
clearacreditcheck.(Ifhalf
paymentormoreisincluded,that
orderistreatedasifitwereacreditorderwithgood
credit.)
Validorders
areaccumulatedandgroupedintoshippingzonesandtransmittedtothewarehousetobefilled.Afteran
orderisfilled,...
Afterapplyingour
aforementionedrules,thefollowingpictureemerges:
Ananalysisoftheremaining
interviewnotesdoesnotrevealanyadditionalactionsthatareinscopeANDtransformdata.Asyoucansee,outoftheratherlengthyinterviewnotesfromMaryweactuallyidentifiedonlyfourinternalprocessesthatarepartoftheENTERORDERSprocess:
SORTMAIL
VERIFYCREDIT
VALIDATEITEMS
GROUPVALIDORDERS
ALevel2DataFlowDiagramwillshowhowthesefourinternalprocessestransformtheincomingflowstocreatealloutgoingflows.Whiledrawingthediagram,wemaydiscovermissingflowsand/ormissinginternalprocesses.Thatisnotabad
thing;itisoneofthemajorbenefitsofexplodingorlevelingaprocess.
DrawingaDetailLevelDFD
Questionsansweredinthischapter:
Whatisasimpleapproachfordrillingdownintoaprocess?WhydoitandwherecanIstart?HowcanI
showtheinternalprocessesandflowsthatproducetheresults?
LookingattheContextdiagram,the“Orders,Complaints,andPayments”dataflowfromthe
CUSTOMERiswhereitallstartsandlookingatourlistofpotentialinternalprocesses,SORTMAILappearstobethefirststepintheprocess.
Thecustomertriggersalltheactioninourdepartment.We
receiveanorder(withorwithoutpayment),a
complaint,orapayment(withorwithoutinvoicecopy)fromthecustomer.Theseareseparatedand
thefollowingactionstakeplace:
Therefore,IstartmydetaileddiagramontheleftsideofanewsheetofpaperwiththeOrders,Complaints,andPaymentsflowcomingfromtheleftintotheprocessSORTMAIL.Bytheway,dataflowdiagramstendtogrowwide
asopposedtohighsoIsuggestdrawingthediagramin‘Landscape’orientation.Withthatlayoutoption,Iamgoingtotrytosimplydrawthediagramhorizontallyacrossthemiddleofthepage,leavingspacebothaboveandbelowthesymbolsforadditionalinformationthatIsomehowalwaysneed.
NotethatIamexplodingaprocessENTERORDERS
fromahigherleveldiagramwhichclearlyshowstheOrders,Complaints,andPaymentsdataflowcomingfromtheexternalentityCUSTOMER.Technicallyspeaking,Idonothavetorepeattheexternalentitysymbolonthelowerleveldiagram—butIwillifitaddsclarity.
BasedonPaul’sexplanationofwhattheSORTMAIL
processentails,IaddthreeseparateflowsOrders,Complaints,Paymentsastheoutcomeoftheprocess.SincemyprimaryinterestistheOrders,thatisthedataflowgoingouttotherightoftheprocess.Theothertwosecondaryflowscomeoutofthelowerpartoftheprocesssymbol.
Basedonthenarrative,thenextstepintheprocessisVERIFYCREDITsoIaddaprocesswiththatnametothe
rightoftheSORTMAILprocesswiththeOrdersdataflowcomingintoitfromtheleft.
InterviewNotes
Ifitisanorder,weverifyanexistingcustomer'screditstatusand
thenweverifythattheitemnumbersarevalidbycheckingour
inventoryfile.Newcustomer'sordersaresenttothe
creditdepartmentandhelduntilthey
clearacreditcheck.(Ifhalf
paymentormoreisincluded,that
orderistreatedasifitwereacreditorderwithgood
credit.)
Theverb‘Verify’onaprocessmodelalwaysimpliestwoinputs.Ineedsomethingtoverify(inthiscasethecustomerinfofromtheOrder)andsomethingtoverifyitagainst.ThenarrativedoesnotstatewhatthatisbutPaulexplainstomethatheverifiesacustomer’screditstatusbycheckingtheCUSTOMERSdatastore.
Thisrevelationcausesmeto
addthedatastoreCUSTOMERSabovetheVERIFYCREDITprocessandthedataflowCustomerCreditStatusfromCUSTOMERStoVERIFYCREDIT.DrawingthisforcesmetoaskPaulwhathappensifthecustomerisnotintheCUSTOMERSdatastore?“Well,thatwouldmeanitisanewcustomerinwhichcasewesendtheorderovertotheCREDITDEPARTMENTfor
acreditcheck,”Paulreplies.
IrepresentthisknowledgebyaddingadataflowlabeledNewCustomerOrdercomingoutofthebottomoftheVERIFYCREDITprocess.SincetheflowwiththatnameisshownontheContextDiagramgoingfromENTERORDERStotheCREDITDEPARTMENT,IdonothavetodrawtheexternalentityCREDIT
DEPARTMENTonmydetaileddiagram(butIwillifitaddsclarity).
Customerswithgoodcreditgotothenextprocess,whichournarrativeindicatesistheVALIDATEITEMSprocesssoIaddCreditOKOrderscomingoutoftheright-handsideoftheVERIFYCREDITprocessgoingintotheleftsideofthenewVALIDATEITEMSprocess.
InterviewNotes
Ifitisanorder,weverifyanexistingcustomer'screditstatusandthenweverifythattheitemnumbersarevalidbycheckingour
inventoryfile.New
customer'sordersaresenttothe
creditdepartmentandhelduntiltheyclearacreditcheck.(Ifhalf
paymentormoreisincluded,that
orderistreatedas
ifitwereacreditorderwithgood
credit.)
Thatbegsthequestion,“Whathappenstocustomerswithbadcredit?”whichPaulexplainsarealsosenttotheCREDITDEPARTMENT.ThisaddstheflowCreditNOKOrdersdrawnparallel
totheNewCustomerOrdersflowbelowtheprocess.SincebothdataflowsaregoingtotheCREDITDEPARTMENT,Iaddthatexternalentitytothediagramtomakeitvisibleatthislevel.
Havingdonethat,IreferbacktothecontextdiagramandseetheCreditOKOrdersdataflowcomingfromthe
CREDITDEPARTMENTonceanewcustomerhasclearedacreditcheck.IaskPaulandheexplainsthattheseordersgodirectlyintotheVALIDATEITEMSprocessthesameastheCreditOKOrderscomingfromourinternalVERIFYCREDITprocess.Icansimplifymydiagramthenbymergingthetwoincomingflowsandremovingthenamefromthedataflowfromthe
CREDITDEPARTMENT.Iliketokeepthediagramas‘clean’aspossibleastoomuchclutterconfusespeople.Iftwoflowsareidentical,Iwouldliketohavethenameofthedataflowonthediagramwherethetwobecomeone.
Accordingtothenarrative,theVALIDATEITEMSprocessneedsaccesstoanINVENTORYfile,soweadd
thedatastoresymbolwiththatname.WhenIaskPaulwhattheyneedfromtheINVENTORYfiletoverifytheitemnumbers,herepliesItemNumbersandDescriptions,soIaddthatflowfromINVENTORYtoVALIDATEITEMS.
Theaction‘validate’isjustlike‘verify’inthattherewillalwaysbetwopossibleoutcomes,agoodandabad.
OrdersonwhichallitemnumbersarevalidarecalledValidOrdersandtheseareaccumulated—whichisnotalegitimateinternalprocessbutimpliesadatastore.IaddthedataflowValidOrdersgoingouttherightsideofVALIDATEITEMSintoanewdatastorewiththesamename.
AnotherconventionofDFD’sstatesthatifthedataflow
goingintoadatastorehasthesamenameasthedatastoreitself,Idonothavetonamethedataflowasitisself-evident.RemovingthenamefromtheflowallowsmetoshortenthearrowandmovethedatastoreVALIDORDERSclosertoVALIDATEITEMS,whichfreesupspaceforonemoreprocess.
First,however,Ihavetoask
PaulwhathappensifthereisamismatchbetweenanitemnumberanddescriptionontheorderandtheitemnumberanddescriptionontheINVENTORYfile.HerepliesthatwouldmakeitanInvalidOrderwhichtheysendtoCUSTOMERSERVICEsotheycancontactthecustomertoclarifyexactlywhatthecustomerintendedtoorder.Sincethisrevelationisnewtome,Iaddtheexternal
CUSTOMERSERVICEbelowtheVALIDATEITEMSprocessastherecipientoftheComplaintsflowandaddthedataflowInvalidOrderscomingfromVALIDATEITEMStoCUSTOMERSERVICE.
AsalwayswhenIdiscoveranewflowtoanexternal,Ineedtoaskthefollow-onquestion,“Doyouget
anythingback?”
“Sure,wegetaValidOrderbackfromCUSTOMERSERVICE,”Paulreplies.
“AndwhatdoyoudowiththatValidOrder?”
“ItgoesdirectlyintotheVALIDORDERSpilejustlikethoseordersthatpassedtheVALIDATEITEMtest.”
ThisstatementaddstheflowfromCUSTOMERSERVICEtothedatastoreVALIDORDERS.Again,sincethedataflowandthedatastorehavethesamename,Idonotputthenameonthedataflow.
ThefinalinternalprocessonourlistofcandidatesisGROUPORDERSandthenarrativeconfirmsthatvalid
ordersare‘groupedintoshippingzones’,soIaddaprocessGROUPORDERStothediagramandaddadataflowcomingfromtheVALIDORDERSdatastore.
InterviewNotes
Validordersareaccumulated
andgroupedintoshippingzonesandtransmittedtothewarehousetobefilled.Afteran
orderisfilled,thecustomeraddressisattached,thebestorrequested
shippingmethoddetermined,postageor
shippingcostscalculated,theorderisshipped,andthe...
MydiscussionwithPaul
revealsthatSHIPPINGZONESisadatastore,whichIaddabovetheprocessGROUPORDERSandconnectthetwowithadataflowdowntotheprocess.
Thephrase‘transmittedtothewarehouse’representsaflowfromtheGROUPORDERSprocesstotheWAREHOUSE.
InterviewNotes
Validordersareaccumulatedandgroupedinto
shippingzonesandtransmittedtothewarehousetobefilled.Afteran
orderisfilled,thecustomeraddressisattached,thebestorrequestedshippingmethod
determined,postageor
shippingcostscalculated,theorderisshipped,andthe...
Logically,wenamethedataflowGroupsofValidOrderstoindicatethatboththe
validationandgroupingprocessesarecomplete.Asperconvention,IcaneitherputtheWAREHOUSEentityonthediagramorleaveitoff,asitisobviousonthecontextdiagram.
ThenextsentencesintheinterviewnotesfromMarydescribewhattheWAREHOUSEthendoeswiththeorder.TheWAREHOUSEmightbeofinterestifIdecidetocreateadataflowdiagramoftheorderfulfillmentprocess,butinthatcase,IwouldreallyhavetotalktosomeoneintheWAREHOUSEtomakesureIunderstandthatprocess.SincetheWAREHOUSEis
anexternalentity,Idonothavetoworryaboutthatforthisproject.
Atthispoint,wehaveusedalloftheinternalprocessesweidentifiedinourinitialanalysisoftheinterviewnotes.Lookingatthediagram,Inoticethateveryflowleavingoneoftheinternalprocessesgoestoanexternalentityatthislevelwiththeexceptionofthe
Paymentsflow,soIaddACCOUNTINGtothediagramtomakeitconsistent.Voila,wenowhaveafirstcutdataflowdiagramofhowtheENTERORDERSprocessworks.Theonlyquestionis,howcanweconfirmthatitiscomplete?
DiscoveringMissingProcessesandData
Questionsansweredinthischapter:
WhatdoesbalancingaDataFlowDiagrammean?Whatisthebusinessvalueofbalancing?Whatisthe
mostefficientapproachtobalancingaDFD?
Toconfirmthatitisindeedcorrectandcomplete,thenextstepisto‘balance’thetwodiagrams.Whatdoesthatmean?
ThereareactuallytwostepstobalancetheindividuallevelsofDFDs.Thefirststepisverysimpleinthatyouarecomparingflowsenteringandleavingthedetailleveldiagramwiththehigherleveldiagram.Todothat,Ineedtobeabletoviewbothdiagramsatthesametime.
Inourexample,weexplodedtheENTERORDERSprocessfromthecontextdiagram.IfInowcomparetheexplodedversionwiththecontextversion,logicdictatesthatallflowsgoingintoorcomingoutoftheENTERORDERS
processonthecontextdiagramhavetoshowupontheexplodedversiongoingintoorcomingfromoneofthemoredetailedprocessesatthatlevelandviceversa.
Ifinditsimplesttobalancestartingattheupperlevelandcomparingflowsclockwisefromthatdiagramtomakesuretheyallappearonthelowerlevel.IchecktheflowsoffonbothdiagramsasIgo
tohaveavisibletrailandensurethatIamnotmissinganything.Lookingatthecontextdiagram,IseeOrders,Payments,ComplaintscomingfromcustomerintoENTERORDERS.IseethesameflowonthedetailedviewcomingfromCUSTOMERintoSORTMAIL.Theseflowsarethesame;therefore,Iputacheckmarkonthemoneachdiagram.
ContinuingclockwisearoundENTERORDERSontheContextLeveldiagram,IseeaNewCustomerOrdergoingtotheCREDIT
DEPARTMENT.Iseethesameflowinthesamedirectiononthelowerleveldiagram,soIcheckthoseoff.IalsoseematchingCreditOKOrderscomingbackfromtheCREDITDEPARTMENTandcancheckthemoffaswell.
NextIseeValidOrdersgoingfromENTERORDERStotheWAREHOUSE.Onthedetaileddiagram,IseeGroupsofValidOrdersgoingtotheWAREHOUSE.AfterconfirmingwithPaulthatthatistheonlydataflowtothewarehouse,Iwouldliketoremovethediscrepancytoavoidmisinterpretation.Sincethedetailedlevelismorespecific,Ichangethecontext
diagramtoreadGroupsofValidOrdersandcheckbothflowsoff.
Onthecontextdiagram,thenextflowoutofENTER
ORDERSistheCopyofOrderwithPayment,PaymentsbeingsenttoACCOUNTING.OnthedetaillevelIseePaymentsgoingfromSORTMAILtoACCOUNTING,soIcancheckoffthatpartoftheflow,butwhatabouttheotherhalf?Itappearsthatwemissedsomething.
IaskPaulwheretheCopyofOrderwithPaymentcomesfromandheexplainsthatACCOUNTINGrequestedacopyofanyorderthathasanattachedpayment.Asaresult,
whiletheysortthemail,theyseparateorderswithpaymentfromorderswithoutpayment.Oncetheyaredonesorting,theygothroughthestackwithattachedpayments,removeattachedchecksfromorders,makeaphysicalcopyofthatorder,attachthechecktothecopy,andputthecopyoftheorderwiththeattachedcheckonthestackofpaymentsdestinedforACCOUNTING.Ifthe
attachedpaymentisatleasthalfofthetotalorderprice,theoriginalorderisstamped“CreditOK”andsentdirectlytotheVALIDATEITEMSprocess,bypassingtheVERIFYCREDITprocess.
Thisadditionalinformationcreatesaproblem.Obviously,wemissedthislittlenuanceinouroriginalanalysis,sowehavenochoicebuttocorrectthelowerleveldiagramto
reflectthenewlydiscoveredfacts.WeaddaprocessCOPYORDERSw/$betweenSORTMAILandACCOUNTING.WeaddaflowOrdersw/$fromSORTMAILtoCOPYORDERSw/$andthenaddtheoutgoingflowsCopiedOrdersw/$toACCOUNTING,OriginalOrdertoVERIFYCREDIT,andCreditOKORDERSflowtotheVALIDATEITEMSprocess.Ihavetochangethe
OrderflowbetweenSORTMAILandVERIFYCREDITtoreadOrdersw/o$.Inaddition,IchangethecontextdiagramflowCopyofOrderwithPayment,PaymentstoreadCopiedOrdersW/$,Paymentsandcheckmatchingflowsoffonbothdiagrams.
Thatisagreatexampleofhowexplodingandlevelingadataflowdiagramcanidentifyamissingprocess.
Backtothecontextdiagram,IseeaNewOrdercomingin
fromCUSTOMERSERVICE.Onthedetailview,IhaveaValidOrderandaCreditOKOrderbothcomingfromCUSTOMERSERVICE.WhichistheNewOrder?PaulexplainsthattheNewOrderisonethatCUSTOMERSERVICEcreatesinresponsetoacomplaint.ItisconsideredaCreditOKOrderbytheOrderEntryDepartmentandtheyjustchecktheitem
numbers,soIchangetheNewOrderflowonthecontextdiagramtoreadCreditOKOrderandmarkthosetwoflowsoff.Note,IcanonlymarktheCreditOKOrderfromCUSTOMERSERVICEoffonthedetaileddiagramalthoughIhavethreeotherflowsonthatdiagramthatareallnamedCreditOKOrders.IalsomarkthematchingflowsComplaintsgoingfromENTERORDERSto
CUSTOMERSERVICEonbothdiagrams.
Havingcompletedthatstep,IamsatisfiedthatallflowsthatareonthecontextdiagraminvolvingENTERORDERS
aretakencareof.Whatabouttheopposite,haveIcheckedoffalloftheflowscomingintoorleavingthedetaileddiagram?HereIamonlyinterestedinflowsthatarebetweenthedetailedprocessesandexternalentitiesandcanignoretheinternalflowsbetweenprocesses.
StartingwiththedataflowOrders,Payments,ComplaintscomingfromtheCUSTOMER,Iproceedclockwisearoundthelower-leveldiagramtoseeifthere
areanyunmatchedflows.InoteanInvalidItemsdataflowgoingtoCUSTOMERSERVICEthathasnomatchatthecontextlevel.ConfirmingwithPaulthatthedetailedviewiscorrect,IsimplyhavetoaddthatflowtothecontextdiagramflowingfromORDERENTRYtoCUSTOMERSERVICE.Icanthenmarkbothflowsasmatching.
Continuing,IdiscoverthatthedetaileddiagramalsoshowsCUSTOMERSERVICEsendingValidOrdersdirectlyintotheinternaldatastorewiththat
name.Onthecontextleveldiagram,theyonlysendCreditOKOrders.CheckingwithPaul,IdiscoverthatValidOrdersfromCustomerServicearethecorrectedInvalidOrderstheyreceivedfromVALIDATEITEMS.Asaresult,IaddaseparateflowValidOrdersfromCUSTOMERSERVICEtoENTERORDERSonthehigherleveldiagram.
Finally,IfindaCreditNOKOrdergoingtotheCREDITDEPARTMENTonthelowerlevelthatisalsounmatched.Again,sincetheflowiscorrect,Isimplyaddittothecontextdiagramandmarkitoffonbothdiagrams.
Inowhaveawonderfullybalancedsetoftwodiagrams,oneshowingthecontextoftheprojectandtheseconddetailingtheENTERORDERSprocess.Obviously,
ifmyprojecthadincludedtheWAREHOUSEorCREDITDEPARTMENT,Iwouldrepeattheprocessforeachrespectivelyandwouldprobablyidentifyadditionaldisconnectsthere.Giventhescopeofthisproject,Icouldbedoneatthistime.IfIfeelthatallprojectstakeholdersunderstandeveryprocessonmylowerleveldiagramatthelevelofdetailtheyneedtomaketheircontributions,I
wouldconsiderthediagrammingstepcomplete.Otherwise,thereisstillworktobedone.
DetailedProcessandDataSpecifications
Questionsansweredinthischapter:
Whatbusinessvaluedodetailedprocessspecificationsoffer?HowcanIexpressdetailed
specificationsforprocessesanddata?Whatis“metadata”andwhydoyouneedit?
OptionalProcessMini-Specs
Ifwefeelthataprocessonthedetaildiagram,e.g.,theVERIFYCREDITprocess,isstilltoovagueandweneedmoredetail,wecouldexplodethatprocessfollowingthe
stepsIjustoutlined.Indataflowdiagramminglanguage,anyprocessthatyoudonotexplodetoalowerlevelofdetailiscalleda‘FunctionalPrimitive’.FunctionalPrimitivesarenotgoodcandidatesforfurtherexplosionbecauseanalyzingthedataflowswithinthemwouldrevealnothingofvalue.
Nonetheless,youmayneedtodescribewhathappensinsideaFunctionalPrimitiveusingadifferenttooltoenableathoroughanalysisorto
informthedownstreamdeveloperswhattheprocessreallydoes.AdescriptionofaFunctionalPrimitiveiscalleda‘Mini-Spec’ora‘ProcessSpecification’.YouhaveawiderangeofpossibletoolsfordocumentingtheseSpecifications.
Youcoulduseplain,simpleEnglishbywritingabriefdescriptionofhowweSORTMAIL.Inourexample,I
couldwrite:
Themailarrivesbetween8amand10amMondaythroughFriday.TheMailClerkopenseachenvelopeandseparatesthecontentsintofourstacks:OrderswithPayments,OrderswithoutPayments,Payments,andComplaints.Oncethatiscomplete,theMailClerkprocessesthestackofOrderswith
Payments.
Foreachorder,hecarefullyseparatesthecheckfromtheorderwithoutdamagingeither,makesacopyoftheorder,staplesthechecktothecopy,andaddsthecopywithcheckattachedtothestackofPaymentsdestinedforACCOUNTING.Iftheamountofpaymentexceeds50%ofthetotalprice,hestampstheorder“Credit
OK”andputsitonastacklabeledPrepaidOrders;otherwise,heplacestheoriginalorderontheOrderswithoutPaymentstacks.
OncehehasprocessedallOrderswithPayment,theMailClerkdistributesthestackstotheappropriatedepartment:
OriginalOrdersstay
intheOrderEntryDepartmentPaymentsandCopiesofOrderswithPaymentgottoAccountingComplaintsgotoCustomerService
IfyouandyourtargetaudiencearecomfortablewithconceptssuchasPseudoCodeorStructuredEnglish,
youcouldalsowritethespecificationthusly:
Iftheprocessisprimarilyadecision-makingprocessand
yourtargetaudienceiscomfortablewiththem,youcanalsouseadecisiontable(alsocalled‘TruthTables’).Tocreateadecisiontable,openaspreadsheet,andwritedowneachpotentialactionasacolumnheaderstartingwiththesecondcolumn.Ourcolumnheadersforthisexamplewillbe:
Iftheprocessinvolvesalotoflogicalbranching,youmightconsideranActivityDiagram,anEvent-ResponseDiagram,aSystemFlowChart,oranyothertoolsuitedfordepictingconditional
sequencesofactions.
IftheFunctionalPrimitiveisalreadyautomated,considerreferencingexistingdocumentationfromthatapplication.Ifitisnotautomated,checkforaproceduremanualdescribinghowtodoit.
Often,processesarecontrolledbybusinessrules.Youmightconsidersimply
listingtherelevantbusinessrulesasprocessspecifications:
SortMailRules:
1. Orderswithmorethan½paymentarecreditOKorders.
2. Checkswillbeforwardedtoaccountingforimmediatedeposit.
3. Complaintswillbe
forwardedtoCustomerService.
Giventhestateoftechnologytoday,youcanuseyoursmartphonetomakeavideoshowingthepeopleperformingtheprocess.ThekeyhereisthatyouhavemanyoptionsforcapturingandexpressingwhataFunctionalPrimitivedoesandtheseoptionsfarexceedthescopeofthispublication.
EachofthepresentedexamplescontainthesameinformationabouttheSORTMAILprocess.AstheonewearingtheBAhat,youhavetopickthemodeofpresentationthatissuitablefortheprocessitdefinesandthatyouandyourtargetaudiencebothunderstand.
CapturingDataElements
Theothersideofadataflowdiagramisthedata.Recognizethateveryarrowonthediagramrepresentsdataflowingfromsomewheretosomewhereandeverydatastorerepresentsdataatrest.Atthelowestlevelofdetail,
youneedtounderstandexactlywhatdataiscontainedwithineachdataflowandineachdatastore.
Veryoften,problemsina
processarecausedbymissing,incomplete,inaccurate,oruntimelydata.Tobeabletoisolatedataissuesandtodefinetherequirementsforhowafutureapplicationcanavoidthem,youneedtoknowthedataelements.Youcouldconsiderthistheequivalentofexplodingaprocess.Ifyouexplodeadatafloworadatastoretoitslowestlevelofdetail,youfindabunchof
DataElements.
ADataElementisatomicdata,meaningapieceofdatathatonlyhasvalueasawhole.Forexample,thedataflowCreditOKOrdercontainsallofthedatadescribingtheorder(customernameandaddress,itemsordered,orderdate,etc.)andsomeindicatorthatthiscustomerhasgoodcredit.Toshowthedataonyour
dataflowdiagram,youcanlistallofthedataelementsoneverydataflowandeverydatastore.Whereasthislevelofdetailisoverkillformostprojects,itmightbeveryvaluabletoexplodeoneortwodataflowsordatastoresdowntotheelementaryleveltouncoverhiddenproblemsorensureunderstandablerequirements.Youmightalsoconsiderhyperlinkingthedataflowordatastoretoa
worddocumentlistingtherelevantdataelements.
Letuslookataconcreteexample.ThisistheOrderFormthatourexampleuses:
IfIignorethephysicallayoutandlookonlyattheindividualdataelementsontheform,Igetthislist:
OrderDateOrderNumberCustomerPO#CustomerIDCustomerNameShip-ToAddressBill-ToAddressItem#ItemDescriptionUnitPriceQuantityOrderedExtendedPriceDesiredShippingMethodTotalPrice
ThislistrepresentstheminimumdatacontentforeverydataflowonmydiagramthatcontainsthewordOrder(e.g.,Ordersw/$,Ordersw/o$,NewCustomerOrder,etc.).ItisalsothedatacontentforthedatastoreValidOrders.Ofcourse,thatisprimarilybecausethediagramrepresentsamanualprocessinvolvingphysicalorderformsbeingmovedfromoneprocesstoanother.
Therewillbeadditional,flow-specificdataelementsassociatedwiththestatetheorderisin(withpayment,withoutpayment,newcustomer,etc.)butthislistismystartingpoint.
WhatdoestheonewearingtheBAhatneedtocommunicateabouteachofthesedataelementstothesolutionproviderssotheycandotheirjob?Typically,they
needtoknowwhattheelementcontains(itsdescription),wheredoesitcomefrom(itssource),whohastheauthoritytochangeit(itsowner),whatkindofdatadoesitcontain(itstype),howtovalidateitscontents(datarange,validationrules),etc.Collectively,thisdataabouteachdataelementiscalled‘Metadata’.DependingontheroleyouastheonewearingtheBAhathaveonthe
project,capturingandcommunicatingtheMetadatamayormaynotfallintoyourareaofresponsibility.
Ifyoudohavetocapturethis,Irecommendcreatingasimplespreadsheetcontainingallrelevantmetadataabouteachdataelement,forexample:
Obviously,thecolumnsinthespreadsheetcanbedifferentbasedonyourorganization’sneedsandtheproject.Thekeytakeawayhereisthatsolutionprovidersneedto
knowatonofdetailsaboutthedatathatthesolutionwillmanipulate.WhethertheresponsibilityoftheonewearingtheBAhatoranotherrole(i.e.,theonewearingthedataanalysthat)doesthis,itshouldbebusinessdecisionsmadebytheappropriatedecisionmakerswithinthebusinesscommunityandnotlefttotheimaginationofthosetaskedwithdevelopingthesolution
oreventheonewearingtheBAhat.
HorizontalBalancingRevealsMissingDataElements
Ifyouinvestthetimetocreateadataflowdiagram(DFD),makesurethatyouaregettingthemostoutofit.
Youcanusethediagramtoidentifypotentiallymissingdata,redundantdata,andpossibledataconflicts.Wewouldliketointroduceatechniquecalled‘HorizontalBalancing’orthe‘PreservationofData’law.Thetechniquecanbeveryusefulforidentifyingdatadiscrepancies,inconsistencies,andconflictswhicharethreemajorcontributorstoITproject
overrunsandfailures.
BasedontherulesgoverningDFDs,aprocesshastotransformdata,meaningthedataitproduceshastobedifferentthanthedataitconsumes.Logicdictatesthatthedatacomingoutofaprocesscanonlycomefromtwopossiblesources:eitheritcomesdirectlyviaanincomingdataflowORtheprocesscreatesitusingthe
dataitreceives.
Adataflowcancomefromadatastore,anotherprocess,oranexternalentity.Processesneedalgorithmsorbusinessrulestocreatedata.Forexample,thesimpleprocessDetermineAgecontainsthealgorithmAge=CurrentYear(fromtoday’sdate)–BirthYear(fromtheEmployee’sDateofBirth).Algorithmsandbusinessrules
inturnneeddata(gettingtheBirthYearrequiresanEmployeeIDtoselecttheappropriateemployee)whichhastoeithercomeintotheprocessfromanincomingdatafloworitselfbecreatedbyadifferentalgorithmorbusinessrule.Intheend,youshouldaccountforeverydataelementtheprocesscreatesandeverydataelementitneedstocreatetheoutput.
Tosimplifyhorizontalbalancing,focusondatafromtheincomingdataflowthateachprocessneedstocreate
therelevantoutput.Forexample,thephysicalorderformissentfromoneprocesstothenextinourexample,buteachprocessonlyneedsspecificdataelements.Forexample,theVERIFYCREDITprocessonlyneedstheCustomerIDand/orCustomerNametoaccesstheCUSTOMERSdatastore.CustomerIDandCustomerNameareessential;alloftheotherdataelementsonthe
orderformareirrelevanttoaccessingthecustomerdata.
IwilldemonstratethisconceptusingtheVERIFYCREDITprocessfromourretailstoreorderentryexample.
Allthreeoutgoingdataflowshavetheword‘Orders’intheirnamebecausetheydealwithphysicalorderforms.
InmyanalysisoftheOrderFormshowninthelastchapter,Idiscovereditcontainsthedataelements:
OrderDateOrderNumberCustomerPO#CustomerIDCustomerNameShip-ToAddressBill-ToAddressItem#ItemDescription
UnitPriceQuantityOrderedExtendedPriceDesiredShippingMethodTotalPrice
FromthesampleordersPaul,anOrderEntryClerk,provided,Ialsonotethatsomehaveastamp‘AttachedPayment’withadollaramounthandwrittenbelowit.Somealsohavea‘CreditOK’stampandothershaveone
stating‘CreditCheckRequested’.Inriflingthroughthosestamped‘CreditCheckRequested’,IalsofindseveralordersinwhichtheCustomerIDfieldisblank.
Iinitiatehorizontalbalancingstartingwiththe‘norm’ormostcommonflowcreatedbytheprocess.Accordingto
Paul,thatistheCreditOKOrdersdataflowgoingtotheVALIDATEITEMSprocess.WhenIaskPaultoidentifytheEssentialDataElementsonthatflow,hereplies,“TheonlyEssentialDataElementinthiscasewouldbetheCreditOKIndicatorontheorder.Itjustshowsthattheorderisapprovedforfurtherprocessing.”
“Iunderstand.ButIalso
thinkyouwouldneedtoknowwhichorderthat‘CreditOKStamp’ison,wouldn’tyou?”
Paulreplies,“Thatmakessense.IguesswealsoneedtheOrderNumber,whichisassignedwhenwesortthemail.Itisaddedtoeachorderbywhicheverofusissortingthemail.Itsimplyconsistsofthecurrentdateplusa4-digitrunningnumber.The
exampleIhaveherehasordernumber141103_1966writtenonitbywhoeversortedthemailonNovember3,2014.”
Basedonthatinformation,IaddOrder#,CreditOKIndicatorbeneaththelinelabeledCreditOKOrdersinparenthesistoindicatethesearedataelements.
“OK,thenextflowistheCreditNOKOrdersbeingsenttotheCREDITDEPARTMENT.Whatisthe
essentialinformationonthatflow?IassumetheOrderNumberandsomekindofastampindicatingthecreditisnotOK?”
Paul:“Thosewouldbetheoneswith‘CreditCheckRequested’stampedonthem.Thatindicatesitiseitheranewcustomerwhichweindicatebyleavingthe‘CustomerID’blankoranexistingcustomerwhoowes
usfrompreviousorders.”
“Makessense.SoEssentialDatafortheCreditNOKOrdersdataflowwouldbethe‘OrderNumber’andthe‘CheckCreditRequestStamp’,right?DoestheCREDITDEPARTMENTneedanyotherinformationtodealwiththeseorders?”
“Sure,theyneedtoknowthe‘TotalPrice’ontheorderso
theycandeterminewhethertheyshouldOKtheorderandsenditbacktouswiththe‘CreditOKStamp’onitornot.”
“WhatdotheydowithCreditNOKOrdersthatyousendthemthattheydonotapprove?”
“YouwouldhavetoasksomeoneintheCREDITDEPARTMENTthat.Ithink
theysendthemovertoCustomerServicetocontactthecustomersincetheyaretheonlyonesinthecompanywhoarealloweddirectcustomercontact.”
“Ifthatistrue,thatwouldbebetweentheCREDITDEPARTMENTandCUSTOMERSERVICE,bothofwhomareoutofscopeforourprojectsowewon’tworryaboutthose
orders.”IjotdownOrder#,CheckCreditRequestIndicator,TotalPricebelowtheCreditNOKOrderslabel.
“AndIguessthesameistrueforNewCustomerOrders,right?”
“No.Anorderisfromanewcustomerifwecan’tmatchthe‘CustomerName’and‘Bill-To’fromtheorderwithanycustomersinourCUSTOMERSfile.Actually,ifthecustomerprovidesa‘CustomerID’,welookforthatfirstandifwefinditinourfile,wecomparethe
‘CustomerName’and‘Bill-ToAddress’fromthe‘Order’toourfile.Iftheymatch,thenwesimplylookatthecustomer’s‘CreditStatus’andputtherespectivestampontheorder.
“Ifthe‘CustomerID’ontheformisblank,wehavetosearchthealphabeticalcustomerlisttotrytofindthecustomer.Ifwehaveacustomerwithamatching
name,wecomparethe‘Bill-ToAddress’ontheformwiththeoneinourCUSTOMERSfile.Iftheymatch,wefillinthe‘CustomerID’onthe‘Order’andagain,addtherespective‘CreditStatusStamp’.Ifwecan’tfindthecustomereitherbythe‘CustomerID’orbythe‘CustomerName’,westampthe‘OrderCreditCheckRequested’andputitonthepilegoingtotheCREDIT
DEPARTMENT.”
IaddthedataelementsCustomerID,CustomerName,Bill-ToAddress,andCreditStatustothedataflowcomingfromtheCUSTOMERSdatastoreintotheVERIFYCREDITprocess.Inaddition,IaddtheCustomerName,Bill-ToAddress,CheckCreditRequestIndicator,andTotalPrice
belowtheNewCustomerOrderslabelandask,“Doesthataccuratelyrepresentwhatyoujusttoldme?”
Paulreplies,“Ithinkso.Idon’tknowwhethertheCREDITDEPARTMENTneedsanythingelsefromusforaNewCustomerOrder,butwhatyouwrotedownmakessensetome.Iamnotsuretheydon’tneedtheShip-ToAddressforthecustomeraswell.Youmightwanttocheckwiththemtoconfirmthattheydonotneedanythingelse,though.”
“IwillcertainlyrunthisbythemtoseeifthisisallthedatatheyneedtoprocesseitheraNewCustomerOrderoronefromacustomerwithbadcredit.Fornow,wewillassumethattheDataElementsIlistedonthediagramaretheessentialDataElementsoneachflowcomingoutoftheVERIFYCREDITprocess.AsIexplainedearlier,eachofthesedataelementshasto
comeintotheprocessononeoftheincomingdataflowsorbecreatedintheprocess.ComingbacktotheprimarydataflowCreditOKOrders,youtoldmethattheOrder#iscreatedintheSORTMAILprocess,right?”
“Right.That’sthenumberwehavetoaddtomakesurewecankeeptrackoftheorder.”
“Great.”IwriteOrder#
beneaththedataflowlabelsOrdersw/o$andOriginalOrderandadd“Iassumethatthisistruewhethertheorderhadanypaymentattachedornot,correct?”Paulconfirmsmyassumption.
“Furthermore,Iunderstoodyouearliertoindicatethatyoualwaysgeta‘CustomerName’,and‘Bill-toAddress’fromtheorderandsometimesyoualsogeta‘CustomerID’.”
AfterPaulconfirms,IaddthoseDataElementnamesbelowtheOrder#onboth,theOrdersw/o$andOriginalOrderdataflows.IalsonoticethattheTotalPriceisonorderformsoIadditasadataelementtotheOrdersw/o$andtheOriginalOrderdataflows.
Havingdealtwithalloutgoingandincomingflows,InowreviewtheresultswithPaul.“Itappearsthattheonly
dataVERIFYCREDITcreatesistheCreditOKIndicatorortheCheckCreditRequestIndicator.BothofthemarecreatedbasedonthecontentsoftheCustomer’sCreditStatus,whichiscomingoutoftheCUSTOMERSFile.YoufindthecustomerbasedoneithertheCustomerIDorbothCustomerNameandBill-ToAddress.Bothofthemarecominginononeofthetwoorderdataflows.Is
thatallcorrect?”
Paulagrees.
ThePowerofDataFlowDiagrams
Questionsansweredinthischapter:
WhyshouldIdrawaDataFlowDiagram?WhatdoesafullybalancedDFDlooklike?Whatvalue
doesaDFDfragmentprovide?
WhatDoestheDataFlowDiagramDoforYou?
FromtheperspectiveoftheonewearingtheBAhat,theactofcreatingadataflowdiagramisanawakening.
Drawingthediagramforcesyoutoaskquestionsthatyoumightotherwiseoverlook.Itisalsoanawakeningformembersofthebusinesscommunitywhoseprocessyouaredepicting.Thepeopleinthetrenchesandthosemanagingthemquiteoftenhaveneverseenapictureoftheirprocessandapictureactivatespartsofthehumanbrainthatwordscannot.Asaresult,thephrase,“Isee”
takesonawholedifferentmeaningwhenyouarepresentedwithapictureofyourprocess.Forthatreason,IrecommenddrawingaDFDjusttogeteveryoneinvolvedonthesamepage.
OnceyouhaveaDFD,explodingaprocessandbalancingthedatainputsandoutputsbetweenthelevelsoftenrevealsmissingdataflows.
Afterall,noonecanthinkofeverythingatonce.Ifthetoolfindsasinglemisseddataflow,itisprobablywell
worththetimeittooktodrawthediagramandapplythetechnique.Thesameistrueofhorizontalbalancingtorevealmissingdataelements.IfweaskedITtoautomateaprocesswithamissingdataflow,wemostlikelywillendupwithanapplicationthatdoesnotmeetthebusinessneeds.
ITprofessionalsaregenerallyextremelygoodattheirjob
andtheywillmostlikelyrecognizethattheyaremissingsomethingatsomepointinthedevelopmentprocess.Theproblemisthetimingofthediscoveryandtherelatedcostwhentheomissionisdiscovered.Addingamissingprocesslateintheprojectisarelativelysimplestep,butmissingdataoftenaffectsamultitudeofprocesses,makingitoneofthemostexpensiveerrorsfor
ITprojects.Thesimpleactofidentifyingdataelementsandensuringtheircompletenessallowsyoutorecognizeandresolvetheseissuesbeforeyouinvolvedevelopers.Inmyexperience,thatisoneofthemostpowerfulargumentsforspendingtimetodevelopandanalyzeadataflowdiagram.
AFullyBalancedDFD
Torecap,acompletelybalanced(levelled)dataflowdiagramstartsatthetopwithacontextdiagramconsistingofoneormoreprocessesthatareinscopeforyourprojectandallexternalentitieswithwhichthoseprocesses
exchangedata.
EachofthoseLevel1processesexplodestoaLevel2dataflowdiagramdepictingthedetailedprocessesinsidetheLevel1processwithalldataflowsanddatastoresthatareinternaltotheexplodedprocess.EachprocessontheLevel2diagramwouldeitherexplodefurthertoaLevel3DFD(andfromLevel3toLevel4,etc.)orbedescribed
indetailedprocessspecifications.EachdataflowandeachdatastoreonthelowestlevelDFDwouldexplodetoalistofthecontaineddataelements.
CreatingaDFDFragment
AlthoughbalancingacompletelylevelledDFDrevealsdatadiscrepanciesanddisconnects,itmaynotbenecessaryforyourproject.Manypeople(inparticularonprojectsfollowinganAgileapproachtodelivering
technology)onlyneedasmallfragmentofaDFDtounderstandtheinnerworkingsofaspecificprocess.ThetimerequiredtocreateacompletelybalanceddiagramisnotjustifiedifadeveloperonlyneedstoknowhowtheCREDITDEPARTMENTestablishesthecreditlimitforanewcustomer.Inthatcase,aDFDfragmentmightsuffice.
ThefollowingisanexampleofaDFDfragmentbasedonanexercisethatweuseinourinstructor-ledclasses.Totestyourunderstandingoftheconceptspresented,youmightwanttotakethisopportunitytodrawaDFDfragmentusingtheprojectScopeStatementandtheInterviewNotesthatfollowbeforepeekingatoursolution.
ScopeStatement:Thisprojectwillenhanceourweb-basedPolicyMaintenanceSystembyallowingpolicyholderstointeractdirectlywiththeirinsurancepoliciesorclaims.Thesystemwillsupportweb-basedpolicypaymentsandallowprospectstoapplyfortemporarycoveragependingunderwritingrateapproval.Oncethe
applicationisreceivedbyUnderwriting,itwillfollowstandardUnderwritingprocedures.
InterviewNotes:Inthefuture,aprospectwillsubmithis/herapplicationviaourwebsite.Iftheprospectdoesnotyethaveapolicywithus,thesitewillrequestacreditcheckwebserviceandeitherrejectorapprovethe
applicationdirectly.Iftherequestisfromoneofourcurrentcustomersingoodstandingorapprovedviathecreditcheck,thesitewillprovideatemporaryproofofinsurancecertificatethattheprospectcanprintoutandusetoregisterhis/hervehicle.Inanycase,therequestwillthenbeforwardedtounderwritingfornormalprocessing,whichwill
eitherleadtoacceptance(thenorm),modification(overridingawebrejection)orrejection(badrisk).Iftherequestisapproved,apolicywillbeissuedandsenttothecustomerviastandardmail.
Hereisanexampleofthediagramthatmanyofourstudentshaveproducedforthisscenario.
Notethatthisdataflowdiagramshowsabusinessprocessatsomeindeterminatelevelofdetail.Someoftheprocessesmightbeveryhigh-levelwhereasothersareveryspecific.Ifyouneedtounderstandhowanyoftheseprocessesworksindetail,youcould“explode”ittoseeitsinternalprocesses.
Summary
CreatingaDataFlowDiagramisanextremelyrevealingandrewardingstepintheanalysisofabusinessprocess.Ihaveneverusedanyothertoolthatisaseffectiveattriggeringanimateddiscussionsamongstthestakeholders
abouthowabusinessprocessworksandhowitcouldbeimproved.Obviously,creatingthediagramisjustthefirststep.Thediagramopensthedoortoaseriesofspecificbusinessanalysistechniquesthatwillhelpthebusinesscommunityrecognizehowtheiractionsimpactotherdownstreamprocesses.Youcanalsoidentifyproblemareas,timinganomalies,anderror
handlingissuesthatcanleadtomissingrequirements.
Itisimportanttonotethatthediagramisasnapshotintime.Onceyoupresentthebusinesscommunitywiththisversatilevisualaid,theymayimmediatelystarttomakechanges.Becauseofthecumulativeeffectofthosechanges,youshouldneverassumethatthediagramyoucreatedafewmonthsoreven
yearsagoisvalid.Ifyoureallyneedtounderstandthecurrentbusinessprocess,youarebestservedbystartingfromscratchaswedemonstrated.Theproblemyoufaceis,ofcourse,theeffortrequiredtoflushoutallofthedetailspresentedinthebalancingsection.Isitreallyworththetime?
Adataflowdiagramasatoolthatbenefitstheprojector
reducestheriskofpotentialprojectfailurecanbeworthitsweightingold.Werecommendagainstspendingprojectresourcesdevelopingonejustforthesakeofhavingapicture.
“Ithinkbydrawing,soI'lldrawordiagrameverythingfromapieceoffurnituretoastagegesture.Iunderstandthingsbestwhenthey'rein
graphics,notwords.”-RobertWilson
Tableof
ContentsPreface
AbouttheAuthors
TableofContents
IntroductiontoDataFlowDiagrams(DFDs)fortheBusiness
BusinessProcesses,DataFlows,andValueChainsWhyCreateaDataFlowDiagram?
ModelingtheFlowofMaterialandData
VisualizingProjectScope
HowtoIdentifyInternalProcessesonaDFDGettingtotheNextLevel
MiningforProcesses
DrawingaDetailLevelDFD
DiscoveringMissingProcessesandData
DetailedProcessandDataSpecificationsOptionalProcessMini-SpecsCapturingDataElements
HorizontalBalancingRevealsMissingDataElements
ThePowerofDataFlowDiagramsWhatDoestheDataFlowDiagramDoforYou?AFullyBalancedDFDCreatingaDFDFragment
Summary