Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

5 メドピアってどういう会社? Supporting Doctors, Helping Patients. 医師を⽀援すること。そして患者を救うこと。 集合知により医療を再発明する。 Mission -存在意義- Vision -実現したい姿- Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

15 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc メドピアってどういう会社? 開発支援系 データベース 開発言語 開発・本番環境 業務支援系 その他 スピーディに技術選択 PHPの独⾃フレームワークから Railsへ移⾏している会社です。 開発フローはgithubフロー(っぽいので) 環境は今⾵を維持してると思います!

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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名(増員予定)

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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 コードを⼀緒に書いてくれたり メドピアテックブログ書いてくれちゃったり 勉強会主導してくれたり ランチに⼀緒に⾏ってくれり 合宿に⼀緒に⾏ってくれたり

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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によると・・・

Slide 23

Slide 23 text

23 技術的負債とメドピアの取り組み 今⽇のテーマは技術的負債 考えました Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

25 技術的負債とメドピアの取り組み 技術的負債を放置すると? • ⽣産性が落ちる • 障害が起きやすくなる • 経営陣との信頼が崩れる • モチベーションが下がる • 辞めたくなる Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

Slide 26

Slide 26 text

26 技術的負債とメドピアの取り組み 放っておけない。カイゼンだ。 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

36 技術的負債とメドピアの取り組み 技術的負債の対策! • モチベーションを上げる環境 テストを書く 後世に安⼼を与える https://tech.medpeer.co.jp/entry/2017/05/23/070000 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc メドピアでは 書き⽅などもブログでアウトプット

Slide 37

Slide 37 text

37 技術的負債とメドピアの取り組み • モチベーションを上げる環境 定期的なバージョンアップ Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc 技術的負債の対策! メドピアでは ⽉2回、⾃動でプルリクが作られる 仕組みを採⽤。 dependabotとか無料になったし便利。 (キャプチャはcircleci-bundle-update-pr )

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

44 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 可読性よくする! Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc CIで怒ってもらうのおすすめです。 コーディング規約チェックを⼊れる RubocopとかPHP_CodeSnifferとか。

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

48 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 整地部活動する https://tech.medpeer.co.jp/entry/2018/10/24/180932 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

Slide 49

Slide 49 text

49 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 皆でプルリクを振り返る Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc 例えば、Rails6でハマった知⾒ をプルリクを通し、 皆が同じ地雷を踏まないように 共有しています。

Slide 50

Slide 50 text

50 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 JavaScriptStudy ハンズオンで勉強会 • ES6 • Vue.js • TypeScript Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

52 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 SecurityStudy 勉強⽤リポジトリ作成 • 初期はテストがfail • 脆弱性を潰すとsuccess • OWASP top10 の理解 OSSのRailsGoatを カスタマイズして利⽤ Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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⽉ 北の⽅?

Slide 59

Slide 59 text

59 まとめ 新規事業 エンジニア チーム エンジニア チーム SRE セキュリティ for 医師 新規事業 C T O 室 2016年までの開発チーム。

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

63 取り組み ⼈増えてくると・・・ Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc 取り組みとまとめ

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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