Skip to content

Commit 04647bf

Browse files
ErinMBlenucksigruetterspier
authored
Update modular-code.md (#95)
Update modular-code.md Co-authored-by: Johannes Tigges <lenucksi@users.noreply.github.com> Co-authored-by: Georg Grütter <gruetter@gmail.com> Co-authored-by: Sebastian Spier <github@spier.hu>
1 parent b3834f7 commit 04647bf

1 file changed

Lines changed: 22 additions & 6 deletions

File tree

patterns/1-initial/modular-code.md

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,34 +23,50 @@ Development does not want to spend the extra resources needed to develop modular
2323
* There is a learning curve to writing code that can be reused.
2424
* Extra documentation is required for reusable code.
2525
* 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.
26-
* Developers might not know how to write modular code. Education might be needed.
26+
* Developers might not know how to write modular code.
27+
2728
* Might be a fear that if not done properly, quality might be impacted.
28-
* Developers might not have incentive to write modular code (due to their tight schedules and lack of a mandate).
29+
* Developers might have no incentive to write modular code (due to their tight schedules and lack of a mandate).
30+
* If there is frequent turnover of team members, modularization may not be a priority.
2931
* You might be dealing with legacy systems (can't be simply refactored or rewritten).
3032
* Requirements might be different for writing modular code.
3133
* Architectural constraints might impact modularity.
3234
* Developers who develop monolithic code bases might lack the perspective of how modularity might improve how they work.
35+
* Level of communication between teams can impact ability/inclination to modularize.
3336

3437
## Solutions
3538

3639
* 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.
3740
- Developers could get an opportunity to increase their influence in the organization.
41+
- Modular code makes the pathway to open source smoother.
42+
- Modular code facilitates division of labour (as required for work in larger teams, or as an Open Source project)
43+
- Modular projects enable team members to focus on their own smaller assigned tasks.
44+
- Modular code makes Agile implementation easier.
45+
- Modular efforts increase autonomy and accountability for Engineers, which can raise satisfaction and quality.
3846
* 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.
3947
* Offer education. Modular code is well-understood; there is a lot of literature in favor of this.
40-
* Accept the cost of modularization, build time into the release schedule.
48+
* Acknowledge and drive acceptance for the cost of modularization. Build time into the release schedule for this.
4149
* Companies moving to use more open source code will appreciate modularity more over time.
42-
* Modular code is easier to work with, especially for larger teams.
4350
* Mitigate risk and fear of quality degradation from accepting InnerSource contributions.
4451
* Establish a checklist of elements to be checked off to classify a component as reusable.
4552
- There could be requirements on tests, tools and documentation before considering a component as reusable
53+
- Introduce refactoring as organic effort and strive for it to become part of the culture. Refactoring leads to more modular code and reduction of technical debt.
4654
* Establish standards on testing methodology, labeling of repos.
4755

4856
## Resulting Context
4957

50-
Time is spent making the shared code modular so it can be reused.
58+
**Pattern Idea**: Time is spent making the shared code modular so it can be reused.
59+
60+
## Known Instances
61+
62+
Elements of the resolution have been proven by various companies.
5163

5264
## Status
5365

5466
Initial
5567

56-
## Author
68+
## Authors
69+
70+
* Tim Yao, Nokia
71+
* Erin Bank, CA Technologies
72+
* Keerthi Surapaneni

0 commit comments

Comments
 (0)