Even though the current market of ETL tools is graphical, the tools become difficult to read with the details of processing: errors, reject files, etc. A DFD is a diagram that is essential for design and planning purposes. The DFD establishes the partitions in the project (functional, work assignments, phases).
A DFD consists of processes (circles), boxes (external systems and data stores), and arcs (data flows). The simple nomenclature makes it accessible project-wide.
The Data Dictionary is a listing of schemas and data definitions used in the project. It's related to the DFD by the arcs. For every arc, there should be a Data Dictionary entry. The format of the Data Dictionary may vary depending on the project requirements. It can contain detailed entries or a trace amount of information essential to development.
The following DFD is a single process, LoadContactJob, that loads a MySQL datastore. As it's loading, it also queries the MySQL data store via a lookup function. This DFD is a Level 0 DFD which represents most abstract, system-oriented view of the project. Additional levels which break apart LoadContactJob can be added if the project requires; this particular example is ready for coding. Another level down would be nearly identical to the graphical coding.
In today's Agile environments, sometimes this type of documentation gets skipped as developers bear down on the task at hand. But every Extreme or Agile methodology allows for timeboxed activities, and the planning and coordination provided by the DFD and related Data Dictionary will make future sprints, increments, and releases go smoother.