How can we avoid misunderstanding, save time and meet business requirements from customers? How can we apply smoothly in the working process? Let's get the right thing at the beginning!
21. www.axon.vnfb.com/AxonActiveVietNam
Our story - Problems
Architecture
Team member lack understanding of other parts.
Are there any
interesting stuff on his
feature?How does his
feature work?
26. www.axon.vnfb.com/AxonActiveVietNam
Basic BDD techniques
Feature: [Title]
As a [Role]
I want [Some Action]
So that [Business Value]
Scenario: [Title]
Given [Context]
And [More Context]
When (I do) [ Action]
And [Other Action]
Then (I should see) [Outcome]
And [More Outcomes]
- Description of feature
- Stakeholder/ User role
- Action to be taken by user
- Business value provided
- Description of scenario
- Preconditions of scenario
- Actions taken in Scenario
- Outcome Expected
30. www.axon.vnfb.com/AxonActiveVietNam
• Time
• Form team and get requirement: 3’
• Team working: 20’
• Short presentation: 3’/ team.
• How?
• Team gets requirement, discusses together, verify with PO,
break down to smaller parts, write BDD.
Work shop
- Discover why using BDD can make the right thing at the beginning
- show 3 first parts ....
- Khue will countinue with our story and basic techniques
- Ask question: have anybody here ever know about BDD?
- Let's watch a short video to have a overview picture about BDD
- Having a lot of BDD definition on the internet, this one maybe simple and easy to understand
- it is sofware development methodology, some people think BDD is just something belong to test, but it's not correct
- it base on user behavior to specify and design application
- one important thing, outside observer should easy to understand
- That is BDD, right now we countinue to find down the reason why we should using BDD for sofware development
- This is a very common circumstance when develop a software
- User/Customer want something like that. Then BA/ PO write requirement base on what user want: .....
- When developer read this, they think everything is clear, They they build a product like this ....
- QA also think it is correct, but it is obviosly wrong, it's not something that user want
- How this situation happen
- A bussiness man clear everything about user need and want, he use a human language to pass the idea to developer
- Developer receive his requirement and trasform it to a language that only computer know, not the bussiness man, ..... java, python, scala, javascript ..ect...
- Now, at this step, can the bussiness man verify his idea ? Of course NOT, because he is not able to know what the strange language here
- Until developer build competely the application, he can verify and try to use this app
- But it take too long, and now it's too late to change or update request
- To prevent this, we need an early confirm from developer by using example
- So that between business man and developer have a common language
- If you are a developer, don't just stay in front of computer and turn your back against your customer
- Try to comunicate, show him what you are going to do. By this way, you can do the right thing at the begining
- Do you understand why we need BDD?
- Very simple but effecient, right?
- Countinue to see BDD benefits that bring to our developer team and customer
- Using BDD means you drawn the way you gonna to go, so that all development work is certainly going the right way, directly to business objectives, peace of mind
- Every effort to build a product always use for final purpose: software development meets user need. BDD can help use to do it, satisfied users means you do a good job
- When you list out all example about user behavior, then you can easy to classify the priority of each feature. So that you can decide the high priority features can be delivered first
- Why? because when you give example, everyone also share understand about it for eachother
- It related to this benefit .... BDD using a shared language. and needless to say, everyone can easy to get into. So they can clear about the project's progression.
- Not only for the current requirement, BDD also support for the future business. Beside meet business needs, it can help PO or BA get new idea, or add some missing behavior for upcomming needs
- Finally, the most important one. BDD can help you to improve quality code. So onething that every business happy is lower cost of maintenance and project risk