「Legacy Meetup Kyoto」参加メモ
Sansan主催の勉強会に参加。
非エンジニアでも多くの気付きが得られる勉強会でした。
技術的な話しはこのブログでは書けないので(不勉強ゆえ話しについていけず...残念)、詳細は登壇者の方々の資料参照ください。
▼加畑博也さん / Sansan株式会社
SansanはCMのイメージもあり何となく新しいイメージだけれど、実はそこそこレガシーなシステム。技術的負債に立ち向かった実例紹介。
▼山本寛子さん / ヤフー株式会社
全社的な技術移行プロジェクト。リリース直前にプロジェクトへアサインし、既存システムや業務知識を学びながら技術移行をしなければならない難易度の高さや、全社的プロジェクトゆえにハンドリングが効き辛いことの難しさなど、数々のハードルがありながらも、それらを乗り越えた体験談。
アプリケーションエンジニアながらも、インフラレイヤーのレガシーに立ち向かう「やる人いないから俺がやる」というマッチョな実績のお話し(自ら火消し役を買って出た一方で、果たして自分と同じことを他の人がするのか?そもそも全レイヤーを見る必要があるシステムってどうなの?と、次への課題出しもされています)。
登壇者の方々のお話しを伺って、感じたことは大きく3点。ヘンナニホンゴですが、以下のような感じ。
- やるかやらないかだけ
- やればやりようはある
- やれるように合意とる
やるかやらないかだけ
目の前にある技術的負債に疲弊しながらも、色々な理由でレガシーシステムに着手できない。負債が自然解消することは無く、いつか絶対清算しなきゃいけない。でも出来ない(...のループ)。
もしそのような状況に陥った時、私がぱっと思いつくのは「やれない理由を潰していくこと」ですが、登壇者の方々のお話しは「やれる要素を積み上げていく」というものだったと理解しています。
加畑さんのお話しで言うと、レガシーな現状が何となく良くないのはみんな分かっているので、まずは今起きていることを計測・定量化して「見える化」し、課題に取り組めるような状況を作る。
對馬さんは、レガシーになった経緯を理解したうえで、解決のために何が必要かを洗い出す。そのうえで、必要なことを「(一旦)全部、自分でやる」。
課題が山積する中で、とりあえず走り出せる状況を作られていました。
やればやりようはある
プロジェクト終盤でのアサインとなった山本さんは、分からないことは、社内wikiを活用したり、他のチームの方を頼るなど(本家のgithubでissueを挙げていた人が実はyahoo!の社員さんだったとか!)、ご自身の置かれている環境をフル活用しつつ、何とかプロジェクトを推し進めていたそう。
また、マッチョ對馬さんは、巨大なレガシーシステムを目の前にするも「巨大だが、個々の問題は解決できる」と状況を認識し、これまでのエンジニアが残したドキュメントを参考に断片的な情報を紡ぎ、分からないことは詳しい人に聞きながら、ご自身の知見を溜めていったとのこと(「大体の問題は過去に事例がある」は個人的に目から鱗的名言)。
やれるように合意とる
ざくっとは周囲の巻き込み方の話ですが、これは加畑さんが分かりやすく言語化されていました。
ステークホルダー、開発メンバーとの合意はマストで、前者については正しい情報を挙げることに注力し、後者については「なんのためにやるのか」を繰り返し伝えることで、関わる人たちを巻き込んでいった、とのことでした。
伺ったお話を思い出しながら(感想)
自社開発と受託開発とでは前提が違うのかなと想像しつつ、レガシーシステムに立ち向かう皆さんのお話しに、非常に勇気付けられました。
その上で印象的だったのは、皆さん(?)楽しみながら難局に立ち向かっていること。
山本さんは、明示的に「新しい言語に触れることは楽しい」と仰っていたし、便利で新しい技術をキャッチアップすることで変化対応力も付くと仰っていました。
スキルや技術は陳腐化するもの(なので追いかけるのはナンセンス)、という言葉をどこかで聞いたような聞いてないような気がしますが、新しい技術を追いかけ続けることは純粋にワクワクするし、そのワクワクを尖らせることで、現状に満足せず(悲観せず)新しいことに前向きに取り組めるマインドやスタンスが身に付くのかなぁと感じました。
ぼんやりと、エンジニアの志向性に(改めて)触れることができた。そんな勉強会でした。