- 
                Notifications
    You must be signed in to change notification settings 
- Fork 202
pattern/common-requirements #11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 2 commits
3ee41c4
              4c2c73e
              1c69700
              5d4a893
              7627259
              9d7ef82
              3fb5b47
              2faad14
              File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | 
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| ## Title | ||
| Common Requirements | ||
|  | ||
| ## Context | ||
| Many projects are trying to use common code. There is a shared repository that all the projects access. This pattern applies if there is a Strong Code Owner [pattern to be written] or if there is weak code ownership, or no Benevolent Sponsor [pattern to be written]. Someone (or some project) wrote the code in the first place and contributed it to the repository. The common code is a small percentage of the overall deliverable from any of the projects. Each project has its own delivery schedule, set of deliverables and customers. | ||
| Statement of Problem: The common code in the shared repository isn’t meeting the needs of all the projects that want to use it. | ||
|  | ||
| ## Problem Statement | ||
| The common code in the shared repository isn’t meeting the needs of all the projects that want to use it. | ||
|          | ||
|  | ||
| ## Forces | ||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are there any relevant forces related to the human factor in all this we should consider? For me personally, InnerSource is much more about culture and the human factor than it is about code and processes. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. As a side note, one force that is human-related is that system engineers might tend to try to fill customer requirements locally within their own BL rather than reaching out to other BLs that support the same customer. Might be unrelated to this particular pattern, but this might be an InnerSource donut. | ||
| 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. | ||
| Requirements on code should be derivable from real customer needs. | ||
| The needs of different customers are generally quite similar; however they might be expressed differently or weighted differently between customers. | ||
| 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. | ||
| Reusing code is an important goal to save the company time and money. | ||
|  | ||
| ## Solution | ||
| 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. | ||
|  | ||
| There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. From my old product line days I remember, that bringing about such an alignment requires an incentive for both the customers (usually price and TTM) and for the company itself. Should we mention this here or would that unduly bloat the pattern? Maybe this could go in the Resulting Context section, too. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This sounds like a reasonable thing to add to the pattern at this location. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That's a good comment for resulting context. It's a reflection that the problem (getting alignment) might introduce new problems (that require solutions like discounts). | ||
| ## Resulting Context | ||
| 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. | ||
|          | ||
|  | ||
| ## Author | ||
| Robert Hanmer, 22 Aug 2016, 20 Sept 2016 | ||
|  | ||
| ## Status | ||
| Draft pattern | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this line seems to be duplicated by line 9