62
技技技技技返返返返返返返返返返返返返返返返 返 DevLove 返返 返 DevLove 返返返返返返返返返返返返 Ver. 西 + α BMC 返返 西

技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

Embed Size (px)

Citation preview

Page 1: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

技術的負債返しますか?それとも開発辞めますか

〜 DevLove 広島 〜「 DevLove 甲子園勝手にプレイバック Ver. 西 + α 」

BMC 西 秀和

Page 2: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

自己紹介

• 西 秀和(33歳)

• 経営管理センター所属 主任

• 仕事先: BIGLOBE

( 月曜〜金曜は東京にいます )

• 業務システム設計・開発

Page 3: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

DevLove 甲子園お邪魔してきました

Page 4: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

DevLove 甲子園発表内容

(ダイジェスト)

Page 5: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

中間管理職がいなくなったらプロジェクトが

うまく進みだしたよ♪

経営管理センター (BMC)  西 秀和

隊トラック

Page 6: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

みなさん!!管理されてますかー?

Page 7: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

お客様

1次

2次

常駐

常駐

担当

主任

主任

M

お客

発注

API設計部門

API製造部門

担当 画面部門

担当M

発注

東京

広島 広島愛媛

Page 8: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

S-in 日までに完成した画面

107画面中

7画面

Page 9: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

お客様

1次

2次

担当

主任

主任

M

お客

API設計部門

API製造部門

担当 画面製造部門

担当MGM

S-in するまで、   帰ってくるな!!

■ 命令

Page 10: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

無事に S-in できた

Page 11: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

全員でゴールを共有

Page 12: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

WHY?

WHAT?

HOW?

現場では逆走不可

← ココを与える

Page 13: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

現場を変える可能性を

一番持っているのは、現場のエンジニア

Page 14: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

発表内容ここまで。

Page 15: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

中間管理職いたらダメなのか?

Page 16: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

数値化して管理

数値化が難しいことに弱い

現場の全てを把握できない

Page 17: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

数値化が難しいこと

現場のエンジニアが解決するしかない!

Page 18: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

技術的負債

Page 19: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

ウォード・カニンガム最初のコードを出荷することは、借金をしに行くことと同じである。小さな負債は、代価を得て即座に書き直す機会を得るまでの開発を加速する。危険なのは、借金が返済されなかった場合である。品質の良くないコードを使い続けることは借金の利息としてとらえることができる。技術部門は欠陥のある実装や、不完全なオブジェクト指向などによる借金を目の前にして、立ち尽くす羽目になる

技術的負債とは?

今後の開発・運用に悪影響のあるコード

Page 20: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

Reckless( 無鉄砲 )

Prudent( 計画的 )

Deliberate( 意図的 )

設計する時間がない品質を犠牲にして作れ!!

問題は認識しているが、リスクは承知の上でリリース

Inadvertent( 無意識 )

負債が溜まっていく事に気づいてない

最善を尽くしたが、のちに最善の方法が分かる

技術的負債 (四象限 )

保留!!

Page 21: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

技術的負債とはどのレベルの問題を言っているのか?

Page 22: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

• 処理の共通化(共通化)

• 単体テストが可能(テストの容易性)

メソッド抽出<- 生産性の UP

<- 品質の向上

実例

Page 23: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

Reckless( 無鉄砲 )

Prudent( 計画的 )

Deliberate( 意図的 )

設計する時間がない品質を犠牲にして作れ!!

問題は認識しているが、リスクは承知の上でリリース

Inadvertent( 無意識 )

負債が溜まっていく事に気づいてない

最善を尽くしたが、のちに最善の方法が分かる

技術的負債 (四象限 )

Page 24: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

技術的負債が発生する原因

技術的負債の分類

技術的負債 (四象限 )

Page 25: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

1.短納期2.未熟なチーム3. 業務知識不足

原因の発生元は?

Page 26: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

1.短納期

Page 27: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

Reckless( 無鉄砲 )

Prudent( 計画的 )

Deliberate( 意図的 )

設計する時間がない品質を犠牲にして作れ!!

問題は認識しているが、リスクは承知の上でリリース

Inadvertent( 無意識 )

負債が溜まっていく事に気づいてない

最善を尽くしたが、のちに最善の方法が分かる

技術的負債 (四象限 )

Page 28: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

「短納期」弊害

• 設計・レビューの時間が十分に取れない

• 最善の手法では間に合わない

• 似た処理をコピー &ペースト

• 仕様変更に柔軟に対応できない

Page 29: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

2.未成熟なチーム

Page 30: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

Reckless( 無鉄砲 )

Prudent( 計画的 )

Deliberate( 意図的 )

設計する時間がない品質を犠牲にして作れ!!

問題は認識しているが、リスクは承知の上でリリース

Inadvertent( 無意識 )

負債が溜まっていく事に気づいてない

最善を尽くしたが、のちに最善の方法が分かる

技術的負債 (四象限 )

Page 31: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

「未成熟なチーム」の弊害

• チームの設計方針が安定しない

• 実装方法に統一性がない

• 後戻りが多い

• 打ち合わせ・議論が長い

Page 32: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

3. 業務知識不足

Page 33: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

Reckless( 無鉄砲 )

Prudent( 計画的 )

Deliberate( 意図的 )

設計する時間がない品質を犠牲にして作れ!!

問題は認識しているが、リスクは承知の上でリリース

Inadvertent( 無意識 )

負債が溜まっていく事に気づいてない

最善を尽くしたが、のちに最善の方法が分かる

技術的負債 (四象限 )

Page 34: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

「業務知識不足」の弊害

• データの変換している処理が多い

• データ構造が業務に合っていない

• ST などプロジェクト後半で問題が多い

Page 35: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

最近、関わっている

プロジェクトの話

Page 36: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

プロジェクト状況

• 7人チーム( バラバラのチームからかき集めた )

• 10月に結成して2月リリース

• 初めてのビジネスモデル

Page 37: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

直ぐに問題が発生

Page 38: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

チームの中心になる共通認識がない

Page 39: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

技術的負債が増えている事は

エンジニアが一番理解している

Page 40: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

レビューで設計方針の討論が起きる

コレは良いこと( 時間があれば)

Page 41: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

議論が発散

レビュー時間が長時間化

技術的負債を生む原因

作業時間を圧迫

Page 42: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

一旦、議論禁止

Page 43: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

代わりにやった事

Page 44: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

共通認識を作る

Page 45: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

ドメインモデル

1400クラス100テーブル

Page 46: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

技術的負債を共有する

Page 47: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

←議論したい事

←議論はして取組でいる事

Page 48: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

チームの方針

• 毎日、16:00から1時間だけ開催

• 1回で1議題

• ファシリテーターは持ち回り

• 朝会で今日の議題を発表

• ファシリテータが初めに問題提起と改善案を提示

Page 49: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

議論中…

Page 50: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

議論する時間を設ける利点

• 1つの議題に集中して討論できる

• もめた時の受け皿になる

• みんなで決めたという納得感

• やりたい事を提案する準備の期間がある

Page 51: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

技術的負債を見逃さない

Page 52: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

KPT では残った Problem を捨てたらダメ

Page 53: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

まとめ

Page 54: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

技術的負債の返済はチームで挑め!!

Page 55: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

なぜか?

Page 56: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

技術的負債の発生はエンジニアの

スキルではなく状況に左右されやすい

Page 57: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

誰か一人でリファクタを実施

Page 58: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

未熟なチーム業務知識が乏しいメンバは新たな技術的負債を生む

Page 59: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

技術的負債の返済が終わらない…

Page 60: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

技術的負債の返済と共にチームが

成長すること

大切な事

Page 61: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

技術的負債の返済はチームで挑め!!

Page 62: 技術的負債返しますか?それとも開発辞めますか(Dev love広島 20150428)

ご静聴ありがとうございました。