レガシーな開発現場にUTを入れてCIを導入した話
by
Leko
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
レガシーな開発現場にUTを 入れてCIを導入した話 井上 真吾
Slide 2
Slide 2 text
24歳、鎌倉住まい ブログ: http://leko.jp Twitter: @L_e_k_o Github: Leko 会社:Hamee株式会社 QAIT リーダー 入社2年半、小田原、目黒勤務 品質向上と自動化を追い求めるチーム 井上 真吾(れこ)
Slide 3
Slide 3 text
話すこと、話さないこと ● 話します ○ つらみを救ってくれたのは CIでした ● 話せないです ○ イケてる会社の最新の事情 ○ 技術負債と向き合う話
Slide 4
Slide 4 text
2500社近くが導入する、ECのバックエンド一元管理サービス 自社。内製で提供するWebアプリは30近く サービス開始から9年目 PHP, Java, Rubyが主 サポート切れてるバージョンを使ってるサービスも... サービス開始当初は僅かでも経験があれば即採用 仕様書レス、テストレス、レビューレス、仕様レス 動作は手で確かめる。ただしい動きは誰かが知ってる、はず レガシーな開発現場
Slide 5
Slide 5 text
● 一部上場、予算も増えて人も増える ○ 案件開始 → 仕様書もテストもない → 聞いてもわからない → とにかくコード読む ○ 案件ついでにリファクタ → 安定のデグレ → 誰も触れない化物 ○ 仕様書書き出す → 機能が多すぎる → 形骸化or中途半端な情報 ○ レビューなし → しょうもない凡ミス → 何も学ばないで二の鉄を踏む ○ スピード出ない、品質担保で精一杯 ● 契約企業が増えれば負荷も増えるし責任も増す ○ 寿命によるハードウェア障害、スロークエリ、 CPU高沸 etc… ● でも売れてる ○ 売れたまま、スピード感が出せるように加速させたい レガシーが悪いわけではない、が。
Slide 6
Slide 6 text
● 新卒が「技術力足りない」と思うくらいには低かった ● 人も実力者も増え、今やそうではなくなった よろしい、ならば改善だ
Slide 7
Slide 7 text
● コードレビュー開始 ● Doxygen入れてAPIドキュメント生成 ● 仕様置き場の確保、旗振り ● General logをパースしてERD作成 ● UT書き始める。UT書く案件にはベネフィット持たせて書かせる ● ST書き始める。とてもじゃないけど手が回らない ● オフショアに頼る。ベトナムに飛んでコミュニケーション取る ● オフショアといい感じにUT埋めてる ← いまここ 改善の前段
Slide 8
Slide 8 text
要は長い、煩雑 メンバーが増えると こっちの管理コスト 増加、凡ミス頻発。 当初の業務フロー
Slide 9
Slide 9 text
テスト書いてもらうならCIだ
Slide 10
Slide 10 text
● 社内にCIという文化がない ● もう勢いで入れてしまえ、あとでその有用性を分からせる ● 動作環境がめちゃくちゃレガシー ○ CircleCI(phpenv)ではサポートしてくれてないバージョン ○ chefで作られた超大なレシピ ● Dockerで凌ぐ ○ Packer + Dockerでコンテナ生成 ○ 環境がchef製なのが幸いした CIへの壁
Slide 11
Slide 11 text
CI後の業務フロー 手元でテストを実行 する という不確実な手順 を排除
Slide 12
Slide 12 text
● ユニットテストを書く文化づくり ● 効率化、省力化の文化づくり ● 他の製品へのCI横展開 ○ Java製アプリのビルド・デプロイ自動化 ● ドキュメントもCIしたい。lintかけたい。 ● 成果:バグ数軽減、精神衛生向上 ● ゆくゆくは開発効率の向上につなげたい。 今後
Slide 13
Slide 13 text
ありがとうございました! これからも レガシーを駆逐し てゆきます