- Take requirements and turn them into small stories
- Learn how to use these stories to drive development and testing
- Understand the importance and characteristics of efficient team communication
- Be able to break down stories
- Discover how to evolve stories as new requirements come in
- Relate stories to test driven development and testing
The major problem with requirements is misunderstanding. The people who define, implement, and test the product all have a different understanding of what needs to be done. This misunderstanding begets waste, slipped schedules, and mistrust within the organization. Moreover, big requirement stories are often decomposed into technical tasks that are not focused on the customer’s needs, leading to implementations that are unnecessarily complex to build and maintain.
This course teaches the skills needed to transform uncertain requirements into small, clear and succinct stories that are focused on user needs. It also teaches how to create acceptance tests that verify their correct implementations. Applying these skills will streamline the communication within the organization, hence decreasing rework, raising customer satisfaction, and promoting trust within the organization. Learn how to transform requirements in a collaborative, efficient manner that minimizes the waste associated with software development. The process encompasses requirements, specifications, implementation and testing.
Communication is an essential skill for everyone involved in software development. Increasing communication skills in the team will have an immediate positive effect on:
- the quality of the software being written
- the efficacy of the development process
- the satisfaction of the customers and the developers
In addition, iterative development processes rely on stories to define the work that needs to be done in the iteration. These stories are told from the perspective of the customer, and allow the team to focus on the customer’s needs as it implements the system. When these stories become too large it becomes much harder
- to estimate accurately
- to track the progress of the iteration accurately
- to keep the team focused on the customer needs rather than infrastructure required to implement the big story
The processes of unfolding requirements into stories is a process of discovery which allows those that engage in it to:
- to understand the true nature of the requirement,
- to realistically estimate the effort needed to fulfill it
- to agree on the acceptance criteria that will determine that the effort was well spent
The lack of real understanding of the requirements means that scenarios and technical considerations are overlooked. This results in bad estimates and an adverse impact on planning and organizational stress. To be able to estimate accurately requires that all the information that is needed to make this estimate be made available. In the past that led to excruciatingly long analysis and design periods. This course shows you how to analyze requirements correctly and just-in-time enabling accurate and quick estimates.
There are three classic roles in development:
- the customer – providing the requirements and domain knowledge
- the developer – fulfilling the requirements using their technical knowledge
- the tester – verifying that the system indeed does what the customer wants it to do
What if the developer and the tester have a different understanding of what needs to be done? This will result in the system being rejected by the testers after it has been built which in turn results in rework on the developer’s end, the tester’s end, or both. The problem is that usually the acceptance criterion for the work done by the developer is not defined in advance, but concurrently or after the work is done. This course will show you how to evolve the acceptance criteria as part of the story definition so that the chances of rework are minimized.
Product owners, business analysts, customers who request products, developers, testers, and development team managers.