@k2works/claude-code-booster 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +42 -42
  3. package/bin/claude-code-booster +79 -79
  4. package/lib/assets/.claude/README.md +162 -162
  5. package/lib/assets/.claude/SKILLS_TEMPLATE.md +100 -100
  6. package/lib/assets/.claude/scripts/generate-inception-deck.mjs +911 -1024
  7. package/lib/assets/.claude/settings.json +11 -11
  8. package/lib/assets/.claude/skills/ai-agent-guidelines/SKILL.md +119 -119
  9. package/lib/assets/.claude/skills/analyzing-architecture/SKILL.md +87 -87
  10. package/lib/assets/.claude/skills/analyzing-business/SKILL.md +117 -117
  11. package/lib/assets/.claude/skills/analyzing-data-model/SKILL.md +80 -80
  12. package/lib/assets/.claude/skills/analyzing-domain-model/SKILL.md +88 -88
  13. package/lib/assets/.claude/skills/analyzing-inception-deck/SKILL.md +137 -137
  14. package/lib/assets/.claude/skills/analyzing-non-functional/SKILL.md +91 -91
  15. package/lib/assets/.claude/skills/analyzing-operation/SKILL.md +91 -91
  16. package/lib/assets/.claude/skills/analyzing-requirements/SKILL.md +87 -87
  17. package/lib/assets/.claude/skills/analyzing-tech-stack/SKILL.md +102 -102
  18. package/lib/assets/.claude/skills/analyzing-test-strategy/SKILL.md +87 -87
  19. package/lib/assets/.claude/skills/analyzing-ui-design/SKILL.md +86 -86
  20. package/lib/assets/.claude/skills/analyzing-usecases/SKILL.md +87 -87
  21. package/lib/assets/.claude/skills/creating-adr/SKILL.md +115 -115
  22. package/lib/assets/.claude/skills/developing-backend/SKILL.md +106 -106
  23. package/lib/assets/.claude/skills/developing-frontend/SKILL.md +96 -96
  24. package/lib/assets/.claude/skills/developing-release/SKILL.md +154 -154
  25. package/lib/assets/.claude/skills/generating-slides/SKILL.md +136 -106
  26. package/lib/assets/.claude/skills/git-commit/SKILL.md +106 -106
  27. package/lib/assets/.claude/skills/killing-processes/SKILL.md +98 -98
  28. package/lib/assets/.claude/skills/managing-docs/SKILL.md +200 -200
  29. package/lib/assets/.claude/skills/managing-operations/DEPLOY.md +77 -77
  30. package/lib/assets/.claude/skills/managing-operations/SETUP_CSHARP.md +80 -80
  31. package/lib/assets/.claude/skills/managing-operations/SETUP_FRONTEND.md +84 -84
  32. package/lib/assets/.claude/skills/managing-operations/SETUP_JAVA.md +75 -75
  33. package/lib/assets/.claude/skills/managing-operations/SKILL.md +156 -156
  34. package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +134 -134
  35. package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +243 -243
  36. package/lib/assets/.claude/skills/orchestrating-project/SKILL.md +193 -193
  37. package/lib/assets/.claude/skills/planning-releases/SKILL.md +222 -222
  38. package/lib/assets/.claude/skills/syncing-github-project/SKILL.md +181 -69
  39. package/lib/assets/.claude/skills/tracking-progress/SKILL.md +164 -164
  40. package/lib/assets/.devcontainer/devcontainer.json +34 -34
  41. package/lib/assets/.env.example +17 -17
  42. package/lib/assets/.gitattributes +4 -4
  43. package/lib/assets/.github/workflows/docker-publish.yml +77 -77
  44. package/lib/assets/.github/workflows/mkdocs.yml +39 -39
  45. package/lib/assets/AGENTS.md +94 -94
  46. package/lib/assets/CLAUDE.md +162 -162
  47. package/lib/assets/README.md +269 -269
  48. package/lib/assets/docker-compose.yml +33 -33
  49. package/lib/assets/docs/assets/css/extra.css +29 -29
  50. package/lib/assets/docs/assets/js/extra.js +44 -44
  51. package/lib/assets/docs/index.md +14 -14
  52. package/lib/assets/docs/reference/CodexCLIMCP/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/351/226/213/347/231/272/343/203/225/343/203/255/343/203/274.md +532 -532
  53. package/lib/assets/docs/reference/CodexCLIMCP/343/202/265/343/203/274/343/203/220/343/203/274/350/250/255/345/256/232/346/211/213/351/240/206.md +341 -341
  54. package/lib/assets/docs/reference/Java/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +578 -578
  55. package/lib/assets/docs/reference/TypeScript/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +465 -465
  56. package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +448 -448
  57. package/lib/assets/docs/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +242 -242
  58. package/lib/assets/docs/reference//343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +2216 -2216
  59. package/lib/assets/docs/reference//343/202/244/343/203/263/343/203/225/343/203/251/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +1878 -1878
  60. package/lib/assets/docs/reference//343/202/250/343/202/257/343/202/271/343/203/210/343/203/252/343/203/274/343/203/240/343/203/227/343/203/255/343/202/260/343/203/251/343/203/237/343/203/263/343/202/260.md +554 -554
  61. package/lib/assets/docs/reference//343/202/263/343/203/274/343/203/207/343/202/243/343/203/263/343/202/260/343/201/250/343/203/206/343/202/271/343/203/210/343/202/254/343/202/244/343/203/211.md +705 -705
  62. package/lib/assets/docs/reference//343/203/206/343/202/271/343/203/210/346/210/246/347/225/245/343/202/254/343/202/244/343/203/211.md +1313 -1313
  63. package/lib/assets/docs/reference//343/203/207/343/203/274/343/202/277/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +311 -311
  64. package/lib/assets/docs/reference//343/203/211/343/203/241/343/202/244/343/203/263/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +599 -599
  65. package/lib/assets/docs/reference//343/203/223/343/202/270/343/203/215/343/202/271/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/345/210/206/346/236/220/343/202/254/343/202/244/343/203/211.md +528 -528
  66. package/lib/assets/docs/reference//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/275/234/346/210/220/343/202/254/343/202/244/343/203/211.md +682 -682
  67. package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +442 -442
  68. package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/203/273/343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273/343/202/254/343/202/244/343/203/211.md +558 -558
  69. package/lib/assets/docs/reference//347/222/260/345/242/203/345/244/211/346/225/260/347/256/241/347/220/206/343/202/254/343/202/244/343/203/211.md +663 -663
  70. package/lib/assets/docs/reference//350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1248 -1248
  71. package/lib/assets/docs/reference//351/201/213/347/224/250/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +392 -392
  72. package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +235 -235
  73. package/lib/assets/docs/reference//351/235/236/346/251/237/350/203/275/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1236 -1236
  74. package/lib/assets/docs/template/ADR.md +30 -30
  75. package/lib/assets/docs/template/README.md +50 -50
  76. package/lib/assets/docs/template//343/201/276/343/201/232/343/201/223/343/202/214/343/202/222/350/252/255/343/202/202/343/201/206/343/203/252/343/202/271/343/203/210.md +12 -12
  77. package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +58 -58
  78. package/lib/assets/docs/template//343/202/244/343/203/263/343/202/273/343/203/227/343/202/267/343/203/247/343/203/263/343/203/207/343/203/203/343/202/255.md +13 -13
  79. package/lib/assets/docs/template//343/203/223/343/202/270/343/203/215/343/202/271/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243.md +379 -379
  80. package/lib/assets/docs/template//345/256/214/345/205/250/345/275/242/345/274/217/343/201/256/343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271.md +68 -68
  81. package/lib/assets/docs/template//350/246/201/344/273/266/345/256/232/347/276/251.md +669 -669
  82. package/lib/assets/docs/template//350/250/255/350/250/210.md +163 -163
  83. package/lib/assets/gulpfile.js +23 -23
  84. package/lib/assets/mkdocs.yml +65 -65
  85. package/lib/assets/ops/docker/mkdoc/Dockerfile +19 -19
  86. package/lib/assets/ops/scripts/journal.js +180 -180
  87. package/lib/assets/ops/scripts/mkdocs.js +82 -82
  88. package/lib/assets/ops/scripts/release.js +431 -431
  89. package/lib/assets/ops/scripts/ssh.js +190 -190
  90. package/lib/assets/ops/scripts/vault.js +299 -299
  91. package/lib/assets/package-lock.json +1653 -1653
  92. package/lib/assets/package.json +40 -40
  93. package/lib/gulpfile.js +37 -37
  94. package/package.json +41 -41
@@ -1,243 +1,243 @@
1
- ---
2
- title: よいソフトウェアとは
3
- description:
4
- published: true
5
- date: 2025-06-27T09:48:46.154Z
6
- tags:
7
- editor: markdown
8
- dateCreated: 2025-06-27T09:35:43.840Z
9
- ---
10
-
11
- # よいソフトウェアとは
12
-
13
- ## ソフトウェアの目的
14
-
15
- - 問題解決:
16
-
17
-
18
- - 単なる「動くプログラム」ではなく問題を解決するもの
19
- - 本質的な目的:
20
-
21
- - ユーザーの問題解決: 課題や不便を解消
22
- - ビジネス価値の創出: 組織やビジネスに利益をもたらす
23
- - 効率化と自動化: 時間や労力を節約
24
- - イノベーションの実現: 新しい体験や可能性を提供
25
-
26
- ## ソフトウェアの価値
27
-
28
- - 機能性:
29
-
30
- ユーザーの問題をちゃんと解決できるか
31
- - 使いやすさ:
32
-
33
- 優れた機能でも使いにくければ意味がない
34
- - 信頼性:
35
-
36
- 安定して動作するか
37
- - 保守性:
38
-
39
- 長期間にわたって改善・維持できるか
40
-
41
- ## よいソフトウェアの必要十分条件
42
-
43
- 変更を楽に安全にできて役に立つソフトウェアであることが必要十分条件である。
44
- 変更を楽に安全にできて役に立つソフトウェアであればよいソフトウェアである。
45
-
46
- 変更を楽に安全にできなくても役に立つソフトウェアはあるのではないか?
47
-
48
- ## よいソフトウェアの内部要因と外部要因
49
-
50
- ### 内部要因
51
-
52
-
53
- ```plantuml
54
- @startuml
55
- title 内部要因
56
-
57
- folder "ビジネス" {
58
- folder "チーム" {
59
- folder "技術" {
60
- }
61
- }
62
- }
63
- @enduml
64
- ```
65
-
66
- 内部要因:自分でコントロールできる部分
67
-
68
- ### 外部要因
69
-
70
- 外部要因:自分でコントロールできない部分
71
-
72
- ## だめなソフトウェア
73
-
74
- ### へろへろスクラム
75
-
76
- へろへろスクラムが続くと、チームは疲弊し、顧客満足度は低下し、技術的負債が蓄積する。 スクラムの名を借りた単なる「現代的な搾取システム」になりかねない。 結局、アジャイルの見かけだけで本質を理解していないマネージャーの自己満足だけが残る。
77
-
78
- ### 動作するきれいなゴミ
79
-
80
- 技術的には完璧なソフトウェアのように見えるが、誰も使わないただのゴミ
81
-
82
- ## よいソフトウェア
83
-
84
- 本当に良いソフトウェアを作るには、以下のバランスが必要:
85
-
86
- 1. 技術的な卓越性 - コードの品質、保守性、拡張性
87
- 1. ビジネス価値 - 市場ニーズ、収益創出、競争優位性
88
- 1. ユーザー中心設計 - 使いやすさ、問題解決力 4. 健全なチーム文化 - 心理的安全性、自己組織化、継続的改善
89
-
90
- ## よいソフトウェアを作るための規律
91
-
92
- ### 規律とは
93
-
94
- > ”規律とは「本質的な部分」と「任意の部分」で構成される一連のルールである。”
95
- > Clean Craftsmanship 規律、基準、倫理 (アスキードワンゴ)
96
-
97
- 本質的な部分・・・よいソフトウェアを作るパワーを与える
98
- 任意の部分・・・よいソフトウェアを作るために従うプラクティス
99
-
100
- ### ソフトウエア開発の3P(プリンシパル・パターン・プラクティス)
101
-
102
- - SOLID原則:
103
-
104
- 単一責任、開放閉鎖、リスコフの置換、インターフェース分離、依存性逆転
105
- - デザインパターン:
106
-
107
- 再利用可能な設計ソリューション
108
- - アーキテクチャパターン:
109
-
110
- ソフトウェアアーキテクチャで発生する問題の解決策
111
- - ドメイン駆動設計:
112
-
113
- ビジネスドメインに焦点を当てた設計
114
- - テスト駆動開発:
115
-
116
- テストを先に書いてから実装
117
- - 継続的デリバリー:
118
-
119
- 小さな変更を頻繁にリリース
120
-
121
- ### サークルオブライフ
122
-
123
- ```plantuml
124
- @startuml
125
- title 内部要因
126
-
127
- folder "ビジネス" {
128
- object チーム全体
129
- object 受入テスト
130
- object 小さなリリース
131
- object 計画ゲーム
132
- folder "チーム" {
133
- object 継続的インテグレーション
134
- object 共同所有
135
- object 持続可能なペース
136
- object メタファー
137
- folder "技術" {
138
- object テスト駆動開発
139
- object リファクタリング
140
- object シンプルな設計
141
- object ペアリング
142
- }
143
- }
144
- }
145
- @enduml
146
- ```
147
-
148
- #### ビジネスプラクティス
149
-
150
- ```plantuml
151
- @startuml
152
- title 内部要因
153
-
154
- folder "ビジネス" {
155
- object チーム全体
156
- object 受入テスト
157
- object 小さなリリース
158
- object 計画ゲーム
159
- folder "チーム" {
160
- folder "技術" {
161
- }
162
- }
163
- }
164
- @enduml
165
- ```
166
-
167
- #### チームプラクティス
168
-
169
- ```plantuml
170
- @startuml
171
- title 内部要因
172
-
173
- folder "ビジネス" {
174
- folder "チーム" {
175
- object 継続的インテグレーション
176
- object 共同所有
177
- object 持続可能なペース
178
- object メタファー
179
- folder "技術" {
180
- }
181
- }
182
- }
183
- @enduml
184
- ```
185
-
186
-
187
- #### テクニカルプラクティス
188
-
189
- ```plantuml
190
- @startuml
191
- title 内部要因
192
-
193
- folder "ビジネス" {
194
- folder "チーム" {
195
- folder "技術" {
196
- object テスト駆動開発
197
- object リファクタリング
198
- object シンプルな設計
199
- object ペアリング
200
- }
201
- }
202
- }
203
- @enduml
204
- ```
205
-
206
- ### 拡張サークルオブライフ
207
-
208
- ```plantuml
209
- @startuml
210
- title 内部要因
211
-
212
- folder "ビジネス" {
213
- object チーム全体
214
- object 受入テスト
215
- object 小さなリリース
216
- object 計画ゲーム
217
- folder "チーム" {
218
- object 継続的インテグレーション
219
- object 共同所有
220
- object 持続可能なペース
221
- object ドメイン駆動設計
222
- object 戦略的設計
223
- object 戦術的設計
224
- object ユビキタス言語
225
- folder "技術" {
226
- object テスト駆動開発
227
- object リファクタリング
228
- object シンプルな設計
229
- object ペアリング
230
- }
231
- }
232
- }
233
- @enduml
234
- ```
235
-
236
-
237
- ## 結論
238
-
239
- 短期的には変更を楽に安全にできなくても役に立つソフトウェアを作ることはできる。
240
- しかし、時間の経過・外部環境の変化とともに変更を楽に安全にできないため役に立つソフトウェアでなくなる。
241
- 変更を楽に安全にできて役に立つソフトウェアであることが必要十分条件である。
242
- 上記の条件を満たし外部環境の変化に適応し続けるソフトウェアこそよいソフトウェアである。
1
+ ---
2
+ title: よいソフトウェアとは
3
+ description:
4
+ published: true
5
+ date: 2025-06-27T09:48:46.154Z
6
+ tags:
7
+ editor: markdown
8
+ dateCreated: 2025-06-27T09:35:43.840Z
9
+ ---
10
+
11
+ # よいソフトウェアとは
12
+
13
+ ## ソフトウェアの目的
14
+
15
+ - 問題解決:
16
+
17
+
18
+ - 単なる「動くプログラム」ではなく問題を解決するもの
19
+ - 本質的な目的:
20
+
21
+ - ユーザーの問題解決: 課題や不便を解消
22
+ - ビジネス価値の創出: 組織やビジネスに利益をもたらす
23
+ - 効率化と自動化: 時間や労力を節約
24
+ - イノベーションの実現: 新しい体験や可能性を提供
25
+
26
+ ## ソフトウェアの価値
27
+
28
+ - 機能性:
29
+
30
+ ユーザーの問題をちゃんと解決できるか
31
+ - 使いやすさ:
32
+
33
+ 優れた機能でも使いにくければ意味がない
34
+ - 信頼性:
35
+
36
+ 安定して動作するか
37
+ - 保守性:
38
+
39
+ 長期間にわたって改善・維持できるか
40
+
41
+ ## よいソフトウェアの必要十分条件
42
+
43
+ 変更を楽に安全にできて役に立つソフトウェアであることが必要十分条件である。
44
+ 変更を楽に安全にできて役に立つソフトウェアであればよいソフトウェアである。
45
+
46
+ 変更を楽に安全にできなくても役に立つソフトウェアはあるのではないか?
47
+
48
+ ## よいソフトウェアの内部要因と外部要因
49
+
50
+ ### 内部要因
51
+
52
+
53
+ ```plantuml
54
+ @startuml
55
+ title 内部要因
56
+
57
+ folder "ビジネス" {
58
+ folder "チーム" {
59
+ folder "技術" {
60
+ }
61
+ }
62
+ }
63
+ @enduml
64
+ ```
65
+
66
+ 内部要因:自分でコントロールできる部分
67
+
68
+ ### 外部要因
69
+
70
+ 外部要因:自分でコントロールできない部分
71
+
72
+ ## だめなソフトウェア
73
+
74
+ ### へろへろスクラム
75
+
76
+ へろへろスクラムが続くと、チームは疲弊し、顧客満足度は低下し、技術的負債が蓄積する。 スクラムの名を借りた単なる「現代的な搾取システム」になりかねない。 結局、アジャイルの見かけだけで本質を理解していないマネージャーの自己満足だけが残る。
77
+
78
+ ### 動作するきれいなゴミ
79
+
80
+ 技術的には完璧なソフトウェアのように見えるが、誰も使わないただのゴミ
81
+
82
+ ## よいソフトウェア
83
+
84
+ 本当に良いソフトウェアを作るには、以下のバランスが必要:
85
+
86
+ 1. 技術的な卓越性 - コードの品質、保守性、拡張性
87
+ 1. ビジネス価値 - 市場ニーズ、収益創出、競争優位性
88
+ 1. ユーザー中心設計 - 使いやすさ、問題解決力 4. 健全なチーム文化 - 心理的安全性、自己組織化、継続的改善
89
+
90
+ ## よいソフトウェアを作るための規律
91
+
92
+ ### 規律とは
93
+
94
+ > ”規律とは「本質的な部分」と「任意の部分」で構成される一連のルールである。”
95
+ > Clean Craftsmanship 規律、基準、倫理 (アスキードワンゴ)
96
+
97
+ 本質的な部分・・・よいソフトウェアを作るパワーを与える
98
+ 任意の部分・・・よいソフトウェアを作るために従うプラクティス
99
+
100
+ ### ソフトウエア開発の3P(プリンシパル・パターン・プラクティス)
101
+
102
+ - SOLID原則:
103
+
104
+ 単一責任、開放閉鎖、リスコフの置換、インターフェース分離、依存性逆転
105
+ - デザインパターン:
106
+
107
+ 再利用可能な設計ソリューション
108
+ - アーキテクチャパターン:
109
+
110
+ ソフトウェアアーキテクチャで発生する問題の解決策
111
+ - ドメイン駆動設計:
112
+
113
+ ビジネスドメインに焦点を当てた設計
114
+ - テスト駆動開発:
115
+
116
+ テストを先に書いてから実装
117
+ - 継続的デリバリー:
118
+
119
+ 小さな変更を頻繁にリリース
120
+
121
+ ### サークルオブライフ
122
+
123
+ ```plantuml
124
+ @startuml
125
+ title 内部要因
126
+
127
+ folder "ビジネス" {
128
+ object チーム全体
129
+ object 受入テスト
130
+ object 小さなリリース
131
+ object 計画ゲーム
132
+ folder "チーム" {
133
+ object 継続的インテグレーション
134
+ object 共同所有
135
+ object 持続可能なペース
136
+ object メタファー
137
+ folder "技術" {
138
+ object テスト駆動開発
139
+ object リファクタリング
140
+ object シンプルな設計
141
+ object ペアリング
142
+ }
143
+ }
144
+ }
145
+ @enduml
146
+ ```
147
+
148
+ #### ビジネスプラクティス
149
+
150
+ ```plantuml
151
+ @startuml
152
+ title 内部要因
153
+
154
+ folder "ビジネス" {
155
+ object チーム全体
156
+ object 受入テスト
157
+ object 小さなリリース
158
+ object 計画ゲーム
159
+ folder "チーム" {
160
+ folder "技術" {
161
+ }
162
+ }
163
+ }
164
+ @enduml
165
+ ```
166
+
167
+ #### チームプラクティス
168
+
169
+ ```plantuml
170
+ @startuml
171
+ title 内部要因
172
+
173
+ folder "ビジネス" {
174
+ folder "チーム" {
175
+ object 継続的インテグレーション
176
+ object 共同所有
177
+ object 持続可能なペース
178
+ object メタファー
179
+ folder "技術" {
180
+ }
181
+ }
182
+ }
183
+ @enduml
184
+ ```
185
+
186
+
187
+ #### テクニカルプラクティス
188
+
189
+ ```plantuml
190
+ @startuml
191
+ title 内部要因
192
+
193
+ folder "ビジネス" {
194
+ folder "チーム" {
195
+ folder "技術" {
196
+ object テスト駆動開発
197
+ object リファクタリング
198
+ object シンプルな設計
199
+ object ペアリング
200
+ }
201
+ }
202
+ }
203
+ @enduml
204
+ ```
205
+
206
+ ### 拡張サークルオブライフ
207
+
208
+ ```plantuml
209
+ @startuml
210
+ title 内部要因
211
+
212
+ folder "ビジネス" {
213
+ object チーム全体
214
+ object 受入テスト
215
+ object 小さなリリース
216
+ object 計画ゲーム
217
+ folder "チーム" {
218
+ object 継続的インテグレーション
219
+ object 共同所有
220
+ object 持続可能なペース
221
+ object ドメイン駆動設計
222
+ object 戦略的設計
223
+ object 戦術的設計
224
+ object ユビキタス言語
225
+ folder "技術" {
226
+ object テスト駆動開発
227
+ object リファクタリング
228
+ object シンプルな設計
229
+ object ペアリング
230
+ }
231
+ }
232
+ }
233
+ @enduml
234
+ ```
235
+
236
+
237
+ ## 結論
238
+
239
+ 短期的には変更を楽に安全にできなくても役に立つソフトウェアを作ることはできる。
240
+ しかし、時間の経過・外部環境の変化とともに変更を楽に安全にできないため役に立つソフトウェアでなくなる。
241
+ 変更を楽に安全にできて役に立つソフトウェアであることが必要十分条件である。
242
+ 上記の条件を満たし外部環境の変化に適応し続けるソフトウェアこそよいソフトウェアである。
243
243
  よって、良いソフトウェアとは変更を楽に安全にできて役に立つソフトウェアである。