技術的負債返しますか?それとも開発辞めますか(dev love広島 20150428)
TRANSCRIPT
![Page 1: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/1.jpg)
技術的負債返しますか?それとも開発辞めますか
〜 DevLove 広島 〜「 DevLove 甲子園勝手にプレイバック Ver. 西 + α 」
BMC 西 秀和
![Page 2: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/2.jpg)
自己紹介
• 西 秀和(33歳)
• 経営管理センター所属 主任
• 仕事先: BIGLOBE
( 月曜〜金曜は東京にいます )
• 業務システム設計・開発
![Page 3: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/3.jpg)
DevLove 甲子園お邪魔してきました
![Page 4: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/4.jpg)
DevLove 甲子園発表内容
(ダイジェスト)
![Page 5: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/5.jpg)
中間管理職がいなくなったらプロジェクトが
うまく進みだしたよ♪
経営管理センター (BMC) 西 秀和
隊トラック
![Page 6: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/6.jpg)
みなさん!!管理されてますかー?
![Page 7: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/7.jpg)
お客様
1次
2次
常駐
常駐
僕
担当
主任
主任
M
お客
発注
API設計部門
API製造部門
担当 画面部門
担当M
発注
東京
広島 広島愛媛
![Page 8: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/8.jpg)
S-in 日までに完成した画面
107画面中
7画面
![Page 9: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/9.jpg)
お客様
1次
2次
担当
主任
主任
M
お客
API設計部門
API製造部門
担当 画面製造部門
担当MGM
僕
S-in するまで、 帰ってくるな!!
■ 命令
![Page 10: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/10.jpg)
無事に S-in できた
![Page 11: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/11.jpg)
全員でゴールを共有
![Page 12: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/12.jpg)
WHY?
WHAT?
HOW?
現場では逆走不可
← ココを与える
![Page 13: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/13.jpg)
現場を変える可能性を
一番持っているのは、現場のエンジニア
![Page 14: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/14.jpg)
発表内容ここまで。
![Page 15: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/15.jpg)
中間管理職いたらダメなのか?
![Page 16: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/16.jpg)
数値化して管理
数値化が難しいことに弱い
現場の全てを把握できない
![Page 17: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/17.jpg)
数値化が難しいこと
現場のエンジニアが解決するしかない!
![Page 18: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/18.jpg)
技術的負債
![Page 19: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/19.jpg)
ウォード・カニンガム最初のコードを出荷することは、借金をしに行くことと同じである。小さな負債は、代価を得て即座に書き直す機会を得るまでの開発を加速する。危険なのは、借金が返済されなかった場合である。品質の良くないコードを使い続けることは借金の利息としてとらえることができる。技術部門は欠陥のある実装や、不完全なオブジェクト指向などによる借金を目の前にして、立ち尽くす羽目になる
技術的負債とは?
今後の開発・運用に悪影響のあるコード
![Page 20: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/20.jpg)
Reckless( 無鉄砲 )
Prudent( 計画的 )
Deliberate( 意図的 )
設計する時間がない品質を犠牲にして作れ!!
問題は認識しているが、リスクは承知の上でリリース
Inadvertent( 無意識 )
負債が溜まっていく事に気づいてない
最善を尽くしたが、のちに最善の方法が分かる
技術的負債 (四象限 )
保留!!
![Page 21: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/21.jpg)
技術的負債とはどのレベルの問題を言っているのか?
![Page 22: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/22.jpg)
• 処理の共通化(共通化)
• 単体テストが可能(テストの容易性)
メソッド抽出<- 生産性の UP
<- 品質の向上
実例
![Page 23: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/23.jpg)
Reckless( 無鉄砲 )
Prudent( 計画的 )
Deliberate( 意図的 )
設計する時間がない品質を犠牲にして作れ!!
問題は認識しているが、リスクは承知の上でリリース
Inadvertent( 無意識 )
負債が溜まっていく事に気づいてない
最善を尽くしたが、のちに最善の方法が分かる
技術的負債 (四象限 )
![Page 24: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/24.jpg)
技術的負債が発生する原因
技術的負債の分類
技術的負債 (四象限 )
![Page 25: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/25.jpg)
1.短納期2.未熟なチーム3. 業務知識不足
原因の発生元は?
![Page 26: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/26.jpg)
1.短納期
![Page 27: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/27.jpg)
Reckless( 無鉄砲 )
Prudent( 計画的 )
Deliberate( 意図的 )
設計する時間がない品質を犠牲にして作れ!!
問題は認識しているが、リスクは承知の上でリリース
Inadvertent( 無意識 )
負債が溜まっていく事に気づいてない
最善を尽くしたが、のちに最善の方法が分かる
技術的負債 (四象限 )
![Page 28: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/28.jpg)
「短納期」弊害
• 設計・レビューの時間が十分に取れない
• 最善の手法では間に合わない
• 似た処理をコピー &ペースト
• 仕様変更に柔軟に対応できない
![Page 29: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/29.jpg)
2.未成熟なチーム
![Page 30: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/30.jpg)
Reckless( 無鉄砲 )
Prudent( 計画的 )
Deliberate( 意図的 )
設計する時間がない品質を犠牲にして作れ!!
問題は認識しているが、リスクは承知の上でリリース
Inadvertent( 無意識 )
負債が溜まっていく事に気づいてない
最善を尽くしたが、のちに最善の方法が分かる
技術的負債 (四象限 )
![Page 31: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/31.jpg)
「未成熟なチーム」の弊害
• チームの設計方針が安定しない
• 実装方法に統一性がない
• 後戻りが多い
• 打ち合わせ・議論が長い
![Page 32: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/32.jpg)
3. 業務知識不足
![Page 33: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/33.jpg)
Reckless( 無鉄砲 )
Prudent( 計画的 )
Deliberate( 意図的 )
設計する時間がない品質を犠牲にして作れ!!
問題は認識しているが、リスクは承知の上でリリース
Inadvertent( 無意識 )
負債が溜まっていく事に気づいてない
最善を尽くしたが、のちに最善の方法が分かる
技術的負債 (四象限 )
![Page 34: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/34.jpg)
「業務知識不足」の弊害
• データの変換している処理が多い
• データ構造が業務に合っていない
• ST などプロジェクト後半で問題が多い
![Page 35: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/35.jpg)
最近、関わっている
プロジェクトの話
![Page 36: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/36.jpg)
プロジェクト状況
• 7人チーム( バラバラのチームからかき集めた )
• 10月に結成して2月リリース
• 初めてのビジネスモデル
![Page 37: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/37.jpg)
直ぐに問題が発生
![Page 38: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/38.jpg)
チームの中心になる共通認識がない
![Page 39: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/39.jpg)
技術的負債が増えている事は
エンジニアが一番理解している
![Page 40: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/40.jpg)
レビューで設計方針の討論が起きる
コレは良いこと( 時間があれば)
![Page 41: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/41.jpg)
議論が発散
レビュー時間が長時間化
技術的負債を生む原因
作業時間を圧迫
![Page 42: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/42.jpg)
一旦、議論禁止
![Page 43: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/43.jpg)
代わりにやった事
![Page 44: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/44.jpg)
共通認識を作る
![Page 45: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/45.jpg)
ドメインモデル
1400クラス100テーブル
![Page 46: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/46.jpg)
技術的負債を共有する
![Page 47: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/47.jpg)
←議論したい事
←議論はして取組でいる事
![Page 48: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/48.jpg)
チームの方針
• 毎日、16:00から1時間だけ開催
• 1回で1議題
• ファシリテーターは持ち回り
• 朝会で今日の議題を発表
• ファシリテータが初めに問題提起と改善案を提示
![Page 49: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/49.jpg)
議論中…
![Page 50: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/50.jpg)
議論する時間を設ける利点
• 1つの議題に集中して討論できる
• もめた時の受け皿になる
• みんなで決めたという納得感
• やりたい事を提案する準備の期間がある
![Page 51: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/51.jpg)
技術的負債を見逃さない
![Page 52: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/52.jpg)
KPT では残った Problem を捨てたらダメ
![Page 53: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/53.jpg)
まとめ
![Page 54: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/54.jpg)
技術的負債の返済はチームで挑め!!
![Page 55: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/55.jpg)
なぜか?
![Page 56: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/56.jpg)
技術的負債の発生はエンジニアの
スキルではなく状況に左右されやすい
![Page 57: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/57.jpg)
誰か一人でリファクタを実施
![Page 58: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/58.jpg)
未熟なチーム業務知識が乏しいメンバは新たな技術的負債を生む
![Page 59: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/59.jpg)
技術的負債の返済が終わらない…
![Page 60: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/60.jpg)
技術的負債の返済と共にチームが
成長すること
大切な事
![Page 61: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/61.jpg)
技術的負債の返済はチームで挑め!!
![Page 62: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)](https://reader030.vdocuments.site/reader030/viewer/2022032506/55cb7ee1bb61eb002b8b4650/html5/thumbnails/62.jpg)
ご静聴ありがとうございました。