Skip to content

Commit 2faad14

Browse files
authored
Align with PLoP 2017 draft.
1 parent 3fb5b47 commit 2faad14

1 file changed

Lines changed: 19 additions & 7 deletions

File tree

common-requirements.md

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,35 @@ Many projects are trying to use common code. There is a shared repository that
88
The common code in the shared repository isn't meeting the needs of all the projects that want to use it.
99

1010
## Forces
11-
The project that made the code available has one set of needs. Its needs are similar to what some of the receiving organization wants, but not quite the same.
11+
The project that made the code available has one set of needs. Its needs are similar to what some of the receiving organization wants, but not quite the same.
1212
Requirements on code should be derivable from real customer needs.
13-
The needs of different customers are generally quite similar; however they might be expressed differently or weighted differently between customers.
14-
Many customers want the supplier to help them know what they need.
15-
The company has many “Systems Engineers” writing requirements for the products. These requirements are supposed to be a distillation of customer needs to guide development of the product.
13+
14+
The needs of different customers are generally quite similar; however they might be expressed differently or weighted differently between customers. An example might be how some customers want some result presented in one way while others want it presented in the reverse order---it's simple to do the translation between them, but requires additional coding for one of the cases and the as a result the module that computes the result can't be reused by both customers.
15+
16+
Many customers want the supplier to help them know what they need. The company has many “Systems Engineers” writing requirements for the products. These requirements are supposed to be a distillation of customer needs to guide development of the product.
1617
Reusing code is an important goal to save the company time and money.
1718

1819
## Solution
19-
Align the requirements of the projects so that the code that meets the requirements for one project also meets the needs for the other projects. Decompose the code into smaller pieces for which the many using projects can agree upon requirements.
20+
There are two aspects to solving this problem which should be done in parallel:
21+
- Align the requirements of the projects so that the code that meets the requirements for one project also meets the needs for the other projects.
22+
- Refactor the code into smaller pieces for which the many using projects can agree upon requirements.
2023

2124
Additionally, take advantage of customers expecting the supplier to help elucidate requirements. Bring about the alignment of requirements during the customer negotiations and influence the customers requirements rather than changing the component.
2225

26+
In the example presented above, the supplier helps both customers realize that they want the same thing, and it will save everyone effort (and money) if they agree to accept the result in the same format.
27+
28+
<img alt="Common Requirements" src="/assets/img/CommonReqtsv2.jpg">
29+
2330
## Resulting Context
24-
This might require negotiating requirements changes with the customer. It might also require other involvement by the sales teams and product managers to get alignment on the requirements.
31+
This might require negotiating requirements changes with the customer. The changes might also require involvement by the sales teams and product managers to get alignment on the requirements. The customer might need incentives, such as discounts, to agree to the changes.
32+
33+
A related pattern (to be written) is a circular story-writing exercise reported at one company employing Inner Sourcing.
34+
The developers write a story to solve a problem in one way.
35+
36+
The program managers rewrite the story to better express their needs---keeping the essence the same. By the time it returns to developers though they don't recognize it as what they wanted to do in the first place and so balk at implementing it. The solution to this pattern is to have more seats around the planning table so that story modifications are understood across the project not just in the developer or program manager camps.
2537

2638
## Author
2739
Robert Hanmer, 22 Aug 2016, 20 Sept 2016
2840

2941
## Status
30-
Draft pattern
42+
Shepherded pattern

0 commit comments

Comments
 (0)