introduction to agile requirements, estimation
DESCRIPTION
A brief summary of Agile Product Management, User stories, Vertical slicing, estimation Overview of TDD, SOLID principlesTRANSCRIPT
![Page 1: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/1.jpg)
Introduction to Agile Software Requirements
Abhilash ChandranDevelopment Manager
Xerox
![Page 2: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/2.jpg)
What are we going to discuss today?
• What stories are• Writing User Story• Estimation• Workshop
![Page 3: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/3.jpg)
Books …
![Page 4: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/4.jpg)
Product Vision
• What the product should look like when ultimately finished– Type of features supported– Type of users– Market share etc.
• Continuous change because of – New knowledge– New customer base– New or changing market conditions
![Page 5: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/5.jpg)
Product Vision…
• Should contain– Product features (as would be listed on the
product box or web site)– Target market/customers– Key differentiators
![Page 6: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/6.jpg)
Cone of uncertainty
![Page 7: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/7.jpg)
Continuous iterations
• Traveling at night• Embrace the change• Write only what you have• Do only what you know• Add new insights
![Page 8: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/8.jpg)
User Roles
• A user role is any type of user that interacts with the system
• Identifying the different types of Users is the first step in Agile Product Management
• Lack of a clear understanding of User Roles – critical requirements can be missed or
misunderstood– Higher probability of developing a wrong software
with unwanted features .
![Page 9: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/9.jpg)
User story
• A sentence or a paragraph that describes functionality of the system from the user’s perspective
As a <type of user>I can <perform some task>[so that I can <achieve some goal>]
![Page 10: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/10.jpg)
User Story…
• As a user,I want to reserve a hotel room
• As a frequent flyer,I want to rebook a past trip so that I save time booking trips I take often.
![Page 11: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/11.jpg)
3 C’s
• Card: The written description of the story• Conversation: Verbal discussions that bring
out further details of the system• Confirmation: the conditions of satisfaction
that are used to determine when the feature is complete– Should also include key conditions or constraints
![Page 12: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/12.jpg)
Conversation
• As a user, I can cancel a reservation.– Does the user get a full or partial refund?– Is the refund to her credit card or is it site credit?– How far ahead must the reservation be cancelled?– Is that the same for all hotels?– For all site visitors? Can frequent travellers cancel
later?– Is a confirmation provided to the user?– How?
![Page 13: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/13.jpg)
Conditions of satisfaction
• As a user, I can cancel a reservation.– Verify that a premium member can cancel the
same day without a fee.– Verify that a non-premium member is charged
10% for a same-day cancellation.– Verify that an email confirmation is sent.– Verify that the hotel is notified of any cancellation
![Page 14: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/14.jpg)
Split Stories
• As a user, I can cancel a reservation.– As a premium site member,
I can cancel a reservation up to the last minute.– As a site visitor, I am emailed a confirmation of
any cancelled reservation.
![Page 15: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/15.jpg)
Epic
• A very large user story
• As a user, I can cancel a reservation.
![Page 16: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/16.jpg)
Start with Epic
• MMF – Minimum Marketable Feature• A basic set of features required for product
which can be marketed
![Page 17: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/17.jpg)
Estimation
• Planning Poker– It is about size not duration– Identify the relative value
![Page 18: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/18.jpg)
Activity
• User story breakdown• Estimation
![Page 19: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/19.jpg)
Part II
• Workshop on Clean code
![Page 20: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/20.jpg)
Book…
![Page 21: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/21.jpg)
Test Driven Development
![Page 22: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/22.jpg)
Demo
• Demo with C# and MS Unit Test
![Page 23: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/23.jpg)
Demo
• Demo with C# & Specflow
![Page 24: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/24.jpg)
Behaviour-driven development
![Page 25: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/25.jpg)
SOLID Principles
• Stands for five basic principles of object-oriented programming and design
• Are guidelines that can be applied while working on software to improve code quality
• Helps in – low coupling, – high cohesion – strong encapsulation
![Page 26: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/26.jpg)
SRP
• Single responsibility principleA class should have only a single responsibility (i.e. only one potential change in the software's specification should be able to affect the specification of the class)
![Page 27: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/27.jpg)
OCP
• Open/closed principleSoftware entities … should be open for extension, but closed for modification
![Page 28: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/28.jpg)
LSP
• Liskov substitution principleObjects in a program should be replaceable with instances of their subtypes without altering the correctness of that program
![Page 29: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/29.jpg)
ISP
• Interface segregation principleMany client-specific interfaces are better than one general-purpose interface.
![Page 30: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/30.jpg)
DIP
• Dependency inversion principleOne should “Depend upon Abstractions. Do not depend upon concretions.
![Page 31: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/31.jpg)
Questions
![Page 32: Introduction to Agile Requirements, Estimation](https://reader035.vdocuments.site/reader035/viewer/2022081505/5564aeb2d8b42a366c8b5533/html5/thumbnails/32.jpg)
Contact Me
• Email : [email protected]• Twitter : https://twitter.com/cabhilash• Blog : http://www.TheAgileSchool.com