クリエーションラインが提供する内製化支援の内容をさらけ出します
はじめに
こんにちは、こんばんは。社内外でアジャイル開発を推進しているAgile CoEというチームでエンジニアをしている、やたです。 タイトルにもある通り内製化支援として1月からの3ヶ月の間でAS400やCOBOLの保守運用を行っている開発者向けにリスキリング支援やアジャイル開発導入支援を行いました。今回はその体験ブログを書くことによって、この記事の読者に以下の2つをお届けできればと思います。
リスキリングの進め方や成長度合いについて実例を知ることができる
クリエーションライン(特にAgile CoEチーム)の内製化支援の内容がわかる
プロジェクトの背景
ご支援させていただいたのは、レガシーな基幹システム(AS400・COBOLなど)を長年活用している企業様です。DXを推進していきたいのですが下記のような問題を抱えていました。
システムの老朽化が進み、メンテナンスコストが高い
業務の標準化が進まず通常業務を効率よく進められない
また、実際の開発においては、開発ベンダーに依頼しながら運用保守ができる開発者は社内に在籍していましたが、自社のメンバーのみでクラウド環境構築やWebアプリケーション開発を行うことは難しく、webアプリケーションエンジニア育成の知見が少ないためどこから手をつけてよいか分からず困っているという状態でした。 その中で、最初にいただいた要望としては、
モダンな技術に関しては全く知識がないので、クラウドやwebアプリケーションに関する学習を支援してほしい(リスキリング支援)
自社のチームで開発していく上でのマインドやプロセスを学ぶために伴走しながら開発を進めてほしい(アジャイル開発導入支援)
ということでした。 加えて教育・作業時間に費やせるのは週の半分の20時間程度という制約もありました。稼働時間でいえば、おおよそ50%程度です。その制約があるなかで実際にどれくらい成長できたのかを次に説明します。
学習項目と習熟度
リスキリングにおける習熟度の尺度は、IPAが定める価値を創出するために必要なスキルの度合いを参考にしており、大抵のケースにおいてはこの指標が役立つと考えています。ただ一方で、実際の評価は評価者の感覚によってしまう部分もあり、ハックしようと思えばいくらでもハックできるような尺度になっているのも事実で、今後どう運用していくかは課題になると考えています。
また、おおまかな学習項目としては、以下のように設定しました。
フロントエンド
HTML/CSS, Javascript,
バックエンド
Java
ユニットテスト
リーダブルコード
インフラ
基本的なクラウドの知識
AWSのサービスの使い方
HTTP/REST
開発プロセス
Git/Gitワークフロー
アジャイル開発
フロントエンド、バックエンド、インフラに関して広く学習しながらアジャイル開発に関するプロセスについてのトレーニングを行うことで自走できるための最低限のスキルセットを持った開発者を育てるというところを目標としました。
全体を通したスケジュール感
下の図は今回のプロジェクトの実際のタイムスケジュールを示しており、今回のプロジェクトは大きく3つのフェーズが存在します。
最初の立ち上げフェーズでは、チームビルディングをメインで行っており、キックオフの支援やユーザーストーリーマッピングについて後ほど紹介します。次の勉強フェーズでは、モブプログラミングでアプリケーション開発の基礎知識のスキルトランスファーや実践形式でのトレーニングを行っており、教材の内容や進め方について紹介します。最後の開発フェーズでは、実際にスクラムのタイムボックスで3スプリントほど開発を体験してもらった時の進め方を簡単に紹介します。
立ち上げフェーズ
ここからは、立ち上げフェーズについて触れていきたいと思います。もともとアジャイル開発のプロセスを体感したいと要望をいただいていたため、プロジェクトが始まる以前から以下のようなお願いをしていました。
支援が始まる前の事前MTGでは2回ほどやんわりと断られたのですが、自分のこれまでの経験からプロジェクトの立ち上げ段階から想定ユーザーを巻き込んだ開発を行う手筈を整えていかないと必ず顧客が本当に欲しかったものとのずれが生じてくると考えているので強く依頼をしました。想定ユーザーを巻き込む準備をしてもらう点に関しては、今後もクリエーションライン(少なくとも、Agile CoEチーム)が内製化支援を行う上でマストな条件にしていきたいと考えています。 想定ユーザーをうまく巻き込めた要因の一つとしては、支援先関係者の方々がキックオフ合宿を通してモチベーションが高まったことだと思います。インセプションデッキやワークショップを通してクリエーションラインとの協業は他者と少し違うぞ!思ってくれたからこそ、少し大変なお願いにも対応していただけたのかなと思います。
続いては、キックオフ合宿でのチームビルディングについて紹介します。2日間の合宿では以下のコンテンツをオンサイトで実施しました。
ふせんの貼り方ワークショップ
偏愛マップによる自己紹介ワークショップ
インセプションデッキ(我われはなぜここにいるのか)
3ヶ月の個人目標作り
リスキリング支援の学習計画の認識合わせ
スクラムとはなにかの講義
スクラムショーワークショップ
2日間のふりかえり
キックオフの狙い
今回は支援先のメンバーが、
アジャイル開発やスクラムについて未経験である 立ち上がりの準備時間があまり取れなかったため、今後学習を進めていく上で目標や計画が詰めきれていない
であったため、インセプションデッキなどのプラクティスとあわせて今後学習や開発を進めていく上で必要なワークを行い、次の日からすぐに一歩踏み出していけるような構成にしました。
Agile CoEチームでは、チームの立ち上がりを加速するためのキックオフ支援を行っています。詳しくは、私と同じチームに所属しているスクラムマスターの伊藤いづみさんのキックオフでロケットスタート!チームを加速させるワークショップづくりというブログに詳細がありますので、合わせてご覧ください。
ユーザーストーリーマッピング
また、今回の内製化支援では支援開始時点で作りたいもののイメージが固まりきっていなかったため、ユーザーストーリーマッピングというワークショップも行っています。 ユーザーストーリーマッピングとは端的にいうと製品の設計、ユーザーのワークフロー、リリース計画を一度に見える化する手法です。ステークホルダーと開発者が合同で対話しながら下の画像のような図を作成する作業を行うことで、ユーザーと開発者の共通理解を深めながら作りたいプロダクトの解像度を高めることができます。
このワークショップの良い点は、ワークフローからリリース計画まで一度に見える化できることもさることながら、想定ユーザーを巻き込んで、ダイレクトに意見を取り入れられるので、その後も継続して想定ユーザーと協力しながら開発を進めていくための足掛かりにしやすい点だと思います。 実際に今回の支援では想定ユーザーさんからの満足度が高く、これまでの開発とは違った進め方で、ユーザー側からの意見も言いやすいのでやりやすい、との嬉しいフィードバックもいただき、その後の開発フェーズでのスプリントレビューにも協力してもらえる手筈を整えることができました。このように後半の開発フェーズをうまく進めるための準備を支援していきながら、同時並行で開発者のリスキリング支援を進めていたのでそちらについて次で紹介します。
勉強フェーズ
1ヶ月半程度の勉強フェーズの間は以下の参考資料を活用しながら学習を進めていきました。
AWS概論
Java: すっきりわかるjava入門第3版
Spring Framework入門ガイドのうちいくつか
その他にもユニットテストに関する自作資料を用いた講義など
基本的にリモートでモブプロをしながら本や資料を読み進めたり、クリエーションライン側で自作の問題を作って解いてもらい解説する方針で進めています。正直なところ、かなりの学習量だったのですが頻繁に問題を解いてもらったり、「mapとarrayの違いがまだピンときていない」とふりかえりで話に上がれば復習用の資料を作ったりして頻繁に支援先の開発者の方々と対話をしながら学習を進めていました。数人チームで学習メインで進める方式だからこそ得られる利点だと考えています。 教える側の辛さとしては、COBOLなどをメインで保守していた開発者は手続き型のコードに慣れていることが多く、クラスや関数に切り分けることが可読性や保守性につながることを実感してもらうことが最初の壁になります。これらは座学だけでは事足りず、実践を通して感覚を身につけていく以外の方法が難しいというのが自分の経験としてあります。全てを口頭で教えることに拘らず、問題を解いてもらったり、後ほどある実践フェーズへ後回しにすることが大切だと考えています。
スクラムガイドの読み合わせ
弊社アジャイルコーチの笹さん監修のもと、スクラムガイドをチーム全員で読む会の実施もしました。笹さんにスクラムガイドの説明をしていただきながら、その場で学んだことを図示していく方式で学習を進めていきました。以下の図は、実際に作成された図の一部です。
開発フェーズ
開発期間は3週間程度であったため、1週間スプリント3回のタイムボックスとし、スクラムイベントとして行ったのはプランニングとレビュー、レトロスペクティブの3つでした。また、開発は全てモブプロで行いました。スクラムガイドに厳密に沿った開発を最初から行うよりも、スクラムのタイムボックスやスプリントレビューやレトロスペクティブを通して、自分たちのやり方やプロダクトの方向性を更新していく流れを体験してもらうことを優先しています。 その開発期間中のスプリントレビューでプロダクトデモを2回行いました。特に2回目のスプリントレビューで、実際の業務で使うことを想定してデモアプリを触ってくださいというお願いをした際にたくさんのユーザーを取り巻く環境や仕事に関して多くの発見があり、小さく作って実験することの大切さを感じてもらえたと思っています。 クリエーションラインメンバーとして苦労した点は教育支援とプロダクト開発のバランスをどう取るかというところです。稼働時間が0.5人月という制約の中で、クラウド環境構築からフロントエンドまですべてを実践で教えながら進めるのは難しく、どこの学習を頑張ってどこの学習を諦めるかという判断が非常に悩ましいところでした。今回のケースではもともと支援先の開発者の方々がJavaを実際の業務で少しでも扱えるようにしたいとのことであったので、バックエンドに集中しましたが、個々人の目標や開発状況によるので非常に難しかったです。
3ヶ月を通して
リスキリング支援でどれくらい成長したか
下の図は「支援開始時に立てた3ヶ月後の目標値」と「支援終了時に評価した3ヶ月後の実績値」です。
HTML/CSS、 JavaScriptなどのフロントエンド部分と、ユニットテストやリーダブルコードなどの保守性の高いコードの書き方の部分が期待値より下回ってしまいました。これらの要因としては、0.5人月程度の稼働工数で本業との両立をしていたことにより学習効率が想定よりも下がってしまっていた点と、支援先の開発メンバーの方々の本業が忙しくなったタイミングなども重なってしまい、0.5人月の稼働すらとれない時期があったためと考えています。 ただ、稼働時間が想定より少なくなってしまった中でも、支援先の開発者の一人から特にJavaを重点的に勉強したいという話を伺っていたので、その学習支援を重点的に行いました。その開発者の方は、実際にベンダーさんに依存しきっていたJavaのプロダクトコードを自分で読んで理解できるまでに成長できたという話をふりかえりでされていたところが自分の中でも心に残っています。
アジャイル開発の価値を実感してもらえた
プロジェクトの最後のふりかえりで支援先の開発者の方から、このような言葉をいただきました。
今回の支援で体験したいただいた部分はほんの一部ですが、アジャイル開発の考え方や動き方の良さを肌で体感してもらえて実業務に活かそうとする姿勢は自分としても刺激になったのと、自分としてもそういった人をもっと増やしていけるようにしていきたい、とより強く思うようになりました。
リスキリング支援で自分にも感じた成長
リスキリング支援を通して自分が気づいたこととしては、
ということです。 他人に教えるために今まで実は曖昧だった部分を学び直したり、一次情報はどこだっけ?と確認していく作業の中で理解をより深めることができたりして、3ヶ月を通して自分自身のスキルアップにもなった実感があります。子育てを通して親も成長するような感覚でした。
おわりに
長々とブログをお読みいただきありがとうございます。改めて、クリエーションラインでは今回の支援のようにシステム内製化を進めていきたいが最初の一歩が踏み出せないお客様のお手伝いが可能です。また、お客様の状況に合わせてより効果的な内製化支援を検討し、提供することができます。クリエーションラインが提供する内製化支援の他社にはない強みは、下記の3つを1社で提供できることだと思います。
製造業や物流業などの内製化支援の経験が豊富で、ゼロからお客様と対話を重ねて内製化を伴走して支援することができる
KubernetesやDocker, MongoDBなどのspecialistが多数存在していて、その方々が講師の有料研修が受けられる
アジャイル開発を支援してきたスクラムマスターやアジャイルコーチが多数在籍していて、弊社エンジニアとともに伴走しながらチームビルディングやスクラムの実践的支援ができる
今回のブログを通して内製化支援について興味をお持ちの方がいらっしゃいましたら、こちらのフォームからお気軽にお問い合わせください。その他にもクリエーションラインでは内製化支援に限らず、さまざまな支援を行っており、お客様の課題に沿った柔軟な提案が可能です。気になった方はぜひとも上記のフォームからご連絡ください。 また弊社では非技術領域のご支援も行っていて、直近では課題を可視化するVSM(バリュー・ストリーム・マッピング)の事例記事も公開していますので、ぜひ見てみてください!
この記事が気に入ったらサポートをしてみませんか?