$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ぼくらはこうして乗り越えてきた!
Search
fukumura
June 20, 2019
Programming
1
2.3k
ぼくらはこうして乗り越えてきた!
CTOが考える、チームで向き合う技術的負債との付き合い方
fukumura
June 20, 2019
Tweet
Share
More Decks by fukumura
See All by fukumura
リードエンジニアから学ぶMedPeerの プロダクト開発
fukumura
1
990
Rubyコミュニティとメドピアの素敵な関係
fukumura
5
9.2k
20190828_withrarejob_v1.0.pdf
fukumura
0
380
JapanTaxi x MedPeer 技術交流会
fukumura
1
600
20190523_graspy_.pdf
fukumura
0
540
RailsDevelopersMeetupスポンサーセッション資料
fukumura
0
310
20181101_medpeer_rwc.pdf
fukumura
0
3.7k
MedPeerGroup会社紹介
fukumura
0
2.5k
japantaxi_medpeer
fukumura
0
330
Other Decks in Programming
See All in Programming
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
120
AIコーディングエージェント(NotebookLM)
kondai24
0
200
チームをチームにするEM
hitode909
0
340
AIコードレビューがチームの"文脈"を 読めるようになるまで
marutaku
0
360
Cell-Based Architecture
larchanjo
0
130
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
270
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
320
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
510
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
740
認証・認可の基本を学ぼう前編
kouyuume
0
250
愛される翻訳の秘訣
kishikawakatsumi
3
330
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
210
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Optimizing for Happiness
mojombo
379
70k
Designing for Performance
lara
610
69k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
YesSQL, Process and Tooling at Scale
rocio
174
15k
The Invisible Side of Design
smashingmag
302
51k
Automating Front-end Workflow
addyosmani
1371
200k
Faster Mobile Websites
deanohume
310
31k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
Transcript
CTOが考える、 チームで向きあう技術的負債との付き合い⽅ 2019/6/20 メドピア株式会社 |> ぼくらはこうして乗り越えてきた!
⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. 技術的負債とメドピアでの取り組み 4. 今からできる取り組み
3 ⾃⼰紹介 2児の⽗。 好きな飲物はビールです。 2012年からメドピアで頑張ってます! MedBeerというエンジニア向けイベントを不定期で開催してます! 福村 彰展(@fukumura) メドピア株式会社 CTO
Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. 技術的負債とメドピアでの取り組み 4. 今からできる取り組み
5 メドピアってどういう会社? Supporting Doctors, Helping Patients. 医師を⽀援すること。そして患者を救うこと。 集合知により医療を再発明する。 Mission -存在意義-
Vision -実現したい姿- Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
6 メドピアってどういう会社? 医師専⽤コミュニティサイトの 運営がメインの会社です Copyright(C) 2019 ALL RIGHTS RESERVED ,
MedPeer,Inc
7 メドピアってどういう会社? メドピアの特徴は3つ! Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
8 メドピアってどういう会社? 1. 社⻑が現役の医師! Copyright(C) 2019 ALL RIGHTS RESERVED ,
MedPeer,Inc
9 メドピアってどういう会社? 1. 社⻑が現役の医師! Copyright(C) 2019 ALL RIGHTS RESERVED ,
MedPeer,Inc 医療現場の⼿触り感 強い想い
10 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc メドピアってどういう会社? 2.
⽇本の医師の3⼈に1⼈が会員! ? ? 医師の3⼈に1⼈が会員
11 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc. メドピアってどういう会社? 2.
⽇本の医師の3⼈に1⼈が会員! ? ? 医師の3⼈に1⼈が会員 医療業界へ ゲームチェンジが起こせる プラットフォーム
12 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc メドピアってどういう会社? 3.
エンジニア⽂化!
13 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc メドピアってどういう会社? 3.
エンジニア⽂化! 2012年から醸成している エンジニア⽂化!
14 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc メドピアってどういう会社? 開発支援系
データベース 開発言語 開発・本番環境 業務支援系 その他 スピーディに技術選択
15 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc メドピアってどういう会社? 開発支援系
データベース 開発言語 開発・本番環境 業務支援系 その他 スピーディに技術選択 PHPの独⾃フレームワークから Railsへ移⾏している会社です。 開発フローはgithubフロー(っぽいので) 環境は今⾵を維持してると思います!
16 メドピアの開発チーム 新規事業 エンジニア チーム エンジニア チーム エンジニア チーム エンジニア
チーム エンジニア チーム エンジニア チーム フロントエンド SRE セキュリティ QA サービス開発チームと基盤チームのマトリクス構成 C T O 室 for 医師 for 薬剤師 for コンシューマー/ビジネス 新規事業 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
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 メドピアの技術顧問 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 メドピアの技術顧問 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 コードを⼀緒に書いてくれたり メドピアテックブログ書いてくれちゃったり 勉強会主導してくれたり ランチに⼀緒に⾏ってくれり 合宿に⼀緒に⾏ってくれたり
⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. 技術的負債とメドピアでの取り組み 4. 今からできる取り組み
21 技術的負債とメドピアの取り組み 今⽇のテーマは技術的負債 技術的負債ってなんだろう? Copyright(C) 2019 ALL RIGHTS RESERVED ,
MedPeer,Inc
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 技術的負債とメドピアの取り組み 今⽇のテーマは技術的負債 考えました Copyright(C) 2019 ALL RIGHTS RESERVED ,
MedPeer,Inc
24 技術的負債とメドピアの取り組み 技術的負債とはエンジニア視点だと下記3つ。 • モチベーションを下げるコード • 想定外に障害が起きてしまうコード • 想定外に⼯数がかかるコード 個々⼈の気持ち・スキル・知識
で感じ⽅が変わるもの。 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
25 技術的負債とメドピアの取り組み 技術的負債を放置すると? • ⽣産性が落ちる • 障害が起きやすくなる • 経営陣との信頼が崩れる •
モチベーションが下がる • 辞めたくなる Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
26 技術的負債とメドピアの取り組み 放っておけない。カイゼンだ。 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
27 技術的負債とメドピアの取り組み 今⽇のテーマは技術的負債 モチベーションを下げるコードとは Copyright(C) 2019 ALL RIGHTS RESERVED ,
MedPeer,Inc
28 技術的負債とメドピアの取り組み モチベーションを下げるコードとは • 仕様がよくわからない • バージョンが最新じゃない・古い • トレンドじゃない Copyright(C)
2019 ALL RIGHTS RESERVED , MedPeer,Inc
29 技術的負債とメドピアの取り組み 障害が予想外に起きてしまうコード • テストがない • 可読性が悪い • 設計思想の理解が薄い Copyright(C)
2019 ALL RIGHTS RESERVED , MedPeer,Inc
30 技術的負債とメドピアの取り組み 想定より余計に⼯数がかかるコード • 可読性が悪い • Fat • DRYじゃない、DRYすぎる Copyright(C)
2019 ALL RIGHTS RESERVED , MedPeer,Inc
31 技術的負債とメドピアの取り組み 技術的負債の対策は下記3つかな? モチベーションを下げるコード 想定外に障害が起きてしまうコード 想定外に⼯数がかかるコード • モチベーションを上げる環境 • 障害が起きにくいコードと環境
• 開発がぐんぐん進むコードが⽣まれる環境 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
32 技術的負債とメドピアの取り組み 技術的負債の対策! • モチベーションを上げる環境 • 障害が起きにくいコードと環境 • 開発がぐんぐん進むコードが⽣まれる環境 Copyright(C)
2019 ALL RIGHTS RESERVED , MedPeer,Inc
33 技術的負債とメドピアの取り組み • モチベーションを上げる環境 Copyright(C) 2019 ALL RIGHTS RESERVED ,
MedPeer,Inc 技術的負債の対策!
34 技術的負債とメドピアの取り組み 技術的負債の対策! • モチベーションを上げる環境 独⾃フレームワークからRuby on Railsへ移⾏ Rails6で開発している PJTがすでに2つ!
Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
35 技術的負債とメドピアの取り組み • モチベーションを上げる環境 テストを書く 後世に安⼼を与える Copyright(C) 2019 ALL RIGHTS
RESERVED , MedPeer,Inc メドピアでは ⾒積もるときにテストを書く分を 想定して⾒積もるようにしている。 技術的負債の対策!
36 技術的負債とメドピアの取り組み 技術的負債の対策! • モチベーションを上げる環境 テストを書く 後世に安⼼を与える https://tech.medpeer.co.jp/entry/2017/05/23/070000 Copyright(C) 2019
ALL RIGHTS RESERVED , MedPeer,Inc メドピアでは 書き⽅などもブログでアウトプット
37 技術的負債とメドピアの取り組み • モチベーションを上げる環境 定期的なバージョンアップ Copyright(C) 2019 ALL RIGHTS RESERVED
, MedPeer,Inc 技術的負債の対策! メドピアでは ⽉2回、⾃動でプルリクが作られる 仕組みを採⽤。 dependabotとか無料になったし便利。 (キャプチャはcircleci-bundle-update-pr )
38 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 Copyright(C) 2019 ALL RIGHTS RESERVED
, MedPeer,Inc
39 技術的負債とメドピアの取り組み • 障害が起きにくいコードと環境 テストを書く!(再) 技術的負債の対策! Copyright(C) 2019 ALL RIGHTS
RESERVED , MedPeer,Inc ⼤事なことなので2回。
40 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 皆で勉強(会)する Copyright(C) 2019 ALL RIGHTS
RESERVED , MedPeer,Inc 輪読会おすすめです。 同じ書籍を持ち寄って、 みんなで読むところから始めよう。 社内の知⾒者に参加してもらったり すると周りに好影響与えます。 ※メドピアでは技術顧問の前島さんに ファシリテートしてもらいながら 気になったらみなで会話するスタイル
41 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 皆で勉強(会)する Copyright(C) 2019 ALL RIGHTS
RESERVED , MedPeer,Inc
42 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 レビューする! Copyright(C) 2019 ALL RIGHTS
RESERVED , MedPeer,Inc おすすめです。 プルリクのテンプレート化
43 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 レビューする! Copyright(C) 2019 ALL RIGHTS
RESERVED , MedPeer,Inc おすすめです。 プルリクのテンプレート化 • このプルリクエストは何なのか? • チケットURL • 重点的に⾒てほしいところは?(不安なところ) • どんなテストをしたか • ローカル環境で動かしたくなった時の⼿順
44 技術的負債とメドピアの取り組み 技術的負債の対策! • 障害が起きにくいコードと環境 可読性よくする! Copyright(C) 2019 ALL RIGHTS
RESERVED , MedPeer,Inc CIで怒ってもらうのおすすめです。 コーディング規約チェックを⼊れる RubocopとかPHP_CodeSnifferとか。
45 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 Copyright(C) 2019 ALL RIGHTS RESERVED
, MedPeer,Inc
46 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 レールに乗る Copyright(C) 2019 ALL RIGHTS
RESERVED , MedPeer,Inc 輪読会おすすめです(再) Ruby関連の書籍や gemのREADMEを読むなどしてます。
47 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 整地部活動する Copyright(C) 2019 ALL RIGHTS
RESERVED , MedPeer,Inc 整地部おすすめです。 荒地ページを作ってリファクタリング したいところを記述。 隔週で1.5h 程度の時間を確保。 修正⼤きい場合は、 技術⼒⾼いエンジニアを頼りながら カイゼン!
48 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 整地部活動する https://tech.medpeer.co.jp/entry/2018/10/24/180932 Copyright(C) 2019 ALL
RIGHTS RESERVED , MedPeer,Inc
49 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 皆でプルリクを振り返る Copyright(C) 2019 ALL RIGHTS
RESERVED , MedPeer,Inc 例えば、Rails6でハマった知⾒ をプルリクを通し、 皆が同じ地雷を踏まないように 共有しています。
50 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 JavaScriptStudy ハンズオンで勉強会 • ES6 •
Vue.js • TypeScript Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
51 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 インフラStudy ハンズオンで勉強会 • シンプルなRailsアプリ作成 •
ネットワーク・セキュリティ Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
52 技術的負債とメドピアの取り組み 技術的負債の対策! • 開発がぐんぐん進むコードが⽣まれる環境 SecurityStudy 勉強⽤リポジトリ作成 • 初期はテストがfail •
脆弱性を潰すとsuccess • OWASP top10 の理解 OSSのRailsGoatを カスタマイズして利⽤ Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. 技術的負債とメドピアでの取り組み 4. 今からできる取り組み
54 取り組み とっつきやすい取り組み Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
取り組みとまとめ
55 取り組み 整地部 輪読会 プルリク振り返り会 プルリクテンプレート レビュー コーディング規約⾃動チェック Copyright(C) 2019
ALL RIGHTS RESERVED , MedPeer,Inc 取り組みとまとめ
56 取り組み すこしハードルがあるかもな取り組み Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
取り組みとまとめ
57 取り組み エンジニア⽂化を醸成 技術的負債の解消チームを作る 技術顧問の⼒をかりる 技術研鑽系イベントの定期開催 技術研鑽系のサポート Copyright(C) 2019 ALL
RIGHTS RESERVED , MedPeer,Inc 取り組みとまとめ
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 まとめ 新規事業 エンジニア チーム エンジニア チーム SRE セキュリティ for
医師 新規事業 C T O 室 2016年までの開発チーム。
60 メドピアの開発チーム 新規事業 エンジニア チーム エンジニア チーム エンジニア チーム エンジニア
チーム SRE セキュリティ for 医師 for コンシューマー/ビジネス 新規事業 C T O 室 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc 2017年までの開発チーム。
61 メドピアの開発チーム 新規事業 エンジニア チーム エンジニア チーム エンジニア チーム エンジニア
チーム エンジニア チーム SRE セキュリティ for 医師 for コンシューマー/ビジネス 新規事業 C T O 室 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc 2018年までの開発チーム。
62 メドピアの開発チーム 新規事業 エンジニア チーム エンジニア チーム エンジニア チーム エンジニア
チーム エンジニア チーム エンジニア チーム フロントエンド SRE セキュリティ QA for 医師 for 薬剤師 for コンシューマー/ビジネス 新規事業 C T O 室 Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc 2019年の開発チーム。(今)
63 取り組み ⼈増えてくると・・・ Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
取り組みとまとめ
64 取り組みとまとめ まとめ 技術的負債を望んで作る⼈はいないが、 できてしまうのは仕⽅がない。 ⾒る⼈が変わると技術的負債に早変わり していまうという困り物。 やれるところからやっていく姿勢が⼤事。 Copyright(C) 2019
ALL RIGHTS RESERVED , MedPeer,Inc
65 仲間募集してます! Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc
66 ご清聴ありがとうございました! Copyright(C) 2019 ALL RIGHTS RESERVED , MedPeer,Inc