How to define and validate requirements in an agile environment? © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 1 (31) Much on requirements here! • at •
Download ReportTranscript How to define and validate requirements in an agile environment? © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 1 (31) Much on requirements here! • at •
How to define and validate requirements in an agile environment? © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 1 (31) Much on requirements here! • at • … which is right, because testing and requirements are just two opposite sides of the same coin, • so the best engineering practice is to manage them together… • … which IT industry has always stubbornly refused to do © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 2 (31) We pleaded around the V-letter Testers pleaded: “Please, please, let us check the testability of requirements!” … or attempted to bribe: “If you let us design acceptance tests early, we’ll help you verify and validate the requirements – please?” © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 3 (31) V Or simply cried in desperation: WE WANT BREAD REQUIREMENTS! • But business just said “Let them eat cakes!” • …while developers did not listen at all, busy marching on! © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 4 (31) Like that: BIG BOSSES (wouldn’t listen) WISE SOFTWARE ENGINEERS TRIGGER-HAPPY DEVELOPERS (wouldn’t listen) © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 5 (31) We pleaded around Boehm’s curve: Kill them while they are still small! Barry Boehm © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 6 (31) But nobody would listen… We do not have time with requirements! Best validation is in usage! © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 7 (31) Project managers must focus on possibilities, not risks! Programmers pretended to care… © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 8 (31) Business pretended to control… • On one hand, pretending to run waterfall… • … on the other hand, letting requirements and scope to get out of hand (there even was a fashionable name for this: SOFTWARE CRISIS) © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 9 (31) And this is how it ended © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 10 (31) One day, agile movement arrived © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 11 (31) With religious zeal, © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 12 (31) they invented new terminology, calling well-known things new names, and pretending it was all totally new © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 13 (31) But it worked! and even big bosses would suddenly listen! When agile revolutionaries had arrived © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 14 (31) many geeks were enormously impressed So, how is agile RE? • • • • • Pragmatic and user centred Focus on direct communication Iterative Very disciplined Tightly connected to testing and project management • Convincing to main stakeholders © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 15 (31) Requirements Engineering Old Dream • The need for requirements and requirements specifications is understood and really accepted © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 16 (31) How agile provides it • Agile doesn’t work at all without requirements • (even if it forces you to call them “Product Backlog Items”) Elicitation • • • • • Old Dream Continuous elicitation xxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx One point of contact Prototyping Including developers’ views Common language © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 17 (31) • • • • • How agile provides it Sprints, backlog grooming, sprint demos (reviews) Product owner Sprint demo Sprint planning xxxxxxxxxxxxxxxxxxx User stories using business language Consolidation and negotiation Old Dream • Let stakeholders take the heat of decisionmaking, not pass it to developers © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 18 (31) How agile provides it • Sprint planning with product owner present (provided it works!) • However, noting specific about how the product owner handles these issues Analysis and break-down Old Dream • It should be a continuous process, breaking high-level requirements into chunks small enough to be estimated correctly and implemented fast © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 19 (31) How agile provides it • Breaking down user stories: MMF, planning poker, task identification, INVEST • However: it works much worse between sprints Modelling Old Dream • Often, something in between purely chaotic natural language and over-modelling is needed © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 20 (31) How agile provides it • Agile recommends just that: user stories Specification Old Dream • An SRS is not waste! • Too much SRS is waste! © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 21 (31) How agile provides it • SRS (Product and Sprint Backlogs) are obligatory, but not too detailed, not fully up-front, and ready for changes Traceability Old Dream • Full traceability, even (especially) for big complexity • • • • • © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 22 (31) How agile provides it Less complexity => less need for traceability Much communication is obligatory => harder to loose track In Product Backlog, one point of control Sprint Backlog, small THIS IS NO GUARANTEE! Priorities Old Dream • Exist, are clear, honoured, observed, realistic, flexible © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 23 (31) How agile provides it • This is necessary in release planning and in sprint planning Other attributes • • • • Old Dream Author / owner / responsible Status Quality attributes (upto-date, understandable, atomic, correct…) Testable © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 24 (31) • • • • How agile provides it Product owner… in a way DoD (see next slide) Sprint planning – all must understand, INVESTxxxxxxxxxxxxxxxx xxxxxxxx Acceptance criteria, cross-functional team Requirements status chart © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 25 (31) Test connection • • • • Old Dream Test cases designed together with requirements Testers can ask for clarification Tests ARE requirements On all test levels © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 26 (31) • • • • How agile provides it As acceptance criteria, yes (but not necessarily otherwise!) Yes, encouraged (during sprint planning) ATDD and TDD Not really… acceptance testing kind of makes a problem here Connection to project tasks Old Dream • Very old dream… even PRINCE2® recommends it; project tasks (planning and monitoring) managed together with requirements © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 27 (31) How agile provides it • Sprint planning, sprint task board: no other way but requirements and tasks together • However, it is no longer so simple for „tech stories” and nonfunctional requirements Validation Old Dream • Early validation of requirements themselves („static”) • Early validation through product demo © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 28 (31) How agile provides it • All product backlog grooming activities, sprint planning • Sprint demo (review) Management Old Dream • Effective, and not excessively timeconsuming © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 29 (31) How agile provides it • Essentially, agile methodology is a “requirements management machine” Summing up: • Agile “just implements what requirements engineering has long known should be done”, but… • … with agile, it really WORKS! © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 30 (31) victo.eu/HUSFTEF2013 Agile replaces requirements engineering! Agile RE is just a passing fad! Think for yourself… © Bogdan Bereza ● victo.eu/HUSFTEF2013 ● 31 (31)