Example Workflow

A sample workflow for DDD

Example Workflow - Product Creation

Product Description

Our product will be launched by the user, display a login form, and upon login list the top 20 new stories of the day.

U-Doc

We start with the U-Doc

Login Form
Fill out the username and password fields, and press **Login**. 
The username should be between 4 and 24 letters and must only contain the letters A-Z.  Case *does not* matter.
The password should be between 8 and 16 letters and must only contain letters and numbers.  Case *does* matter.
A successful login will bring you to a news feed page.  An alert will be shown if you have validation issues.

[TODO screenshot | login page]

Newsfeed Page
The newsfeed page lists the top 20 new stories.  Click on a story to navigate away from our app and read it.

[TODO screenshot | newsfeed page]

Notice we added TODO placeholders. The UI team will be able to post the screenshots as they mock up the UI. They will be able to keep changes of the UI in sync with the documentation. Possibly a script will be able to get the screenshot at regular intervals.

P-Doc

[TODO replace | Our application] will allow you to list the top newsfeeds and easily navigate to them.  Best of all, it's free!

Notice the P-Doc summarizes the U-Doc, and contains information only relevant to the purchaser. Also, we have added a TODO to replace text when we have an application name.

D-Doc

Now the developers get involved.

create a test to get the new feed
create a web service that gets the news feed

create a test to check various field inputs
create a validator class

create a form with the fields and button
create a warning dialog

create a form to list the feed and react to clicks

No need to write to documentation. Once we have the form displayed, we update the U-Doc with a temp screenshot. The developers put documentation in the source code.

[TODO screenshot | http://mysite/form.png]

I-Doc

If the developers have any API or configuration specs, they would enter it in the I-Doc first.

To filter the news feed, set a regex filter in your environment before launching.
The name should be 'feed-filter'.

To filter the news source, set a regex filter in your environment before launching.
The name should be 'feed-source'.

You can see the I-Doc audience is different than the U-Doc audience.

P-Doc

Another selling feature!

P-Doc

The news feed source can be easily set and the results can be filtered.

D-Doc

if (getenv("feed-filter")) {
    setFilter(getenv("feed-filter"))
}
if (getenv("feed-source")) {
    setSource(getenv("feed-source"))
}

Example Workflow - Feature Request

Traditionally, When a new feature comes in, it is triaged, and then forwarded to a manager who approves or denies it. If approved, it is sent to the dev team to implement.

In DDD, unless the feature is never going to be implemented, it makes sense to still write the documentation, or at least a clear description, and file in in the appropriate sections.

Receive Request

It would be nice to mark the stories as read after clicking them.

Respond

U-Doc

After clicking on the link, the story will be marked as read.  
You can also manualy mark stories as read or unread by selecting them and choosing the
Mark-Read or Mark-Unread command

[screenshot]

P-Doc

Track read stories and selectivly mark them as read or unread. 

D-Doc

We need to create database and a user login to track stories.
We need a menu and add 2 items
Add unit tests for marking and unmarking
Add unit test for login and logout