設計を捨てて、チームが動き出した日

※ChatGPTを使用して記事を作成しています。

「もう設計の話はやめよう。」
その一言で、会議室の空気が少しだけ軽くなった。

長い間、私たちは「正しいアーキテクチャ」を追い続けていた。
クリーン、MVVM、DI、UseCase、Repository──。
でも、その“正しさ”がいつしかチームを縛っていた。

今回は、設計を一度捨てたことで、チームが本当の意味で動き出した話をしたい。

設計がチームを止めていた

プロジェクトの初期。
私たちは、過去の失敗を繰り返さないために、完璧な設計を目指していた。

  • ViewModelにはロジックを一切書かない
  • Repository層は必ず抽象化
  • UseCaseを1画面につき1つ定義
  • 依存関係はHiltで完全DI化

見た目は美しかった。
しかし、半年後にはこうなっていた。

「どの層を直せばいいか分からない」
「Repositoryが多すぎて探せない」
「UseCaseが増えてメンテ不能」

レビューコメントは「命名規則違反」「層が間違ってる」ばかり。
肝心のUI改善や機能追加は後回し。

私たちは気づかぬうちに、設計を守ることが目的化していた

設計レビューが宗教戦争になった日

ある日、チーム内で設計方針を巡る議論が起きた。
新しい機能を追加したい若手がこう提案した。

「この機能、ViewModel内で処理書いちゃダメですか?
UseCaseに切り出すほどのロジックでもないので…」

すると、すぐに設計原理主義者の私は言い放った。

「いや、それは責務の分離違反だよ。アーキテクチャが崩れる。」

その瞬間、若手の顔が曇った。
──この瞬間だった。
設計の“正しさ”が、成長を止めていた。

彼はこう漏らした。

「なんか最近、設計に怒られてる気がします。」

胸が痛んだ。

転機:「動くこと」を最優先にした日

リリースが迫る中、会議で私は提案した。

「ルールを一度、全部外そう。
今は“動くものを作る”ことだけ考えよう。」

チーム全員が驚いた。
けれど、その日から空気が変わった。

  • ViewModelでAPIを直接叩いてもOK
  • UseCase不要なら作らない
  • Repositoryは抽象化しないで実装クラスのみ
  • テストも必要な範囲だけ

「完璧」ではない。
でも、とにかく動いた。
UIの改善スピードは2倍に上がり、バグ報告も減った。

そして何より、チームの会話が“設計論”から“プロダクトの価値”に戻った。

混沌の中に秩序を見出す

設計を捨てた結果、確かにコードは少し雑になった。
でも、そこには新しいルールが自然に生まれ始めた。

  • 同じ処理を2回書くなら、共通化しよう
  • 無駄にクラスを分けず、理解できる範囲でまとめよう
  • 新メンバーでも3分で流れが分かる構造にしよう

これらは文書化されたルールではない。
「現場が育てた文化」 だった。

人間が動いて、初めて“設計”が意味を持つ。
それを痛感した瞬間だった。

再び設計を取り戻す

半年後、プロジェクトが安定し始めたころ。
私は再び、設計を見直した。
ただし、今度は現実と折り合いをつけた設計にした。

  • 共通UseCaseは「本当に共通化できるもの」だけ
  • RepositoryはDataSourceが2種類あるときだけ定義
  • ViewModelは“UIロジックを含んでもいい”
  • テスト容易性よりも、まず「動く設計」

結果、コードレビューは減り、議論は増えた。
「なんでこの構成にしたんですか?」という質問に、誰もが自分の言葉で理由を説明できるようになった。

設計はチームの鏡だ

後になって気づいた。
設計とは、そのチームの状態を映す鏡だ。

  • コミュニケーションが薄いチームは、層が無駄に厚くなる
  • 責任を押し付け合うチームは、抽象クラスが増える
  • 信頼し合えるチームは、単純なコードで動く

設計を捨てたことで、「チームとしての信頼」を取り戻した。
そして、そこに初めて“設計”が戻ってきたのだ。

教訓:設計は「共有言語」であり、拘束ではない

設計はルールブックではない。
「チーム全員が同じ方向を向くための共有言語」 だ。

完璧な構造を追うより、「誰が見ても理解できるコード」を書くこと。
それが最強のアーキテクチャだと、今は思う。

まとめ

  • 設計を守ることが目的化すると、チームが止まる
  • 一度ルールを外して、自由に動くと本質が見える
  • 設計は“教科書”ではなく“チームの文化”である
  • 人が動けば、設計は自然と整う

エピローグ

設計を捨てるという選択は、勇気がいる。
でも、その勇気がチームを救うことがある。

「設計通りに動かす」ではなく、「動くために設計を変える」──。

この連載を通して伝えたかったのは、“正しさより動きやすさ”を大切にする姿勢だ。

失敗から学び、再び立ち上がる。
それこそが、エンジニアとしての成長の証だと思う。

タイトルとURLをコピーしました