The importance of a proper requirements gathering process, including detailed use-cases at the beginning of the software development process is often underestimated.
Common problems like feature-bloat, schedule-overruns, customer dissatisfaction are easily avoided. Mandating during the requirements gathering stage, the preparation of an artifact containing a comprehensive list of detailed use-cases of the final system.
2. Disclaimer
The purpose of this slide deck is
to highlight the importance of a
good requirements gathering process
in software development.
(~,~)
Breaking the ENIGMA code was an amazing feat of reverse-engineering.
The events described below are not meant to belittle the task in any way.
2Use-Case is Everything!
3. Remember Alan Turing?
The guy who
developed
the system
used to
defeat the
Nazi
ENIGMA
encryption.
3Use-Case is Everything!
4. Remember Alan Turing?
• …actually, this is Alan Turing.
• Pioneering…
– computer scientist
– Mathematician
– Logician
– Cryptanalyst
– Philosopher
– mathematical biologist
– marathon runner
Why enigma?...
…because no one else
is doing anything
about it and I can
have it to myself…
4Use-Case is Everything!
10. . . . and ran . . .
Use-Case is Everything! 10
11. . . . until it was switched-off.
Use-Case is Everything! 11
12. Requirements? What requirements?
(a.k.a. requirement = requirements)
Use-Case is Everything! 12
Doesn’t work??
The bombe was still running, trying to break the code.
Isn’t that what you wanted!!??
Yes. But the requirement was to break the
code within a “reasonable” time-frame.
Oh! Ok.
Since code is changed daily,
Time to break code < 24hrs.
13. So who gathers use-cases?
13
Project
Manager
Lead Executive
Manager
Software Engineers
Use-Case is Everything!
14. So who gathers use-cases?
14Use-Case is Everything!
…but did not prioritise this over other tasks.
Only to end-up forgetting this when put under a strict deadline.
In fact, Alan Turing did start gathering use-cases early-on…
15. Luckily, someone else was
gathering use-cases !
Each message always starts with…
Use-Case is Everything! 15
Not this guy
Customer facing field engineer
20. Requirements “Features”
What is possible
to engineer
within the feature
What is actually required
to be engineered
within the feature
What is not
part of the feature
(but requested by the customer)
Supported Feature Customer Requirements
20Use-Case is Everything!
21. Requirements “Features”
TODO.
When I have a hammer,
everything looks like a nail to me.
Supported Features Customer Requirements
21Use-Case is Everything!
22. TL;DR
• Gather use-cases before designing.
– Prepare a comprehensive set of use-cases.
• Know all the use-cases before starting out
to implement the design.
• Let the customer know what use-cases the
system will handle once ready.
– Essentially letting the customers know of any shortcomings
in the input requirements provided by them.
Use-Case is Everything! 22