Slide 1

Slide 1 text

© NTT Communications Corporation All Rights Reserved. 実際の業務で⾏った技術選定を通じて感じた 「君たちはどう技術選定をすべきか」 2024年12⽉19⽇ エンジニアの成⻑を応援する忘年LT⼤会2024 NTTコミュニケーションズ株式会社 松永和也

Slide 2

Slide 2 text

© NTT Communications Corporation All Rights Reserved. 2 ⾃⼰紹介 Name︓松永和也 NTTコミュニケーションズ株式会社でソフトウェアエンジニアやってます 主な仕事︓ 内製CI/CDプラットフォーム 「Qmonus Value Stream」の開発運⽤・利⽤導⼊⽀援 (~2024/12) https://www.valuestream.qmonus.net/ X︓ @_mk_net_ mixi2: @mk_net

Slide 3

Slide 3 text

© NTT Communications Corporation All Rights Reserved. 3 前提 - この発表では、実際の業務で⾏ったDBマイグレーションツールの技術選定を振り返って感じた以下の点 について話します - 技術選定をより良く、かつ効率よく行うためにはどのようにしたらいいか - 技術選定する際はもっとこうすればより良くできたのではないか - etc. - 技術(DB)やツール(golang-migrate , atlas etc.)の詳細な話は今回はしません

Slide 4

Slide 4 text

© NTT Communications Corporation All Rights Reserved. 4 君たちはどう技術選定をすべきか

Slide 5

Slide 5 text

© NTT Communications Corporation All Rights Reserved. 5 結論 1.要件はちゃんと⾔語化せよ︕ 2.要件に重みをつけるべし︕ 3.⼈を巻き込みながらやろう︕

Slide 6

Slide 6 text

© NTT Communications Corporation All Rights Reserved. 6 結論 1.要件はちゃんと⾔語化せよ︕ 2.要件に重みをつけるべし︕ 3.⼈を巻き込みながらやろう︕

Slide 7

Slide 7 text

© NTT Communications Corporation All Rights Reserved. 7 実際にあった要件

Slide 8

Slide 8 text

© NTT Communications Corporation All Rights Reserved. 8 実際にあった要件 ❌「既存のsqlcを使った 開発体験」って何︖ 第三者からみたら よくわからない

Slide 9

Slide 9 text

© NTT Communications Corporation All Rights Reserved. 9 実際にあった要件 第三者から⾒ても 理解できるように これくらい具体的に ⾔語化せよ

Slide 10

Slide 10 text

© NTT Communications Corporation All Rights Reserved. 10 結論 1.要件はちゃんと⾔語化せよ︕ 2.要件に重みをつけるべし︕ 3.⼈を巻き込みながらやろう︕

Slide 11

Slide 11 text

© NTT Communications Corporation All Rights Reserved. 11 技術選定は常にトレードオフ - 全ての要件を完璧に満たす技術は(よほどの奇跡が起こらない限り)存在しない - 「アーキテクチャ設計は常にトレードオフ分析なんだ」 - ( by Neal Ford ( O'Reilly Japan ソフトウェアアーキテクチャ・ハードパーツ 著者) アーキテクチャカンファレンス2024 基調講演) - 技術選定も同じ︕︕全ての要件を完璧に満たす技術は存在し得ない、だからトレードオフ分析はMust - そのためにも要件に重み(優先度)をつけるべし︕︕ - どの要件を必ず満たすべきで、どの要件は最悪落としても良いか etc.

Slide 12

Slide 12 text

© NTT Communications Corporation All Rights Reserved. 12 結論 1.要件はちゃんと⾔語化せよ︕ 2.要件に重みをつけるべし︕ 3.⼈を巻き込みながらやろう︕

Slide 13

Slide 13 text

© NTT Communications Corporation All Rights Reserved. 13 どの段階から⼈を巻き込む︖ 要件定義 技術候補調査 候補技術 検証 選定議論

Slide 14

Slide 14 text

© NTT Communications Corporation All Rights Reserved. 14 どの段階から⼈を巻き込む︖ 要件定義 技術候補調査 候補技術 検証 選定議論

Slide 15

Slide 15 text

© NTT Communications Corporation All Rights Reserved. 15 どの段階から⼈を巻き込む︖ 要件定義 技術候補調査 候補技術 検証 選定議論 ❌

Slide 16

Slide 16 text

© NTT Communications Corporation All Rights Reserved. 16 どの段階から⼈を巻き込む︖ 要件定義 技術候補調査 候補技術 検証 選定議論 最初から 巻き込め︕︕

Slide 17

Slide 17 text

© NTT Communications Corporation All Rights Reserved. 17 どの段階から⼈を巻き込む︖ 要件定義 技術候補調査 候補技術 検証 選定議論 最初から 巻き込め︕︕ 第三者からしか 得られない視点も ある 検証の際に ⼿分けもしやすい 要件の⾔語化も ⼀⼈でやるより 皆でやった⽅がしやすい

Slide 18

Slide 18 text

© NTT Communications Corporation All Rights Reserved. 18 結論(最後に再喝) 1.要件はちゃんと⾔語化せよ︕ 2.要件に重みをつけるべし︕ 3.(なるべく最初の段階から) ⼈を巻き込みながらやろう︕

Slide 19

Slide 19 text

© NTT Communications Corporation All Rights Reserved. 19 Fin