Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
進化を止めない、"レガシー"との向き合い方 / 20220208-techcon2022-ya...
Search
Rakus_Dev
February 08, 2022
Technology
0
2.7k
進化を止めない、"レガシー"との向き合い方 / 20220208-techcon2022-yanari
Rakus_Dev
February 08, 2022
Tweet
Share
More Decks by Rakus_Dev
See All by Rakus_Dev
ラクスCTOが語る顧客視点を重視したプロダクト開発 / RAKUSTechCon2024_Kude
rakus_dev
0
2.4k
マルチプロダクトでのプロダクトマネージャーのリアル / RAKUSTechCon2024_Inagaki
rakus_dev
4
4.1k
拡大するマルチプロダクトSaaSの顧客理解にデザイン組織はどう取り組んでいるか / RAKUSTechCon2024_Design
rakus_dev
0
2.2k
急成長する大規模プロダクト開発のマネジメント課題とアプローチ / RAKUSTechCon2024_Seisan
rakus_dev
0
2.2k
パフォーマンス向上とリソース管理のためのアプローチ / RAKUSTechCon2024_RLC
rakus_dev
0
2.1k
急成長するサービスを支えるためのインフラ戦略 / RAKUSTechCon2024_Fujii
rakus_dev
0
2.1k
楽楽精算のQA改革 / RAKUSTechCon2024_Kaneko
rakus_dev
1
2.1k
新たな顧客課題に挑む17年目の進化とモダナイゼーション / RAKUSTechCon2024_Haihaimail
rakus_dev
1
2.1k
クロージングトーク / RAKUSTechCon2024_Closingtalk
rakus_dev
0
2k
Other Decks in Technology
See All in Technology
3年でバックエンドエンジニアが5倍に増えても破綻しなかったアーキテクチャ そして、これから / Software architecture that scales even with a 5x increase in backend engineers in 3 years
euglena1215
11
4k
.NET 9 のパフォーマンス改善
nenonaninu
0
1.7k
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
360
【令和最新版】ロボットシミュレータ Genesis x ROS 2で始める快適AIロボット開発
hakuturu583
1
820
20241220_S3 tablesの使い方を検証してみた
handy
4
780
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
520
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
250
C++26 エラー性動作
faithandbrave
2
840
Wantedly での Datadog 活用事例
bgpat
2
850
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
180
AWS re:Invent 2024 Recap in ZOZO - Serverless で好きなものをしゃべってみた
chongmyungpark
0
470
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
730
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Done Done
chrislema
182
16k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Mobile First: as difficult as doing things right
swwweet
222
9k
Scaling GitHub
holman
459
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
The Cult of Friendly URLs
andyhume
78
6.1k
Building Applications with DynamoDB
mza
91
6.1k
A designer walks into a library…
pauljervisheath
205
24k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Transcript
#RAKUSTechCon ©2022 RAKUS Co., Ltd. ©2022 RAKUS Co., Ltd. 進化を止めない、
"レガシー"との向き合い方 株式会社ラクス 開発本部 第四開発部 矢成 行雄
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 自己紹介 矢成 行雄(やなり ゆきお) ▪経歴 2011年 ラクス入社 2012年 「メールディーラー」の開発リーダ
2017年 「チャットディーラー」の新規立ち上げ 2020年 部長として4プロダクトを統括 ▪趣味 文学部東洋史学専攻の中国史オタク 犬二匹と戯れる 酒を飲む(ビール・ワイン・日本酒) Violinを弾く(butブランク◦年以上…)
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 私たちの手掛けているプロダクト① ❏ メールディーラー ❏ チャットディーラー
メールや電話、チャット、LINEからの問い合わせを一元管 理。チーム内の情報共有が簡単になることで、お客様を 待たせない対応を実現! Webページにチャットを設置して、問い合わせ対応を行う ことのできるチャットボット。チャットボットの自動回答で、 業務効率化とユーザー満足度の向上を実現!
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 私たちの手掛けているプロダクト② ❏ 配配メール ❏ クルメル
シンプルな操作と機能、手厚いサポートで、メールによる 集客・販促活動を「もっと効果的に。もっとラクに。」 システム連携に特化したメール配信サービス。基幹/CRM システムをはじめ、さまざまなシステムのメール配信を支 えています。
#RAKUSTechCon ©2022 RAKUS Co., Ltd. リリース時期 ❏ メールディーラー ❏ 配配メール
❏ クルメル ❏ チャットディーラー ⇒ 2001年 ⇒ 2007年 ⇒ 2011年 ⇒ 2017年
#RAKUSTechCon ©2022 RAKUS Co., Ltd. レガシーサービスとは? 最新の技術や製品を用いた情報システムと対比して、 相対的に時代遅れとなった古いシステムのこと。 IT用語辞典 e-words
"レガシーシステム"の項より https://e-words.jp/w/%E3%83%AC%E3%82%AC%E3%82%B7%E3%83%BC%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0.html
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 一般的なイメージ > 相対的に時代遅れとなった古いシステムのこと。 ❏ 時代遅れで古い
❏ モダンじゃない ❏ 変化を嫌う ❏ モチベーションあがらない
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 本当にそうか? ❏ 時代遅れで古い ❏ モダンじゃない
❏ 変化を嫌う ❏ モチベーションあがらない ⇒ 「古い=時代遅れ」ではない ⇒ 変化していかないから時代遅れになる ⇒ 進化していかないから"レガシー"になる
#RAKUSTechCon ©2022 RAKUS Co., Ltd. ラクスでも確かに問題はあった ❏ 時代遅れで古い ❏ モダンじゃない
❏ 変化を嫌う ❏ モチベーションあがらない ⇒ 利用技術が古い ⇒ 開発プロセスが古典的 ⇒ 技術的負債が多い ⇒ 情報発信しづらい
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 私たちはどのように向き合ったか? ❏ 積み上げてきた「歴史」の中に価値を見出す ❏ これまでやってきたことを生かす
❏ 「刷新」ではなく「進化」を志向して動く
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 私たちはどのように向き合ったか? 1. 利用技術が古い 2. 開発プロセスが古典的
3. 技術的負債が多い 4. 情報発信しづらい ⇒ 領域をしぼって取り組む ⇒ モダンな開発スタイルとのハイブリッド ⇒ 継続的リファクタリング ⇒ 中核技術に特化したブランディング戦略
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 領域をしぼって取り組む
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 「利用技術が古い」問題 ❏ 主な利用技術 ❏ PHP
❏ ノンフレームワークなプロダクトも ❏ PostgreSQL ❏ jQuery
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 全部やろうとしない ❏ 新技術への全面刷新は確かに難しい ❏ 領域をしぼって導入する(Small
Start) ❏ サブシステム ❏ 新機能 ❏ 効果があれば拡大していく
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 導入事例 ❏ ノンフレームワークPHPアプリケーション ❏ (新UI導入機能のみ)Laravelを導入
❏ (新UI導入機能のみ)blade+SassによるBE/FE分離 ❏ (新UI導入機能のみ)Vue.jsによるFEコンポーネント化 ❏ (チャット機能のみ)Node.js+Socket.ioによるリアルタイム通信 ❏ (単語チェック機能のみ)Mecab導入による自然言語処理 https://speakerdeck.com/kyoshimoto/phptechcafe-2022-01-26
#RAKUSTechCon ©2022 RAKUS Co., Ltd. EOLにはこだわる ❏ EOL対応は絶対に欠かさない ❏ 古いプロダクトだからこそ追随していくべき
❏ 中核技術の言語仕様を深く理解するチャンス
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 対応事例 ❏ PHP ❏ 4系
⇒ 5.2 ⇒ 5.3 ⇒ 5.4 ⇒ 5.6 ⇒ 7.1 ⇒ 7.3 ⇒ 8.0 ❏ PostgreSQL ❏ 8.2 ⇒ 8.4 ⇒ 9.3 ⇒ 9.6 ⇒ 13.3 ❏ jQuery ❏ 1.8 ⇒ 1.9 ⇒ 2.1 ⇒ 3.3 ⇒ 3.4 ⇒ 3.6
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 実施したアクションまとめ ❏ 「利用技術が古い」問題 ❏ 全面刷新は困難なので、できるところから領域をしぼって新技術を導
入して行き、次第に領域を広げていく ❏ EOL対応は欠かさず行い、中核技術への知見を深める
#RAKUSTechCon ©2022 RAKUS Co., Ltd. モダンな開発スタイルとの ハイブリッド
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 「開発プロセスが古典的」問題 ❏ ウォーターフォール型 ❏ 要件定義⇒概要設計⇒実装⇒テスト⇒受入⇒結合テスト
❏ 手動テスト ❏ ビューとビジネスロジックが未分離のため自動テスト導入困難
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 古典的プロセスがレガシー化の要因? ❏ 古典的だから捨て去るべき?⇒No ❏ 単に「やり方」の話
❏ 「やり方」が非効率なら、より効率のよいやり方に変えればよい ❏ プロダクトが"レガシー"かどうかは関係ない
#RAKUSTechCon ©2022 RAKUS Co., Ltd. アジャイル的要素を取り入れる ❏ マクロな開発プロセスはそのまま(ベースはウォーターフォール) ❏ ミクロで開発プロセスの「中身」を変える
❏ カンバン ❏ スプリント制(1週間のタイムボックス) ❏ 社内ユーザからのフィードバックループ ❏ ウォーターフォールとアジャイルのハイブリッド (=いいとこどり)
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 導入事例 ❏ カンバン ❏ スプリント制
https://speakerdeck.com/kyoshimoto/rakus-meetup-osaka-2020-02-05
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 段階的にユニットテスト導入 ❏ ユニットテスト ❏ ビジネスロジックはまずリファクタリング(詳細後述)
❏ できるところからユニットテストを書く ❏ テストを書くルールを決める ❏ 完成したところからCIに組み込む
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 広く浅くE2Eテスト導入 ❏ E2Eテスト ❏ 目的を明確にする
❏ 「全然動かない」レベルの根本的デグレード検知用 ❏ 広く浅く導入する(Smoke E2E) ❏ 全機能を網羅 ❏ ノーマルケースのみ https://speakerdeck.com/kuwacchi/smokee2e
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 実施したアクションまとめ ❏ 「開発プロセスが古典的」問題 ❏ マクロな開発スタイルは維持したまま、部分的(ミクロに)にアジャイル
的要素を取り入れてハイブリッドなプロセスへ ❏ ユニットテストはできるところから段階的に ❏ E2Eテストは目的に沿って広く浅く
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 継続的リファクタリング
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 「技術的負債が多い」問題 ❏ 同じようで少しずつ違うロジックの濫発 ❏ すでに使用されていない機能
❏ コメントもなく意図不明な謎のロジック ❏ ビューとビジネスロジックの密結合 ❏ クラス化・分割されず責務過多となったソースコード
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 継続的にリファクタリングする ❏ リファクタリングするための敷居を下げる ❏ 「するのが当たり前」にする
❏ ビジネス要求と両立させる https://speakerdeck.com/whitefox_73/14nian-mu-falsesabisutojin-hou-m obu-mutamefalserihuakutaringuzhan-lue
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 敷居を下げる ❏ 提案の敷居を下げる ❏ 誰でも思いついたら提案できる「目安箱」を作る
❏ 実施の敷居を下げる ❏ リファクタリングバージョン ❏ 手順のガイドライン化
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 導入事例 ❏ リファクタリング目安箱 ❏ リファクタリング手順
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 「するのが当たり前」にする ❏ リファクタリングの提案・実施件数を目標に掲げる ❏ リファクタリング事例をチーム内で共有しあう
❏ オススメ書籍の紹介による文化醸成
#RAKUSTechCon ©2022 RAKUS Co., Ltd. ビジネス要求と両立させる ❏ コストを見積もって伝える ❏ 効果を定量化して伝える
❏ 自動テスト導入障壁低下 ⇒ 品質維持効率アップ ❏ フロントエンドとバックエンド分離 ⇒ 分業による速度アップ ❏ 保守性向上 ⇒ 開発速度アップ
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 実施したアクションまとめ ❏ 「技術的負債が多い」問題 ❏ リファクタリングしていくしかない
❏ リファクタリングするための敷居を下げ、ビジネス要求と両立させ、継 続的にリファクタリングする
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 中核技術に注力した ブランディング戦略
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 「情報発信しづらい」問題 ❏ エンジニアとして社外に技術情報発信したい ❏ でも扱っている技術が"レガシー”
❏ 新規技術に触れる機会が少なく、情報発信しづらい ❏ エンジニアのモチベーションもなんとなく上がらない
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 情報発信はできる ❏ 先入観(誤解)を解く ❏ “新しいこと"しか求められていない
❏ "新しいこと"でないと情報発信できない ❏ ここまで紹介したような取組自体がすでに財産 ❏ "レガシー"への向き合い方のヒントを求めている人は多い ❏ 情報発信を習慣化していく
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 過去の発表事例 ❏ 登壇発表事例 https://speakerdeck.com/rakusmatsumoto/meetup-20211006-md https://speakerdeck.com/radiocat/challenges-of-product-management
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 強みを生かしてブランディング形成 ❏ 一つの技術に特化している強みを生かす ❏ 中核技術=PHP
❏ 注力 ⇒ 情報発信文化の醸成 ⇒ 組織力アップ ❏ 技術力アップ ❏ モチベーションアップ ❏ 採用力アップ
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 情報発信事例 ❏ 外部登壇 ❏ ブログ
https://tech-blog.rakus.co.jp/archive/category/PHP
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 情報発信事例 ❏ コミュニティ形成 (PHPTechCafe) ❏
コミュニティ支援 (PHPFoundation) https://tech-blog.rakus.co.jp/entry/20220128/php-foundation https://rakus.connpass.com/
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 実施したアクションまとめ ❏ 「情報発信しづらい」問題 ❏ 発信しづらいという先入観を解き、"レガシー"との向き合い方それ自
体を武器として発信し続ける ❏ "レガシー"であっても中核技術に特化して取組を続けることにより、ブ ランディング形成につながる
#RAKUSTechCon ©2022 RAKUS Co., Ltd. まとめ
#RAKUSTechCon ©2022 RAKUS Co., Ltd. レガシーサービスとは?(再掲) 最新の技術や製品を用いた情報システムと対比して、 相対的に時代遅れとなった古いシステムのこと。 IT用語辞典 e-words
"レガシーシステム"の項より https://e-words.jp/w/%E3%83%AC%E3%82%AC%E3%82%B7%E3%83%BC%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0.html
#RAKUSTechCon ©2022 RAKUS Co., Ltd. それは"レガシー"なのか? ❏ 「古い=レガシー」ではない ❏ 変わらないから時代遅れになる
❏ 進化しないからレガシーになる
#RAKUSTechCon ©2022 RAKUS Co., Ltd. それは"レガシー"なのか? ❏ 扱っているサービスが「歴史ある」サービスなだけ ❏ わたしたちは変化、進化を続けていく
❏ わたしたちは価値あるチャレンジを続けていく ❏ 積み上げてきた「歴史」そのものの中にそのヒントがある
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 私たちの"レガシー"との向き合い方 ❏ 積み上げてきた「歴史」の中に進化のタネ(=価値)を見出す ❏ 「刷新」ではなく「進化」させることで、その価値を育てていく
1. 新技術にも領域をしぼって取り組む 2. モダンな開発スタイルとハイブリッドさせる 3. 継続的にリファクタリングする 4. 中核技術に注力しブランディング形成する
#RAKUSTechCon ©2022 RAKUS Co., Ltd. ご清聴ありがとうございました