Software requirements for developers
| Course length: | 3 days |
| Dates/Locations: | see course schedule |
| Price: | € 1425,– (excluding VAT) |
| Included: all course materials, lunch, coffee, tea, soda, and snacks | |
| Registration: | Online registration form |
This course can also be given in-house. Contact us for more information.
Target audience
You are beginning requirements engineer, or a developer who been involved in requirements engineering for some time, but without much formal training. You have experienced that writing good requirements sounds deceptively simple, but is hard in practice. You may have worked on projects where the requirements seemed clear from the start, but where, a few weeks or months later, developers were uncertain that they were building the right system—or where it became painfully clear that they were building the wrong system. Perhaps you have had painful discussions with customers about the interpretation of the requirements after system delivery.
Knowing that problems with deadlines, budget and quality can be attributed for up to 60% to requirements issues, you would like to have some guidelines for writing better requirements.
What you will learn
You will encounter many kinds of requirements, most of which seem `common sense', but are easy to overlook. You will see how these requirements can be classified into functional requirements, non-functional requirements, and constraints. You will discover that there are more types of stakeholders than you may have thought, and you will be able to identify them. You will learn practical techniques for working with stakeholders on requirements discovery. You will see how use case scenarios form an excellent starting point for requirements gathering, but you will understand that use case scenarios themselves are not the requirements. You will learn writing guidelines for improving correctness, completeness and readability, and avoiding ambiguity. You will see how to ensure that requirements are ultimately derived from business goals, and you will be able to formulate them in such a way that they can be tested and validated. You will understand how requirements engineering fits in iterative software development methodologies. You will see how tools can improve the requirements engineering process.
Course format
The balance between theory and practice in this course is about 70% to 30%. In some of the practical assignments, you will be asked to identify what is good and what isn't about a given use case scenario or requirements specification, and to improve upon in with respect to specific criteria. In other assignments, you are encouraged to draw from examples of your own daily work. Some of the assignments are done individually, others in pairs.
The group size is at most 12 persons, so that the difference in experience between participants will not be too large, and such that we can cater to the individual needs and learning goals of all participants.
If all participants speak Dutch, the course is given in Dutch; otherwise, the course is given in English. All course materials are in English.
As all other 59bits courses, this course is intensive and high-paced, but with sufficient smaller and larger breaks to rejuvenate, and to enable you to to process and retain all course content.
Please make sure to read our general course information.
Course topics/keywords
The following list of topics is not exhaustive, and is meant to give you an impression of what you can expect:
- What are requirements, and why do you need them?
- Requirements flavours: functional, non-functional, constraints.
- Scope; iterative software development does not equal scope creep.
- Where do requirements come from?
- Stakeholders: more than customers or users.
- The importance of clear business goals.
- From business goals to use cases; types of use cases.
- Actors and use case goals; stakeholders and interests.
- Levels of detail in use case scenarios.
- Main success scenario, extensions, and exceptions.
- Linking scenarios: common sub use cases; extension use cases;
- Scenario writing style: formal or casual?
- Structuring and context; guidelines for writing; avoiding pitfalls.
- From use case scenarios to requirements.
- Requirements testability: pass/fail tests.
- Reviewing, quality, and validation.
- Tooling and traceability