After a long pause I would like to share an approach that we use for fast MVP design or at the start of a new project for customers willing to speed up their business with accurate, seamless and continuous innovations using programmable automation.
I think that most delivery managers would agree that a situation where you have to implement projects with limited time and budget, and a demand for real business value, can be described as figure skating on very thin ice.
In my experience the following principles that have proved to be very helpful in these types of situations:
Why do we like DSDM Atern?
- Scrum is good but DSMS Atern is better
Plan & only then act
Behavior Driven Development
Visualization and documentation is better than text
To understand the most important principles of Atern DSDM, let's start from one of my favorite diagrams.
The implementation time and cost are fixed.
Quality has a priority over the system's full functionality.
Applying these principles will enable you to deliver a reliable product as soon as possible which can be used immediately without any doubts about its quality.
To ensure real business value, you should:
- Focus on business needs
Deliver on time
Never compromise on quality
This approach, based on our experience, lets the customer understand that everything goes on as expected. And what is more important we didn't have any questions about coordinating the subsequent stages of work, there was no searching for additional budget funds to solve quality problems. This ideal picture of zero debts is marvelous, and Atern DSDM helps achieve such a state in a project.
The following diagram will help you comply with the principle "Plan first & then act".
First we check the entire construction for implementability/need of implementation:
- Redefine business needs
Estimate the business value that will really be required, involving people from business
Do everything in accordance with the DSDM techniques
Create a high-level functional model: a working prototype and models.
- Coordinate the functionality and plans
Create a prototype, test the entire system
Analyze the prototype, together with business users
Then engage in design and development:
Coordinate the prototype's functionality and timing
Create a prototype for everyday use, then analyze the prototype together with business users, collect user feedback, test logs.
Final stage of implementation:
- Coordinate the functionality with end users
Train users to use the system
Implement the system
Analyze the market
The stages allow you to simplify the processing of Change Requests, test and timely deliver a really needed product. All this is done in accordance with the following DSDM methods:
Achieve the main objectives: deliver on time, within budget, with high quality.
This is a method of prioritizing in accordance with the following priorities:
MUST: a requirement MUST satisfy business needs.
SHOULD: SHOULD the requirement be met if the project's success does not depend on it?
COULD: COULD the requirement be left if it does not have impact on the project's business need?
WON'T: WON'T the fulfillment of the requirement be postponed if we have some time left?
Create prototypes, give them to real users, get feedback, and allow to actually test and use the product in advance.
Test continuously, after each iteration; only through testing we can achieve high quality.
My regular readers (if there are any) remember that visualization is always extremely necessary. Visualize everything with diagrams to make the perception of information easier (see my article Documentation in Pictures
In conclusion, I would like to mention the principle of Behavior Driven Development
¬DD is not a silver bullet, it's a branching of TDD, but "test" is replaced by "behavior", which makes your thinking oriented to checking actually required functions. First, you write tests to check against the specifications, then implement the code of the system itself.
Thus, we work in close collaboration with the customer, supporting all stages with a prototype, striving for high quality standards, and fulfill the requirements that are really crucial for business, within time frames and budget.