Upgrade to Pro — share decks privately, control downloads, hide ads and more …

失敗から学ぶ 技術的負債との正しい歩き方 / learn from predecessors

失敗から学ぶ 技術的負債との正しい歩き方 / learn from predecessors

# ソフトウェアエンジニアリングサバイバルガイド: 廃墟を直す、廃墟を出る、廃墟を壊す、あるいは廃墟に暮らす、廃墟に死す
https://www.youtube.com/watch?v=PSCmjrrbNkg

# Howだけ考えると複雑さを導入して仕事が増える
https://soudai.hatenablog.com/entry/2020/08/14/101657

# 質とスピード(2020春版) / Quality and Speed 2020 Spring Edition
https://speakerdeck.com/twada/quality-and-speed-2020-spring-edition

# 判断と決断の違いと決断のコツ
https://soudai.hatenablog.com/entry/2022/01/04/151923

# Worse Is Better - 過去を知り、未来に備える。技術選定の審美眼
https://speakerdeck.com/twada/worse-is-better-understanding-the-spiral-of-technologies-2019-edition

soudai sone

May 16, 2023
Tweet

More Decks by soudai sone

Other Decks in Technology

Transcript

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

    View Slide

  2. 技術的負債



    What is it?

    View Slide

  3. 技術的負債

    ||

    廃墟

    What is it?

    View Slide

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

    View Slide

  5. ソフトウェアと共に暮らす


    そんな暮らし方の話をします

    What is it?

    View Slide




  6. What is it?

    View Slide

  7. 技術的負債は


    エンジニアを滅ぼす

    What is it?

    View Slide

  8. What is it?

    View Slide

  9. バルスしないために必要な話します



    What is it?

    View Slide

  10. 1. 自己紹介

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

    3. プロダクトと向き合え

    4. 技術選定と未来への投資

    5. まとめ

    あじぇんだ

    View Slide

  11. 1. 自己紹介

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

    3. プロダクトと向き合え

    4. 技術選定と未来への投資

    5. まとめ

    あじぇんだ

    View Slide

  12. 自己紹介

    曽根 壮大(38歳)

    Have Fun Tech LLC 代表社員

    株式会社リンケージ CTO


    そ  ね   たけ とも

    ● 日本PostgreSQLユーザ会 勉強会分科会 担当

    ● 3人の子供がいます(長女、次女、長男)

    ● 技術的にはWeb/LL言語/RDBMSが好きです

    ● コミュニティが好き

    View Slide

  13. 突然の宣伝

    
予防医療のリンケージ



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

    View Slide

  14. 1. 自己紹介

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

    3. プロダクトと向き合え

    4. 技術選定と未来への投資

    5. まとめ

    あじぇんだ

    View Slide

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



    技術的負債と共に歩む

    View Slide

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

    ↓

    我々自身が

    技術的負債と共に歩む

    View Slide

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

    View Slide

  18. ソフトウェアを


    継続的にメンテナンスする

    技術的負債と共に歩む

    View Slide

  19. 当たり前にできていますか?



    技術的負債と共に歩む

    View Slide

  20. なんのためにリリースするの?


    なんのために監視するの?

    技術的負債と共に歩む

    View Slide

  21. ● ソフトウェアを補強する

    ○ ユニットテスト、シナリオテスト

    ● ソフトウエアの状態を把握する

    ○ モニタリング、オブザーバビリティ

    ● ソフトウェアの改善を行う

    ○ リファクタリング、リリース

    当たり前の日常にすべきこと

    View Slide

  22. これらはリリースを恐れず


    素早く改善サイクルを回すための手段

    技術的負債と共に歩む

    View Slide

  23. 進捗の麻薬と


    Howの呪い

    技術的負債と共に歩む

    View Slide

  24. https://soudai.hatenablog.com/entry/2020/08/14/101657
    “例えばリリース手順書を作りました!ってな
    ると作業の内容が変更になるたびに手順書
    のメンテナンスをしなければいけない。そうす
    ると作業が増えるのでリリース方法をできる
    だけ変更したくないという力学が働きやすくな
    る。

     その結果、自分たちがリリース方法を変え
    るだけでより良くしていける可能性があっても
    無駄な議論が増えたり、間接的な作業がま
    た増えたりする。

     こうやって作業が増え、仕事が増え、リソー
    スがどんどん足りなくなる ”


    View Slide

  25. 問題にフォーカスする。 


    その上で問題を技術で解決する。

    技術的負債と共に歩む

    View Slide

  26. 当たり前にできていますか?



    技術的負債と共に歩む

    View Slide

  27. 当たり前にできていますか?

    ↓

    当たり前の積み重ねの先に共存がある

    技術的負債と共に歩む

    View Slide

  28. 1. 自己紹介

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

    3. プロダクトと向き合え

    4. 技術選定と未来への投資

    5. まとめ

    あじぇんだ

    View Slide

  29. ???「よっしゃ!作り直すぞ!」



    プロダクトに向き合え

    View Slide

  30. ???「Scrumやってみましょうよ」



    プロダクトに向き合え

    View Slide

  31. ???「DDDでやればうまくいきます!」



    プロダクトに向き合え

    View Slide

  32. プロダクトに向き合え

    View Slide

  33. プロダクトに向き合え

    View Slide

  34. Howに囚われるな!!!!


    (本日2度目)

    プロダクトに向き合え

    View Slide

  35. 問題はプロダクトの中にあるし


    課題の解き方はプロダクトに左右される

    プロダクトに向き合え

    View Slide

  36. って話をすると現れる話



    プロダクトに向き合え

    View Slide

  37. ???「リリース優先なんで」



    プロダクトに向き合え

    View Slide

  38. ???「リリース優先なんで」

    ↓

    YAGNIを言い訳に使うな!!

    プロダクトに向き合え

    View Slide

  39. 妥協しなかった者だけが


    質とスピードは両立する

    プロダクトに向き合え

    View Slide

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

    View Slide

  41. プロダクトと向き合った先に


    真の目指すべきアーキテクチャがある

    プロダクトに向き合え

    View Slide

  42. ● リファクタリング

    ○ 振る舞いを変えず、コードだけを変える

    ● リアーキテクチャ

    ○ サービスを変えず、アーキテクチャから変える

    ● リプレース

    ○ サービスから変える

    どこを変えたいのか

    View Slide

  43. ● リファクタリング

    ○ 振る舞いを変えず、コードだけを変える

    ● リアーキテクチャ

    ○ サービスを変えず、アーキテクチャから変える

    ● リプレース

    ○ サービスから変える

    どこを変えたいのか
    サービスがうまく行っていて、コードの品質だけが問題
    ならこのアプローチ。
    上手く行ってるサービスはこれでよい。
    日常的にやるべきこと

    View Slide

  44. ● リファクタリング

    ○ 振る舞いを変えず、コードだけを変える

    ● リアーキテクチャ

    ○ サービスを変えず、アーキテクチャから変える

    ● リプレース

    ○ サービスから変える

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

    View Slide

  45. ● リファクタリング

    ○ 振る舞いを変えず、コードだけを変える

    ● リアーキテクチャ

    ○ サービスを変えず、アーキテクチャから変える

    ● リプレース

    ○ サービスから変える

    どこを変えたいのか
    様々な理由で選ばれる。
    大体失敗するし、真に必要な場合は少ない。
    真に必要な場合、リアーキテクチャの後に行う方が安全
    なことが多い。
    1億歩譲って式年遷宮するとしても、小さくすべき

    View Slide

  46. プロダクトに向き合え

    View Slide

  47. セカンドシステム症候群にならない



    プロダクトに向き合え

    View Slide

  48. セカンドシステム症候群にならない

    ↓

    小さくリリースする

    プロダクトに向き合え

    View Slide

  49. 1. 自己紹介

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

    3. プロダクトと向き合え

    4. 技術選定と未来への投資

    5. まとめ

    あじぇんだ

    View Slide

  50. 投資をするなとは言ってなくて


    ちゃんと投資は回収しましょう

    技術選定と未来への投資

    View Slide

  51. 負債を作るなと言ってなくて


    負債はちゃんと返済しましょう

    技術選定と未来への投資

    View Slide

  52. 結論から言えば、決断のコツは失敗できるようにすることだ。

    失敗できる状態なら決断することができる。

    そして素早くアクションして、失敗のフィードバックを受け取ることで新しい決
    断をすることができる。

    もう少し具体的に踏み込むと、決断をするとき、

    自分は次のようにステップを踏む。

    1. 決断するために必要な条件を整理する 

    2. 決断が難しい場合は、素早く始め、小さく失敗できるように考える 

    3. 失敗が難しい場合は、社内外も含めて多くの知見を集める 

    4. それでも難しい場合は、結論をできるだけ先伸ばす 

    5. 難易度が高く、失敗も許されず、今決断しなければいけない場合は 

    一番ダメージの少ない 方法を選ぶ

     大体、1~4で解決する。1と2でまとまるような決断は小さな決断だ。チーム
    に任せて手を離すこともセットで考える。 3からが難しいとされる決断になる。

    特に5の場合においては結論は数年後だったりするし、答えは無いので腹を
    括って決断するしかない。

    https://soudai.hatenablog.com/entry/2022/01/04/151923

    View Slide

  53. 技術の選び方



    技術選定と未来への投資

    View Slide

  54. 技術選定と未来への投資

    View Slide

  55. 自分たちの解くべき問題を考える



    技術選定と未来への投資

    View Slide

  56. 自分たちの解くべき問題を考える

    ↓

    世の中のHowが解いた問題を知る

    技術選定と未来への投資

    View Slide



  57. 愚者は経験から学び


    賢者は歴史から学ぶ


    – オットー・フォン・ビスマルク 

    技術選定と未来への投資

    View Slide




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

    View Slide



  59. 優れた芸術家は模倣し、


    偉大な芸術家は盗む


    – パブロ・ルイス・ピカソ

    技術選定と未来への投資

    View Slide

  60. 1. 自己紹介

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

    3. プロダクトと向き合え

    4. 技術選定と未来への投資

    5. まとめ

    あじぇんだ

    View Slide

  61. まとめ

    View Slide



  62. Better late than never. 


    遅くても、やらないよりはやったほうがいい



    – @miyagawa

    まとめ

    View Slide

  63. まとめ

    View Slide

  64. 先人から学ぶために


    本を読みましょう

    まとめ

    View Slide

  65. 一冊だけおすすめの本


    今日はご紹介します

    まとめ

    View Slide

  66. まとめ

    View Slide

  67. まとめ

    View Slide



  68. “手を動かした者だけが、世界を変える”




    株式会社はてな id:onishi

    自律を勝ち取る

    View Slide

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



    まとめ

    View Slide