Skip to content

Commit 8bfdb9a

Browse files
authored
Merge pull request InnerSourceCommons#68 from paypal/pattern/30-day-warranty
30 Day Warranty
2 parents 71c533b + 8184cf4 commit 8bfdb9a

1 file changed

Lines changed: 79 additions & 0 deletions

File tree

30-day-warranty.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Title
2+
3+
30 Day Warranty
4+
5+
# Context
6+
7+
Teams depends on another team accepting their contributions so that a component produced by the receiving team can be used by the contributing team. The receiving team does not have the resources, knowledge, permission, inclination to write the contributed component.
8+
9+
- TBD: link to pattern "setting clear expectations for contributing code"
10+
11+
# Problem
12+
13+
A team developing a component which is used throughout an organization is resisting to accept or rejects contributions (feature requests) and as a result blocks progress or is disrupted by frequent escalations.
14+
15+
# Forces
16+
17+
- There is distrust of contributions due to a past history of cheating: teams
18+
submitted half finished contributions and subsequently filed requests for
19+
fixes that make it ready for use in production.
20+
- If code is contributed from outside the team, the team has the natural
21+
suspicion that the other team does not know how to write code that would
22+
meet the teams expectations.
23+
- Each team looks first to help its own leaders achieve their own goals. This direction
24+
of loyalty can complicate resolution of this problem.
25+
- There is a natural aversion to taking responsibility for code not written
26+
by oneself.
27+
- Contributed needs to be heavily rewritten before being accepted into the
28+
codebase.
29+
- There is the fear of the contributors not being available for support with
30+
fixing bugs after the time on contribution.
31+
- Teams fear contributed code will lead to high(er) maintenance costs but do
32+
not know how to control for that.
33+
- Receiving teams may fear that teaching others how to contribute code will
34+
expose technical debt in their system and that visibility may be damaging.
35+
- Receiving teams may not believe that they will get acceptable code no
36+
matter how much mentoring they provide.
37+
- Either team may not feel confident in measuring risks or certifying that
38+
they are mitigated in a contribution; the system itself is somewhat brittle
39+
(may not be ways to fully test and catch all problems).
40+
41+
# Solution
42+
43+
Address the fears of both the receiving and the contributing teams by establishing a 30 day period starting with the time the contributed code goes into production, during which the contributing team consents to provide bug fixes to the receiving team.
44+
45+
Provide clear contribution guidelines spelling out the expectations of the receiving team and the contributing team.
46+
47+
Note that the warranty period could be 45, 60, or 100 days too. The duration may vary based upon the constraints of the project, the software life cycle of the project, commitments to customers, and other factors.
48+
49+
50+
# Resulting Context
51+
52+
- The receiving team is willing to accept contributions and able to share the
53+
workload of initial adaptations/fixes.
54+
- Increased transparency and fairness.
55+
- Keeps escalations from becoming too heavyweight.
56+
57+
# Known Instances
58+
59+
This was tried and proven successful at PayPal.
60+
61+
# Authors
62+
63+
- Cedric Williams
64+
65+
# Acknowledgement
66+
67+
- Dirk-Willem van Gulik
68+
- Padma Sudarsan
69+
- Klaas-Jan Stol
70+
- Georg Grütter
71+
72+
# State
73+
74+
Drafted at the 2017 Spring InnerSource Summit; reviewed 18 July 2017.
75+
76+
# Variants
77+
78+
- Ensure cooperation of dependent teams by making them a community by having
79+
more than one, meritocratically appointed "Trusted Committers" (TCs) take responsibility.

0 commit comments

Comments
 (0)