ぼくらはこうして乗り越えてきた!

 ぼくらはこうして乗り越えてきた!

CTOが考える、チームで向き合う技術的負債との付き合い方

Fc96157614ee73039c4a575906167979?s=128

fukumura

June 20, 2019
Tweet

Transcript

  1. CTOが考える、 チームで向きあう技術的負債との付き合い⽅ 2019/6/20 メドピア株式会社 |> ぼくらはこうして乗り越えてきた!

  2. ⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. 技術的負債とメドピアでの取り組み 4. 今からできる取り組み

  3. 3 ⾃⼰紹介 2児の⽗。 好きな飲物はビールです。 2012年からメドピアで頑張ってます! MedBeerというエンジニア向けイベントを不定期で開催してます! 福村 彰展(@fukumura) メドピア株式会社 CTO

    Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
  4. ⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. 技術的負債とメドピアでの取り組み 4. 今からできる取り組み

  5. 5 メドピアってどういう会社? Supporting Doctors, Helping Patients. 医師を⽀援すること。そして患者を救うこと。 集合知により医療を再発明する。 Mission -存在意義-

    Vision -実現したい姿- Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
  6. 6 メドピアってどういう会社? 医師専⽤コミュニティサイトの 運営がメインの会社です Copyright(C) 2019 ALL RIGHTS RESERVED ,

    MedPeer,Inc
  7. 7 メドピアってどういう会社? メドピアの特徴は3つ! Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

  8. 8 メドピアってどういう会社? 1. 社⻑が現役の医師! Copyright(C) 2019 ALL RIGHTS RESERVED ,

    MedPeer,Inc
  9. 9 メドピアってどういう会社? 1. 社⻑が現役の医師! Copyright(C) 2019 ALL RIGHTS RESERVED ,

    MedPeer,Inc 医療現場の⼿触り感 強い想い
  10. 10 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc メドピアってどういう会社? 2.

    ⽇本の医師の3⼈に1⼈が会員! ? ? 医師の3⼈に1⼈が会員
  11. 11 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc. メドピアってどういう会社? 2.

    ⽇本の医師の3⼈に1⼈が会員! ? ? 医師の3⼈に1⼈が会員 医療業界へ ゲームチェンジが起こせる プラットフォーム
  12. 12 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc メドピアってどういう会社? 3.

    エンジニア⽂化!
  13. 13 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc メドピアってどういう会社? 3.

    エンジニア⽂化! 2012年から醸成している エンジニア⽂化!
  14. 14 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc メドピアってどういう会社? 開発支援系

    データベース 開発言語 開発・本番環境 業務支援系 その他 スピーディに技術選択
  15. 15 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc メドピアってどういう会社? 開発支援系

    データベース 開発言語 開発・本番環境 業務支援系 その他 スピーディに技術選択 PHPの独⾃フレームワークから Railsへ移⾏している会社です。 開発フローはgithubフロー(っぽいので) 環境は今⾵を維持してると思います!
  16. 16 メドピアの開発チーム 新規事業 エンジニア チーム エンジニア チーム エンジニア チーム エンジニア

    チーム エンジニア チーム エンジニア チーム フロントエンド SRE セキュリティ QA サービス開発チームと基盤チームのマトリクス構成 C T O 室 for 医師 for 薬剤師 for コンシューマー/ビジネス 新規事業 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
  17. 17 メドピアの開発チーム 新規事業 エンジニア チーム エンジニア チーム エンジニア チーム エンジニア

    チーム エンジニア チーム エンジニア チーム フロントエンド SRE セキュリティ QA サービス開発チームと基盤チームのマトリクス構成 C T O 室 for 医師 for 薬剤師 for コンシューマー/ビジネス 新規事業 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc Railsエンジニア 40名(増員予定) アプリエンジニア 10名(増員予定) フロントエンドエンジニア 2名(増員予定) SRE 5名(増員予定) セキュリティ 1名(増員予定) QA 1名(増員予定)
  18. 18 メドピアの技術顧問 Ruby領域: 前島 真⼀⽒(@netwillnet) フリーランスとして、スタートアップ企業でのサービス開発⽴ち上げの経験多 数。地域Rubyコミュニティ ginza.rbやオンライン勉強会を主催。著書にパー フェクトRuby on

    Rails(共著)、WEB+DB PRESSでRuby連載(Vol.93~95)。 メドピアには2016年2⽉より技術顧問として参画。 メドピアのRuby on Rails化やエンジニアの⽂化づくりをサポート フロントエンド領域: 林優⼀⽒(@frontainer) プロダクトアドバイザーソーシャルゲーム・Web開発会社にてフロントエンド エンジニア、本部⻑、CTO、プロダクトマネージャーを歴任。 現在、共同創業者の⼀員として⾃社サービスの開発に携わるとともに、社外に 向けてフロントエンド技術やプロダクト開発のアドバイスなどを⾏っている。 メドピアには2018年10⽉より技術顧問として参画。 メドピアのフロントエンド開発、JavaScript全般の技術⼒底上げをサポート。 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
  19. 19 メドピアの技術顧問 Ruby領域: 前島 真⼀⽒(@netwillnet) フリーランスとして、スタートアップ企業でのサービス開発⽴ち上げの経験多 数。地域Rubyコミュニティ ginza.rbやオンライン勉強会を主催。著書にパー フェクトRuby on

    Rails(共著)、WEB+DB PRESSでRuby連載(Vol.93~95)。 メドピアには2016年2⽉より技術顧問として参画。 メドピアのRuby on Rails化やエンジニアの⽂化づくりをサポート フロントエンド領域: 林優⼀⽒(@frontainer) プロダクトアドバイザーソーシャルゲーム・Web開発会社にてフロントエンド エンジニア、本部⻑、CTO、プロダクトマネージャーを歴任。 現在、共同創業者の⼀員として⾃社サービスの開発に携わるとともに、社外に 向けてフロントエンド技術やプロダクト開発のアドバイスなどを⾏っている。 メドピアには2018年10⽉より技術顧問として参画。 メドピアのフロントエンド開発、JavaScript全般の技術⼒底上げをサポート。 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc コードを⼀緒に書いてくれたり メドピアテックブログ書いてくれちゃったり 勉強会主導してくれたり ランチに⼀緒に⾏ってくれり 合宿に⼀緒に⾏ってくれたり
  20. ⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. 技術的負債とメドピアでの取り組み 4. 今からできる取り組み

  21. 21 技術的負債とメドピアの取り組み 今⽇のテーマは技術的負債 技術的負債ってなんだろう? Copyright(C) 2019 ALL RIGHTS RESERVED ,

    MedPeer,Inc
  22. 22 技術的負債とメドピアの取り組み 今⽇のテーマは技術的負債 技術的負債(英: Technical debt)とは、⾏き当たりばった りなソフトウェアアーキテクチャと、余裕のないソフトウェ ア開発が引き起こす結果のことを指す新しい⽐喩である。 Copyright(C) 2019

    ALL RIGHTS RESERVED , MedPeer,Inc https://ja.wikipedia.org/wiki/%E6%8A%80%E8%A1%93%E7%9A%84%E8%B2%A0%E5%82%B5 Wikipediaによると・・・
  23. 23 技術的負債とメドピアの取り組み 今⽇のテーマは技術的負債 考えました Copyright(C) 2019 ALL RIGHTS RESERVED ,

    MedPeer,Inc
  24. 24 技術的負債とメドピアの取り組み 技術的負債とはエンジニア視点だと下記3つ。 • モチベーションを下げるコード • 想定外に障害が起きてしまうコード • 想定外に⼯数がかかるコード 個々⼈の気持ち・スキル・知識

    で感じ⽅が変わるもの。 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
  25. 25 技術的負債とメドピアの取り組み 技術的負債を放置すると? • ⽣産性が落ちる • 障害が起きやすくなる • 経営陣との信頼が崩れる •

    モチベーションが下がる • 辞めたくなる Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
  26. 26 技術的負債とメドピアの取り組み 放っておけない。カイゼンだ。 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

  27. 27 技術的負債とメドピアの取り組み 今⽇のテーマは技術的負債 モチベーションを下げるコードとは Copyright(C) 2019 ALL RIGHTS RESERVED ,

    MedPeer,Inc
  28. 28 技術的負債とメドピアの取り組み モチベーションを下げるコードとは • 仕様がよくわからない • バージョンが最新じゃない・古い • トレンドじゃない Copyright(C)

    2019 ALL RIGHTS RESERVED , MedPeer,Inc
  29. 29 技術的負債とメドピアの取り組み 障害が予想外に起きてしまうコード • テストがない • 可読性が悪い • 設計思想の理解が薄い Copyright(C)

    2019 ALL RIGHTS RESERVED , MedPeer,Inc
  30. 30 技術的負債とメドピアの取り組み 想定より余計に⼯数がかかるコード • 可読性が悪い • Fat • DRYじゃない、DRYすぎる Copyright(C)

    2019 ALL RIGHTS RESERVED , MedPeer,Inc
  31. 31 技術的負債とメドピアの取り組み 技術的負債の対策は下記3つかな? モチベーションを下げるコード 想定外に障害が起きてしまうコード 想定外に⼯数がかかるコード • モチベーションを上げる環境 • 障害が起きにくいコードと環境

    • 開発がぐんぐん進むコードが⽣まれる環境 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
  32. 32 技術的負債とメドピアの取り組み 技術的負債の対策! • モチベーションを上げる環境 • 障害が起きにくいコードと環境 • 開発がぐんぐん進むコードが⽣まれる環境 Copyright(C)

    2019 ALL RIGHTS RESERVED , MedPeer,Inc
  33. 33 技術的負債とメドピアの取り組み • モチベーションを上げる環境 Copyright(C) 2019 ALL RIGHTS RESERVED ,

    MedPeer,Inc 技術的負債の対策!
  34. 34 技術的負債とメドピアの取り組み 技術的負債の対策! • モチベーションを上げる環境 独⾃フレームワークからRuby on Railsへ移⾏ Rails6で開発している PJTがすでに2つ!

    Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
  35. 35 技術的負債とメドピアの取り組み • モチベーションを上げる環境 テストを書く 後世に安⼼を与える Copyright(C) 2019 ALL RIGHTS

    RESERVED , MedPeer,Inc メドピアでは ⾒積もるときにテストを書く分を 想定して⾒積もるようにしている。 技術的負債の対策!
  36. 36 技術的負債とメドピアの取り組み 技術的負債の対策! • モチベーションを上げる環境 テストを書く 後世に安⼼を与える https://tech.medpeer.co.jp/entry/2017/05/23/070000 Copyright(C) 2019

    ALL RIGHTS RESERVED , MedPeer,Inc メドピアでは 書き⽅などもブログでアウトプット
  37. 37 技術的負債とメドピアの取り組み • モチベーションを上げる環境 定期的なバージョンアップ Copyright(C) 2019 ALL RIGHTS RESERVED

    , MedPeer,Inc 技術的負債の対策! メドピアでは ⽉2回、⾃動でプルリクが作られる 仕組みを採⽤。 dependabotとか無料になったし便利。 (キャプチャはcircleci-bundle-update-pr )
  38. 38 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 Copyright(C) 2019 ALL RIGHTS RESERVED

    , MedPeer,Inc
  39. 39 技術的負債とメドピアの取り組み • 障害が起きにくいコードと環境 テストを書く!(再) 技術的負債の対策! Copyright(C) 2019 ALL RIGHTS

    RESERVED , MedPeer,Inc ⼤事なことなので2回。
  40. 40 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 皆で勉強(会)する Copyright(C) 2019 ALL RIGHTS

    RESERVED , MedPeer,Inc 輪読会おすすめです。 同じ書籍を持ち寄って、 みんなで読むところから始めよう。 社内の知⾒者に参加してもらったり すると周りに好影響与えます。 ※メドピアでは技術顧問の前島さんに ファシリテートしてもらいながら 気になったらみなで会話するスタイル
  41. 41 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 皆で勉強(会)する Copyright(C) 2019 ALL RIGHTS

    RESERVED , MedPeer,Inc
  42. 42 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 レビューする! Copyright(C) 2019 ALL RIGHTS

    RESERVED , MedPeer,Inc おすすめです。 プルリクのテンプレート化
  43. 43 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 レビューする! Copyright(C) 2019 ALL RIGHTS

    RESERVED , MedPeer,Inc おすすめです。 プルリクのテンプレート化 • このプルリクエストは何なのか? • チケットURL • 重点的に⾒てほしいところは?(不安なところ) • どんなテストをしたか • ローカル環境で動かしたくなった時の⼿順
  44. 44 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 可読性よくする! Copyright(C) 2019 ALL RIGHTS

    RESERVED , MedPeer,Inc CIで怒ってもらうのおすすめです。 コーディング規約チェックを⼊れる RubocopとかPHP_CodeSnifferとか。
  45. 45 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 Copyright(C) 2019 ALL RIGHTS RESERVED

    , MedPeer,Inc
  46. 46 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 レールに乗る Copyright(C) 2019 ALL RIGHTS

    RESERVED , MedPeer,Inc 輪読会おすすめです(再) Ruby関連の書籍や gemのREADMEを読むなどしてます。
  47. 47 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 整地部活動する Copyright(C) 2019 ALL RIGHTS

    RESERVED , MedPeer,Inc 整地部おすすめです。 荒地ページを作ってリファクタリング したいところを記述。 隔週で1.5h 程度の時間を確保。 修正⼤きい場合は、 技術⼒⾼いエンジニアを頼りながら カイゼン!
  48. 48 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 整地部活動する https://tech.medpeer.co.jp/entry/2018/10/24/180932 Copyright(C) 2019 ALL

    RIGHTS RESERVED , MedPeer,Inc
  49. 49 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 皆でプルリクを振り返る Copyright(C) 2019 ALL RIGHTS

    RESERVED , MedPeer,Inc 例えば、Rails6でハマった知⾒ をプルリクを通し、 皆が同じ地雷を踏まないように 共有しています。
  50. 50 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 JavaScriptStudy ハンズオンで勉強会 • ES6 •

    Vue.js • TypeScript Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
  51. 51 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 インフラStudy ハンズオンで勉強会 • シンプルなRailsアプリ作成 •

    ネットワーク・セキュリティ Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
  52. 52 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 SecurityStudy 勉強⽤リポジトリ作成 • 初期はテストがfail •

    脆弱性を潰すとsuccess • OWASP top10 の理解 OSSのRailsGoatを カスタマイズして利⽤ Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
  53. ⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. 技術的負債とメドピアでの取り組み 4. 今からできる取り組み

  54. 54 取り組み とっつきやすい取り組み Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

    取り組みとまとめ
  55. 55 取り組み 整地部 輪読会 プルリク振り返り会 プルリクテンプレート レビュー コーディング規約⾃動チェック Copyright(C) 2019

    ALL RIGHTS RESERVED , MedPeer,Inc 取り組みとまとめ
  56. 56 取り組み すこしハードルがあるかもな取り組み Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

    取り組みとまとめ
  57. 57 取り組み エンジニア⽂化を醸成 技術的負債の解消チームを作る 技術顧問の⼒をかりる 技術研鑽系イベントの定期開催 技術研鑽系のサポート Copyright(C) 2019 ALL

    RIGHTS RESERVED , MedPeer,Inc 取り組みとまとめ
  58. 58 取り組みとまとめ 2013年から年2〜3回ペースで⾏き続けています! Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

    <過去実績> 2013年3⽉ 伊東 2013年9⽉ 箱根 2014年2⽉ 伊東 2014年6⽉ 千葉 2015年3⽉ 伊東 2016年1⽉ 熱海 2016年8⽉ 湯河原 2017年3⽉ 湯河原 2017年7⽉ 千葉 2017年11⽉ 群⾺ 2018年7⽉ 伊⾖⼤島 2018年11⽉ 湯河原 2019年6⽉ 北の⽅?
  59. 59 まとめ 新規事業 エンジニア チーム エンジニア チーム SRE セキュリティ for

    医師 新規事業 C T O 室 2016年までの開発チーム。
  60. 60 メドピアの開発チーム 新規事業 エンジニア チーム エンジニア チーム エンジニア チーム エンジニア

    チーム SRE セキュリティ for 医師 for コンシューマー/ビジネス 新規事業 C T O 室 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc 2017年までの開発チーム。
  61. 61 メドピアの開発チーム 新規事業 エンジニア チーム エンジニア チーム エンジニア チーム エンジニア

    チーム エンジニア チーム SRE セキュリティ for 医師 for コンシューマー/ビジネス 新規事業 C T O 室 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc 2018年までの開発チーム。
  62. 62 メドピアの開発チーム 新規事業 エンジニア チーム エンジニア チーム エンジニア チーム エンジニア

    チーム エンジニア チーム エンジニア チーム フロントエンド SRE セキュリティ QA for 医師 for 薬剤師 for コンシューマー/ビジネス 新規事業 C T O 室 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc 2019年の開発チーム。(今)
  63. 63 取り組み ⼈増えてくると・・・ Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

    取り組みとまとめ
  64. 64 取り組みとまとめ まとめ 技術的負債を望んで作る⼈はいないが、 できてしまうのは仕⽅がない。 ⾒る⼈が変わると技術的負債に早変わり していまうという困り物。 やれるところからやっていく姿勢が⼤事。 Copyright(C) 2019

    ALL RIGHTS RESERVED , MedPeer,Inc
  65. 65 仲間募集してます! Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

  66. 66 ご清聴ありがとうございました! Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc