デブサミ2019サマーに参加してきました!
セミナー概要
場所は御茶ノ水のソラシティです。
デブサミと言えば雅叙園のイメージがありますが、夏はソラシティなのでしょうか。
ランチ付きのセッションで頂ける恒例のサンドイッチです。普通に美味しいです。
また、おやつの時間にはコーヒーとお菓子も提供頂けます。セッションをずっと聴いていると疲れるのでこういうサービスは嬉しい限りです。
では、印象に残ったセッションを記録します。
メルカリのエンジニア組織とマイクロサービス化への取り組み
メルカリでは組織とシステムのアップデートを同時に行っているそうです。
言語:PHP → GO
DB:MySQL → クラウドスパナー
環境:オンプレミス → GoogleCloudPratform
メルカリの課題
1.システムの複雑化
→ メルペイも出来てより複雑に
2.オーナーシップ低下
→ 全体をこうしていきたいというビジョンを持った人が少ない
3.透明性の低下
→ 組織が大きくなり階層が増えた結果
目指す組織像
中の人の成長にフォーカスしたい
そのために、 責任範囲をカプセル化し、エンジニアへ権限を意思決定をさせる
トライアンドエラーが組織の中でまわせるようにする
組織がこうありたいを全体に行き渡らせつつ、 ボトムアップでの意思決定が大事
ただ、感覚でなくデータを用いて意思決定を出来るようにする
マイクロサービス
責任範囲をカプセル化し、エンジニアへ権限を意思決定をさせるために、組織を機能ごとに分けようとしていて、システムも機能ごとになるのでマイクロサービス化を進めている
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書かせる文化を根付かせるために行うと良いことを「戦略編」と「戦術編」でお話されていました。
「明日からテストコード書かなきゃ!」と思う内容でした。
~戦略編~
「テストコードが無いコードはレガシーコードである」
疲弊した現場、荒みきったコード、爆弾処理のようなリリース ・・・
安定した開発・リリースが出来ないのは理由はテストコードがないから。
テストコードを書けば少なくとも動いているか分からない状態は脱することが出来るので精神的にも安定する。
現場に蔓延る2つの”ならわし”に対する提言
1.テストコードを書く時間が無い
→ テストを書く時間がないのではなく、テストを書かないから時間が無くなる
2.動くコードに触れるな
→ 依存している外部のライブラリ等がどんどんバージョンアップしていくので、自社のコードをフリーズしても意味がない。触れなければ競争力は弱まり事業はゆるやかに死んでいく。
テストの役割
不具合は発見が遅くなれば遅くなるほどコストがかかるから品質を上げなければならない。
ただ、品質は再設計やリファクタリングでしか上がらない、それをテストで支える。品質を上げるのはプログラミングであってテストは入り口である。
~戦術編~
まずどこから書いていくかというアプローチを決める
1.手が届く果実
簡単に改善できることから直していく
2.痛んだ箇所
価値の高いものから 直していく
また、機能を見積りテストが容易にかけてテスト効果の高いものから着手していくのが大事。
ポイント
こだわりすぎないこと!
・最初から全部やろうとしない
・テスト駆動開発にこだわらない
こだわることろ
・再現と繰り返しが可能なテストであること
・独立しているテストであること
まずは自分から
背中を見せることが大事
自分が出来るようにならなければ誰も出来るようにならない
自分がやって土台を作りサンプルを提供しテストのある生活を体験してもらう