Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Specification by Example by Gojko Adzic.pdf
Скачиваний:
198
Добавлен:
12.03.2016
Размер:
13.4 Mб
Скачать

Chapter 7 Illustrating using examples

103

Jonas Bandi worked at TechTalk on rewriting a legacy application for school data management where signiicant complexity resulted from understanding existing legacy data structures and relationships. They expected that Speciication by Example would protect them from boomerangs (see “Watch out for boomerangs” in chapter 4) and bugs, but this didn’t happen. They were inventing examples based on their understanding of the domain. The real legacy data often had exceptions that surprised them. Bandi says:

Even when the scenarios [test results] were green and everything looked good, we still had a lot of bugs because of the data from the legacy application.

To reduce the risk of legacy data surprising the team late in the iteration, try to use realistic data from the existing legacy system in the examples instead of specifying completely new cases.

Using existing data might require some automated obfuscation of sensitive information, and it has an impact on data management strategies for automation. For some good solutions to this problem, see “Test data management” in chapter 9.

Get basic examples directly from customers

When: Working with enterprise customers

Teams that sell enterprise software to several customers rarely have the luxury of involving customer representatives in collaborative speciication workshops. Product managers collect requirements from different customers and decide on release plans. This introduces the possibility of ambiguity and misunderstanding. We can have perfectly precise and clear examples that don’t capture what the customers want.

Ensure

that the

examples

used

to illustrate

the

speciications are realistic.

Realistic

examples

contain

data

that comes

from

the clients.

We can apply the same trick used to ensure shared understanding inside the team when we work with external stakeholders. André Brissette uses customer emails as a starting point for the discussion about automated dialogs in the Talia system:

They would write an email such as, “It would be easier if I could ask this to Talia, and she would tell me this, and then I would be able to do that.” In this case, the user provides the irst draft of the dialog.

104 Speciication by Example

Brissette records emails like these and uses them as the initial examples to illustrate the required features. This ensures that the external stakeholders’ requests are satisied. See igure 7.1 for an example of the resulting speciication. Note that this example should ideally be further reined later. See the section “Scripts are not speciications” in chapter 8.

Figure 7.1 Example of a customer dialog used as a speciication for the Talia system

Adam Knight’s team at RainStor uses this approach to develop an archiving system for structured data. They work with customers to get realistic data sets and expected targets for representative queries. When the customer can’t give them a speciic use case, they push back and ask for examples, sometimes organizing workshops with the customers. A common example when customers can’t give them a speciic use case is when a reseller who doesn’t yet have a buyer wants the system to support something because they suspect it will make it easier to sell. One example is a request to mirror functionality available in email archiving systems. Knight says:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]