Last week I was discussing DAD with a new client and he asked me “Is DAD just an Agile version of RUP?” In a word, no. DAD is a toolkit composed of a hybrid of methods and practices as shown in the diagram. It includes the best of Scrum, Extreme Programming (XP), Agile data and modeling, and yes, the Unified Process (UP). DAD also includes additional content such as agile governance that is not present in any of these methods. As the diagram indicates, probably the method that adds most to DAD is XP, not the UP.
DAD does not prescribe a use case-driven approach, or insist that OOAD be rigorously applied to build out services/components. A use case-driven approach is a potential practice to apply but there is a danger that this could lead to an exhaustive requirements specification which is not particularly agile. We would prefer to use a user story-driven approach if that makes sense within the context of your project. User stories might not be the right choice either. Perhaps you are in a regulatory environment that demands a traditional software requirements specification (SRS). The key point is that you will have to adapt to the situation that you find yourself in. This is why we prioritize the team’s work with a work item list comprised of work items, rather than Scrum’s backlog comprised of user stories. Using a work item list allows us the flexibility to put any type of work onto our backlog, extending the applicability of DAD to many types of projects beyond those for which RUP or Scrum would be ideally suited.
DAD is goal-driven, not artifact-driven. It does not prescribe practices or specific artifacts. Rather, it suggests alternative strategies than can be applied at certain parts of the lifecycle with the pros and cons for each, but which ones you choose is up to you.
In my next post I will describe which aspects of the Unified Process did make it into DAD and why.