資料公開|内製化の成功への道 〜アジャイル開発・DevOpsと人材育成の両立〜

公開 : 2023.10.19  最終更新 : 2023.12.21

2023年10月17日にオンラインセミナー『内製化の成功への道 〜アジャイル開発・DevOpsと人材育成の両立〜』を開催いたしました。
この記事では当日用いた資料を公開しています。

動画で見る

近年、DX施策のひとつとしてシステム内製化が注目されています。
NCDCでは、以前実施した 内製化やDevOpsをテーマとしたセミナーでも、今内製化が求められている背景や、内製化に取り組む際によくある課題などをご紹介しました。

今回のセミナーでは一部は以前のセミナーと同内容を扱いながらも、内製化やDevOpsの導入に取り組む開発チーム内部の視点(エンジニアの視点)を加えて解説しています。
以下に、そのポイントを抜粋して紹介します。

開発プロセスについて

開発プロセスとは、簡単にいうとアジャイル的な進め方でやるのかウォーターフォール的な進め方でやるのかを考えることです。一概にどちらが正解ということはないので目的によって使い分けるのがおすすめですが、柔軟性の獲得を内製化の目的に含む場合はやはりアジャイル的な手法は重要です。

アジャイル(スクラム)で進める場合、1~3週間などの短期間で一定の機能を開発し、それを繰り返し行うことでシステム全体をつくっていきます。
期間ごとにプロダクトオーナーを中心にプロジェクトメンバー全員で、機能要件が満たされているか、確認することが好ましいです。具体的には下図のようにスプリント1、スプリント2…と続いていくスプリントの区切りごとに、つくったものの検証を行い、リリース可能なものは素早く公開します。

このように短期間で開発・検証・リリースを行うには、デプロイの自動化やテスト環境の整備がとても重要になります。

GitHubによるタスク管理の例

下図は各スプリントのタスク管理のサンプルです。
これはGitHubで管理しているケースですが、1週間ごとに誰がどんなタスクを持っているのか一覧できるようになっています。

次のスプリントで何をするか決める際は、プロダクトオーナーとメンバーがコミュニケーションを取りながら次の期間でこなせる範囲を一緒に決めていき、各自のタスクをGitHubで進捗管理します。

もちろん、予定した期間でタスクが終わらないケースもあると思います。その場合は、スプリントミーティングで対応を議論して、次のスプリントのタスクとして設定し直すこともあります。
この際、遅延を無闇に許容してしまうのは良くないので、なぜそのタスクが期限までに終わらなかったのか検証することは重要です。ただし、原因を個人にフォーカスするのではなく、プロジェクト全体の課題として議論し、チーム全員で解決に取り組むこともとても大切です。

AWS Amplifyの活用

先に短期間で開発・検証・リリースを行うには、デプロイの自動化やテスト環境の整備がとても重要だと解説しましたが、近年はこれらが比較的手軽に実践できるようになってきています。ビルド、テスト、デプロイ、リリースの自動実行や、テストの環境を容易に準備できるツールがあるためです。
例えば、AWS Amplifyというサービスがあります。

A、B、Cという3つの機能を開発する際、AWS Amplifyを使うとAの開発環境、Bの開発環境…とそれぞれ分けて簡単に用意できます。
そして、Aの開発が済んで正しく機能するかどうかをテストしたい際は、AWS Amplifyのpreview機能を使うと、AWS Amplifyによって生成されたURLから簡単に動作確認を行えます。
先ほど説明したスプリントごとの確認を行う際は、このPreviewのURLをプロダクトオーナーや他のメンバーに見せるだけで簡単に検証を行えるのです。

迅速なコミュニケーションが重要

システム開発においては必ず仕様に関する質疑応答や再検討が発生しますが、短いサイクルで設計・開発を進める場合は質疑応答に長い時間をかけられないため、発生した課題を迅速に解決する必要があります。
そのため、臨機応変に対応できる体制やツールの準備をすることや、立場に関わらずチームの皆で課題解決に取り組むという意識づくりが重要です。

臨機応変に対応するための準備

slackやteamsなどのチャットツールを利用する(プロダクトオーナーと開発メンバーが別の企業に所属している場合などもチャットツールで連携するのがおすすめ)

  • スプリント期間中に仕様の漏れが判明したとしても、チャットであればその仕様を詰めるためにプロダクトオーナーに問い合わせればすぐ解決する可能性も
  • メールやスプレッドシートの場合チャットほど手軽でエンジニアが使い慣れたツールではないので、情報連携の頻度が大幅に落ちてしまう
  • メールやスプレッドシートを主なツールに用いる場合はミーティングを細かめ行うよう事前に設定しておくなどの工夫が必要

ひとりのタスクが止まってしまうと、全体へ影響が出るおそれがあるので、チームで課題解決に取り組むという意識づくりが重要

  • 職種や立場は関係なくチーム内で声をかけあい、もし遅れているものがあれば誰かが手助けすることでプロジェクト全体の進行を改善します

開発と並行して人材育成を実践した例

NCDCでは、アジャイルやDevOpsに不慣れなお客様に対して、NCDCとお客さまの共創チームで開発を行いながら、人材育成を支援した例があります。
このケースでは、時間的な制約もあり人材育成のためだけの時間はとらずにはじめから開発と人材育成(NCDCのエンジニアからお客さまのエンジニアへのスキル移管)を並行して行いました。

スキル移管は主に定例ミーティングでの技術解説、ソースコードレビュー、モブプロと呼ばれる、画面共有しながら二人で一緒にコードを書いていく手法などを通じて行います。

実際にエンジニア間で行ったことは次のとおりです。

  • 仕様解説:機能概要と、その機能の実現に必要な処理を共創チームで一緒に検討する
  • コード理解:既存コードの理解に時間をとり、似た処理があればどのように実現されているのかを確認
  • 実装:教わる側のエンジニアが主体となってソースコードを書く
  • ソースコードレビュー:上記の3で実装されたソースコードを教える側のエンジニアGitHubで確認し、改善点があればコメントを加える
  • モブプログラミング:画面共有やVscodeなどの同時編集可能なエディタを使用して教える人・教わる人が一緒にコードを書く

これらの作業を随時slackでのチャット、meetでのWeb会議、バーチャルオフィスでの会話などで気軽にコミュニケーションを取りながら行います。

スキル移管に関しては、最も重要なのは教わる側のエンジニアにコードを書く時間、レビューを受ける時間などをしっかりと確保していただくことだといえます。
十分な時間が取れるかどうかにより、人材育成(スキル移管)の成果は大きく変わります。

内製化やDevOpsのご相談はNCDCへ

NCDCは、AWSの「内製化支援推進AWSパートナー」に参加しており、豊富な実績と知識で内製化をサポートすることが可能です。
クラウドネイティブなシステムの設計や、柔軟なシステム運用を可能にする先進的な開発手法などの知見・技術をお伝えすることで、ユーザー企業が自走できる開発チームを社内に立ち上げる支援をしています。
内製化についてお悩みの方は、ぜひ一度NCDCにご相談ください

ページトップへ

お問い合わせ

NCDCのサービスやセミナー依頼などのお問い合わせは
下記のお電話 また、お問い合わせフォームよりお気軽にご連絡ください。

050-3852-6483