15分アウトプットの途中報告(アーキテクチャ編)

15分アウトプットとは

こちらのQiita記事を実践しました。

議題

今回議題はTiwtterで発見したこれです。

1枚目のドメインがある方を1。
2枚目のMVC的な奴を2と呼びます。

僕の意見

- 1の方が好み
- なぜなら1の方が使う側の意図が明確に提起されておりシンプルにニーズを実現できる
- だが2の方が開発の生産性が高いと思う
- どのタイミングで1 -> 2へ移行できるかが知りたい

新卒、先輩の意見


先輩

- 開発生産性を鑑みると2が好み
- 運用して保守するなら1がいい
- 使い手のニーズを満たすことが最重要でありアーキテクチャはそれを支える基盤
- どれだけ不確実な未来に対応できるのかというのが設計と技術力の見せ所だと思う

新卒

- 1が好み
- 2はrailsをみているようで未来につらみがましそう
- 綺麗な設計こそ正義
- マイクロサービス化を見据えるなら断然2があるべき姿

面白かったのは全員が1がいいと思っている点です。(特に運用をしていく上で)
議論の中で注目したいのは主語と5W1Hです。
誰が恩恵を受けるのか?そしてその恩恵を受けたいのはどのフェーズなのかを明確にした結果さらに議論が深まりました。

2の生産性の高さは開発者の生産性の高さです。
リリース前段階に置いてコアの価値をもつサービスをリリースすることこそが命題です。
サービスをリリースするという命題を達するために寄与してくれるのが1の考えに基づくアーキテクチャでしょう。

1はサービスがリリースされ拡大をしていく中でより最適な形を求めたものです。
より再利用性を高めた開発、責務の切り分けを進め関心ごとに基づきサービスの振る舞いを制御します。
これは運用のフェーズに置ける顧客価値最大化にぶら下がる価値観がうむアーキテクチャでしょう。

さて、みなさんはどちらが好みの形ですか?

学び

- 前提としてビジネスサイドが何をしたいのかを明確にすることが大事。
- 設計に求められるものは見通しと拡張の両立。果たして自分の採用理由でその2つが考えられたか?
- どちらがいいではなく、フェーズと生産性に応じて形を変えられる力量と視点をもたないといけない。

大きな学びとしてはこの辺りでした。
一番は設計を生産性とフェーズに合わせてリファクタリングできるようにコードを書かないといけないね。というものが一番重い学びだったと思います。

そのためにはなるべくステートレスな書き方を心がけ、ロジックの責務をなるべき綺麗に切り分ける必要があります。
この技術は一朝一夕でつかないし一人で身に付けるのは大変です。
しっかりとしたレビューと勉強の両輪があってこそ成り立つことなので、我々若いエンジニアが積極的にやっていかないといけないよねという空気ができたのが一番よかったなと思いました。

まとめ

- 15分でメリデメを話すので思考の整理が重要
- 主語と5W1Hを意識すると建設的な話し合いになる
- 意見をぶつけあうことで互いの知見が累乗的にたまる
- 積極的にアウトプットする姿勢が身に付く

いかがでしょうか?
新卒や新入社員の方が入ってきたタイミングでこういう取り組みをすると
既存社員の学びも深まり、運用しているサービスの問題提起や負債の解消の手がかりになります。

次は15分のアウトプットタイムを文化に押し上げるまでの施策を報告できればと思います。ではまた。

自己研鑽にあてさせていただきます。