Slide 1

Slide 1 text

失敗から学ぶ 技術的負債との正しい歩き方 【リンケージxセレス】~失敗する開発とその対策~

Slide 2

Slide 2 text

技術的負債
 
 
 What is it?

Slide 3

Slide 3 text

技術的負債
 ||
 廃墟
 What is it?

Slide 4

Slide 4 text

What is it? https://www.youtube.com/watch?v=PSCmjrrbNkg

Slide 5

Slide 5 text

ソフトウェアと共に暮らす
 
 そんな暮らし方の話をします
 What is it?

Slide 6

Slide 6 text


 
 
 What is it?

Slide 7

Slide 7 text

技術的負債は
 
 エンジニアを滅ぼす
 What is it?

Slide 8

Slide 8 text

What is it?

Slide 9

Slide 9 text

バルスしないために必要な話します
 
 
 What is it?

Slide 10

Slide 10 text

1. 自己紹介
 2. 技術的負債と共に歩む
 3. プロダクトと向き合え
 4. 技術選定と未来への投資
 5. まとめ
 あじぇんだ

Slide 11

Slide 11 text

1. 自己紹介
 2. 技術的負債と共に歩む
 3. プロダクトと向き合え
 4. 技術選定と未来への投資
 5. まとめ
 あじぇんだ

Slide 12

Slide 12 text

自己紹介
 曽根 壮大(38歳)
 Have Fun Tech LLC 代表社員
 株式会社リンケージ CTO
 
 そ  ね   たけ とも
 ● 日本PostgreSQLユーザ会 勉強会分科会 担当
 ● 3人の子供がいます(長女、次女、長男)
 ● 技術的にはWeb/LL言語/RDBMSが好きです
 ● コミュニティが好き

Slide 13

Slide 13 text

突然の宣伝
 
予防医療のリンケージ
 
 
 ● リモートワークの不安を数値にするストレスチェック ● 女性の健康課題をサポートする ● リモートワーク、ちょっとした心配を相談できる安心をご提供 


Slide 14

Slide 14 text

1. 自己紹介
 2. 技術的負債と共に歩む
 3. プロダクトと向き合え
 4. 技術選定と未来への投資
 5. まとめ
 あじぇんだ

Slide 15

Slide 15 text

技術的負債と共に歩む
 
 
 技術的負債と共に歩む

Slide 16

Slide 16 text

技術的負債と共に歩む
 ↓
 我々自身が
 技術的負債と共に歩む

Slide 17

Slide 17 text

技術的負債と共に歩む

Slide 18

Slide 18 text

ソフトウェアを
 
 継続的にメンテナンスする
 技術的負債と共に歩む

Slide 19

Slide 19 text

当たり前にできていますか?
 
 
 技術的負債と共に歩む

Slide 20

Slide 20 text

なんのためにリリースするの?
 
 なんのために監視するの?
 技術的負債と共に歩む

Slide 21

Slide 21 text

● ソフトウェアを補強する
 ○ ユニットテスト、シナリオテスト
 ● ソフトウエアの状態を把握する
 ○ モニタリング、オブザーバビリティ
 ● ソフトウェアの改善を行う
 ○ リファクタリング、リリース
 当たり前の日常にすべきこと

Slide 22

Slide 22 text

これらはリリースを恐れず
 
 素早く改善サイクルを回すための手段
 技術的負債と共に歩む

Slide 23

Slide 23 text

進捗の麻薬と
 
 Howの呪い
 技術的負債と共に歩む

Slide 24

Slide 24 text

https://soudai.hatenablog.com/entry/2020/08/14/101657 “例えばリリース手順書を作りました!ってな ると作業の内容が変更になるたびに手順書 のメンテナンスをしなければいけない。そうす ると作業が増えるのでリリース方法をできる だけ変更したくないという力学が働きやすくな る。
  その結果、自分たちがリリース方法を変え るだけでより良くしていける可能性があっても 無駄な議論が増えたり、間接的な作業がま た増えたりする。
  こうやって作業が増え、仕事が増え、リソー スがどんどん足りなくなる ”


Slide 25

Slide 25 text

問題にフォーカスする。 
 
 その上で問題を技術で解決する。
 技術的負債と共に歩む

Slide 26

Slide 26 text

当たり前にできていますか?
 
 
 技術的負債と共に歩む

Slide 27

Slide 27 text

当たり前にできていますか?
 ↓
 当たり前の積み重ねの先に共存がある
 技術的負債と共に歩む

Slide 28

Slide 28 text

1. 自己紹介
 2. 技術的負債と共に歩む
 3. プロダクトと向き合え
 4. 技術選定と未来への投資
 5. まとめ
 あじぇんだ

Slide 29

Slide 29 text

???「よっしゃ!作り直すぞ!」
 
 
 プロダクトに向き合え

Slide 30

Slide 30 text

???「Scrumやってみましょうよ」
 
 
 プロダクトに向き合え

Slide 31

Slide 31 text

???「DDDでやればうまくいきます!」
 
 
 プロダクトに向き合え

Slide 32

Slide 32 text

プロダクトに向き合え

Slide 33

Slide 33 text

プロダクトに向き合え

Slide 34

Slide 34 text

Howに囚われるな!!!!
 
 (本日2度目)
 プロダクトに向き合え

Slide 35

Slide 35 text

問題はプロダクトの中にあるし
 
 課題の解き方はプロダクトに左右される
 プロダクトに向き合え

Slide 36

Slide 36 text

って話をすると現れる話
 
 
 プロダクトに向き合え

Slide 37

Slide 37 text

???「リリース優先なんで」
 
 
 プロダクトに向き合え

Slide 38

Slide 38 text

???「リリース優先なんで」
 ↓
 YAGNIを言い訳に使うな!!
 プロダクトに向き合え

Slide 39

Slide 39 text

妥協しなかった者だけが
 
 質とスピードは両立する
 プロダクトに向き合え

Slide 40

Slide 40 text

プロダクトに向き合え https://speakerdeck.com/twada/quality-and-speed-2020-spring-edition

Slide 41

Slide 41 text

プロダクトと向き合った先に
 
 真の目指すべきアーキテクチャがある
 プロダクトに向き合え

Slide 42

Slide 42 text

● リファクタリング
 ○ 振る舞いを変えず、コードだけを変える
 ● リアーキテクチャ
 ○ サービスを変えず、アーキテクチャから変える
 ● リプレース
 ○ サービスから変える
 どこを変えたいのか

Slide 43

Slide 43 text

● リファクタリング
 ○ 振る舞いを変えず、コードだけを変える
 ● リアーキテクチャ
 ○ サービスを変えず、アーキテクチャから変える
 ● リプレース
 ○ サービスから変える
 どこを変えたいのか サービスがうまく行っていて、コードの品質だけが問題 ならこのアプローチ。 上手く行ってるサービスはこれでよい。 日常的にやるべきこと

Slide 44

Slide 44 text

● リファクタリング
 ○ 振る舞いを変えず、コードだけを変える
 ● リアーキテクチャ
 ○ サービスを変えず、アーキテクチャから変える
 ● リプレース
 ○ サービスから変える
 どこを変えたいのか パフォーマンスやリリースサイクルの改善などがやりたい場 合はここ。 エンジニアがやりたいことはリアーキテクチャでよく、リプ レースではないことが多い 小さくコンポーネント単位で置き換えることができると成功す ることも多く、腕の見せ所

Slide 45

Slide 45 text

● リファクタリング
 ○ 振る舞いを変えず、コードだけを変える
 ● リアーキテクチャ
 ○ サービスを変えず、アーキテクチャから変える
 ● リプレース
 ○ サービスから変える
 どこを変えたいのか 様々な理由で選ばれる。 大体失敗するし、真に必要な場合は少ない。 真に必要な場合、リアーキテクチャの後に行う方が安全 なことが多い。 1億歩譲って式年遷宮するとしても、小さくすべき

Slide 46

Slide 46 text

プロダクトに向き合え

Slide 47

Slide 47 text

セカンドシステム症候群にならない
 
 
 プロダクトに向き合え

Slide 48

Slide 48 text

セカンドシステム症候群にならない
 ↓
 小さくリリースする
 プロダクトに向き合え

Slide 49

Slide 49 text

1. 自己紹介
 2. 技術的負債と共に歩む
 3. プロダクトと向き合え
 4. 技術選定と未来への投資
 5. まとめ
 あじぇんだ

Slide 50

Slide 50 text

投資をするなとは言ってなくて
 
 ちゃんと投資は回収しましょう
 技術選定と未来への投資

Slide 51

Slide 51 text

負債を作るなと言ってなくて
 
 負債はちゃんと返済しましょう
 技術選定と未来への投資

Slide 52

Slide 52 text

結論から言えば、決断のコツは失敗できるようにすることだ。
 失敗できる状態なら決断することができる。
 そして素早くアクションして、失敗のフィードバックを受け取ることで新しい決 断をすることができる。
 もう少し具体的に踏み込むと、決断をするとき、
 自分は次のようにステップを踏む。
 1. 決断するために必要な条件を整理する 
 2. 決断が難しい場合は、素早く始め、小さく失敗できるように考える 
 3. 失敗が難しい場合は、社内外も含めて多くの知見を集める 
 4. それでも難しい場合は、結論をできるだけ先伸ばす 
 5. 難易度が高く、失敗も許されず、今決断しなければいけない場合は 
 一番ダメージの少ない 方法を選ぶ
  大体、1~4で解決する。1と2でまとまるような決断は小さな決断だ。チーム に任せて手を離すこともセットで考える。 3からが難しいとされる決断になる。
 特に5の場合においては結論は数年後だったりするし、答えは無いので腹を 括って決断するしかない。
 https://soudai.hatenablog.com/entry/2022/01/04/151923

Slide 53

Slide 53 text

技術の選び方
 
 
 技術選定と未来への投資

Slide 54

Slide 54 text

技術選定と未来への投資

Slide 55

Slide 55 text

自分たちの解くべき問題を考える
 
 
 技術選定と未来への投資

Slide 56

Slide 56 text

自分たちの解くべき問題を考える
 ↓
 世の中のHowが解いた問題を知る
 技術選定と未来への投資

Slide 57

Slide 57 text


 
 愚者は経験から学び
 
 賢者は歴史から学ぶ
 
 – オットー・フォン・ビスマルク 
 技術選定と未来への投資

Slide 58

Slide 58 text


 
 
 技術選定と未来への投資 https://speakerdeck.com/twada/worse-is-better-understanding-the-spiral-of-technologies-2019-edition

Slide 59

Slide 59 text


 
 優れた芸術家は模倣し、
 
 偉大な芸術家は盗む
 
 – パブロ・ルイス・ピカソ
 技術選定と未来への投資

Slide 60

Slide 60 text

1. 自己紹介
 2. 技術的負債と共に歩む
 3. プロダクトと向き合え
 4. 技術選定と未来への投資
 5. まとめ
 あじぇんだ

Slide 61

Slide 61 text

まとめ

Slide 62

Slide 62 text


 
 Better late than never. 
 
 遅くても、やらないよりはやったほうがいい
 
 
 – @miyagawa
 まとめ

Slide 63

Slide 63 text

まとめ

Slide 64

Slide 64 text

先人から学ぶために
 
 本を読みましょう
 まとめ

Slide 65

Slide 65 text

一冊だけおすすめの本
 
 今日はご紹介します
 まとめ

Slide 66

Slide 66 text

まとめ

Slide 67

Slide 67 text

まとめ

Slide 68

Slide 68 text


 
 “手を動かした者だけが、世界を変える”
 
 
 
 株式会社はてな id:onishi
 自律を勝ち取る

Slide 69

Slide 69 text

ご清聴ありがとうございました
 
 
 まとめ