Skip to content

Commit 8deb47e

Browse files
authored
Merge pull request InnerSourceCommons#73 from paypal/modular-code
Update modular-code.md
2 parents 90622ac + 3e9f5a6 commit 8deb47e

1 file changed

Lines changed: 22 additions & 6 deletions

File tree

modular-code.md

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
**Title:** ??
1+
**Title:** Modular Code
22

33
**Statement of Problem:**
44
Development does not want to spend the extra resources needed to develop modular components. As a result, shared components are not reused.
@@ -8,18 +8,32 @@ Development does not want to spend the extra resources needed to develop modular
88
* This is a new product/new code, not a legacy product/code.
99
* There is an available repository for sharing code.
1010
* Making code modular takes extra effort and time to develop.
11+
* Time commitments might already have been made for customer deliveries (not changeable).
1112

1213
**Forces:**
1314
* There is a learning curve to writing code that can be reused.
1415
* Extra documentation is required for reusable code.
15-
* If you expose it, there is also the spectre of needing to provide support for it.
1616
* Some companies have a common components group that develops reusable code, but others feel that such components should be developed by those business lines that are using the components and a library of common components could be established.
17+
* Developers might not know how to write modular code. Education might be needed.
18+
* Might be a fear that if not done properly, quality might be impacted.
19+
* Developers might not have incentive to write modular code (due to their tight schedules and lack of a mandate).
20+
* You might be dealing with legacy systems (can't be simply refactored or rewritten).
21+
* Requirements might be different for writing modular code.
22+
* Architectural constraints might impact modularity.
23+
* Developers who develop monolithic code bases might lack the perspective of how modularity might improve how they work.
1724

18-
**Resolution:** ?
19-
* Provide incentives to teams to invest in modular code
25+
**Resolution:**
26+
* Provide incentives to teams to invest in modular code. Modular code is far more reusable. This could work well for large teams when working on modularized projects; team members can focus on their smaller assigned tasks.
27+
- Developers could get an opportunity to increase their influence in the organization.
28+
* Select certain "success projects," teams that will develop reusable code and demonstrate the long term success. This can help motivate others (they see what is possible and what is in it for them). Transparency is critical.
2029
* Offer education. Modular code is well-understood; there is a lot of literature in favor of this.
21-
* Establish a checklist of elements to be checked off to classify a component as reusable
22-
* Select certain "success projects," teams that will develop reusable code and demonstrate the long term success
30+
* Accept the cost of modularization, build time into the release schedule.
31+
* Companies moving to use more open source code will appreciate modularity more over time.
32+
* Modular code is easier to work with, especially for larger teams.
33+
* Mitigate risk and fear of quality degradation from accepting InnerSource contributions.
34+
* Establish a checklist of elements to be checked off to classify a component as reusable.
35+
- There could be requirements on tests, tools and documentation before considering a component as reusable
36+
* Establish standards on testing methodology, labeling of repos.
2337

2438
**Resulting Context:**
2539
Time is spent making the shared code modular so it can be reused.
@@ -28,3 +42,5 @@ Time is spent making the shared code modular so it can be reused.
2842

2943
**Status:**
3044
Donut
45+
46+

0 commit comments

Comments
 (0)