thumb image

アジャイル開発における「開発・実装工程」とは?

アジャイル開発とは、機能単位の小さなサイクルで、
計画→設計→開発・実装→テスト
の工程を繰り返す開発手法です。

このうち「開発・実装」工程について、下記のような疑問をお持ちの方も多いのではないでしょうか?

上記のような疑問や不安にお応えしていきます。

今回の記事を読めばこれがわかる!

☑️ 開発・実装工程の具体的な内容
☑️ 開発・実装工程の流れ
☑️ 開発・実装工程の前に準備すべきこと

この記事を書いている私は、アジャイル開発を行っている開発会社Enlytに勤める鈴木です。
Enlytでは、自社プロダクトのセールスを行っています。

今回の記事は、実際にベトナムの開発拠点で働いている山村さんにインタビューを行い、アジャイル開発での実装の工程や具体的な注意点について、IT初心者でも分かりやすく記載しています。

開発・実装工程とは?

実装とは?

ソフトウェア開発における「実装」とは、仕様として期待される振る舞いを、実際に機能する実物としてプログラムに落とし込むことです。
コーディングだけではなく、仕様のとおりに動作させるための一連の作業(コードレビュー・テスト・デバックなど)を含みます。

アジャイル開発においては、スプリントプランニング*が終わった後、開発・実装工程に入ることになります。

開発・実装工程を細分化すると、おおまかに下記の4つの作業に分かれます。
【コーディング】【統合】【内部デプロイ】【テスト】

*スプリントプランニングとは
スプリントのゴールを話し合い、そのゴールを達成するために必要な作業を計画するミーティングです。
参考:アジャイル開発における「スプリントプランニング」とは?

開発・実装工程の具体的な内容

  1. コーディング
    プログラミング言語を使用して、ソースコード*を作成する作業です。
    似た言葉にプログラミングという言葉がありますが、プログラミングは「プログラムを作成する作業全般」を指します。 つまり、コーディングはプログラミングの作業の中の一つです。

    *ソースコードとは、何かのプログラムを作る際に、そのプログラムに「どんな動作をさせたいか」という処理の内容を書いたテキストファイルのことです。

    スプリントプランニングで実装タスクを細かく分解した後、エンジニアはそれぞれ割り振られた部分のコーディングを行います。
    各エンジニアにより扱えるプログラミング言語や得意言語が異なるため、適材適所で役割を決定していきます。

例えば、iOSアプリのログイン機能を開発する場合、下記①〜④のようなタスク分担が考えられます。

iOSエンジニア
①表側のUI作成
②ログイン処理(APIの呼び出し)

バックエンドエンジニア
③ログイン情報を保存するためのDBの作成
④情報を連携するためのAPI*の作成

*「アプリケーション・プログラミング・インターフェース(Application Programming Interface)」の略称で、ソフトウェアやプログラム同士の情報連携をするためのインターフェースのことです。


2.統合

統合とは言葉の通り、「1.コーディング」で役割分担をして作成されたソースコードを一つに統合する作業です。

弊社EnlytではGithub*を使ってソースコード管理をすることが多く、統合もGithub上で行います。まずはシニアエンジニアがコードレビューを行い、そこで問題がなければ、ソースコードを統合していきます。

*GitHubとはGit(バージョン管理システム)を用いた、ソースコードを管理できるツールです。
参考:【超入門】GitHubの使い方や機能、GitHubの導入方法

例えばiOSアプリのログイン機能を開発する場合は、iOSのシニアエンジニアが上述「1.コーディング」の①と②のコードレビューを行い、問題なければ①と②を統合します。

3.内部デプロイ

統合したソースコードを、チームメンバーのみアクセス可能な環境(開発環境)下で動かせる状態にする作業です。

ここで、実際に動くものが見られる状態になります。

4.テスト

実際に機能としてしっかりと動作をするか確認する作業です。画面設計書に沿って様々な振る舞いのケースを想定したテストケースを作成し、テストを実行します。これにより仕様との差異や不具合を発見し、プロダクトの品質を担保します。

弊社ではQC(Quality Control)エンジニアが、検証端末を使ってテストを行っています。

ここで不具合や修正点が見つかれば、エンジニアはソースコードの改修に入り、1〜4の工程が繰り返されることになります。

開発・実装工程に向けての事前準備

開発・実装工程に入る前に準備・確認すべきもの

1. デザイン

Figma*などのデザインツールを用い、開発チームにデザインを共有します。エンジニアはデザインファイルをもとにUIを実装していくため、あらかじめ細部までデザインを詰め、共有しておく必要があります。

*Figmaとはブラウザ上で簡単にデザインができるツールです。
チーム内でデザインを共有することができるため、利便性が高くチーム体制での作業に向いています。

2. 画面設計書

画面設計書とは、どんな画面が表示されるのか・部品の説明・各機能のふるまい等を定義したドキュメントです。
エンジニアは画面設計書を参考に具体的なイメージを持ってコードを書いていき、QCは画面設計書に書いてあることを正だと思ってテストケースの作成やテストを進めます。

画面設計書の重要性や書き方については、【わかりやすい】ソフトウェア開発における画面設計書!グローバル環境でも使える画面設計書の書き方、サンプル、活用方法を公開 もご参照ください!

3. Q&Aシート

実際のプロジェクトで使われたもの。日付・質問者・回答者・進捗状況や優先度の欄を設けている

プロジェクトを進めていくにあたって出てくる質問と、その回答を管理するためのシートです。

特に実装前には、開発チームから仕様や実装方法・必要なツールについてなど様々な質問が発生します。質問と回答を一覧で見られるシートを作成し記録しておけば、質問の重複防止や進捗の管理が容易になります。

4. APIやライブラリなど外部接続先の情報

プロダクトの開発においては、作業効率化やセキュリティ担保のため外部の技術を導入することも多いです。

例えば決済機能を0から開発しようとすると、相当な時間がかかり、万全なセキュリティ対策も必要になります。
その場合、Stripeなどの外部決済システムを組み込むことで開発工数が短縮でき、セキュリティ面の安全性も担保できます。

このような外部システムを取り入れる際は、導入方法が書かれたドキュメントや、組み込み時に必要なID/キーなどの重要情報をあらかじめ確認・準備しておきましょう。

また、別の事例として、弊社のクライアント側で実際のエンドユーザの重要な情報(生年月日・住所etc..)をお持ちの場合、セキュリティ上の問題で弊社側がアクセスできる情報に限りがあります。
このようなケースでは、クライアント側で実装されたAPI情報のみをいただき、組み込むことが多いです。

外部APIを導入する際は、実装に入る前にAPI仕様書を準備しておくと良いでしょう。

※API仕様書のイメージはこちら

スムーズに実装工程に入れるよう、上記のような外部接続先情報は早めに確認・手配しておきましょう。

実装・開発工程でプロジェクトマネージャーやディレクターが行うべきこと

株式会社Enlytでは、ベトナム拠点とのワンチームで開発体制を組んでおり、多くの場合ベトナム拠点に開発チームの管理をするPM(プロジェクトマネージャー)・日本側にクライアントとの窓口になるディレクターが入る体制となります。

この弊社の開発体制において、PMやディレクターが開発・実装工程期間中にやるべきことを解説します。

1.確認事項や問題の吸い上げ・タスクの整理

できるだけ準備をしていても、実際に実装を進めていく中で新たな確認事項が出てきたり、問題が見つかったりすることは多々あります。

PMは、デイリーミーティング等でメンバーから確認事項や問題点を吸い上げ、状況を整理します。

ディレクターはPMと連携しクライアントサイドと相談しながら、質問への回答・問題への対応策の決定等、日々臨機応変に対応していきます。
スプリント内で対応しきれないタスクやバグが発生した場合は、一旦タスクを積んでおき次のスプリントプランニングに回すといった判断も必要になってきます。

2.次のスプリントの準備

開発者が実装に集中している間、ディレクターは先を見通し、次のスプリントでやるべきことを整理します。

直近の状況もふまえ、クライアント・PMと連携しながら次のスプリントで取り掛かるべきタスクの内容や優先度、あらかじめ準備すべきことを詰めておきます。

やるべきこと・そのために必要な情報ができる限り揃った状態で、次のスプリントプランニングに臨めるようにしています。

*次スプリントの準備のためのイベント「リファインメント」については、「リファインメント」とは?プロダクトバックログにおける役割を解説 もぜひご覧ください!

実装・開発工程の事例〜弊社Webサイト制作の場合〜

ここからは具体的な事例として、弊社EnlytのWebサイトを制作するにあたってどのように実装を行っていたか、簡単な流れを紹介いたします。

規模の小さなWebサイトの実装であるため、アプリ開発やシステム開発案件よりも単純なフローとなりますが、一つの参考としていただければ幸いです。

今回、Webサイトの実装に関わったメンバーは下記三名です。

  1. コーダー
    →実際にコードを書く人
  2. コードレビュワー
    →コーダーが書いたソースコードに問題がないかを確認する人
  3. テスター
    →コードだけでなく、デザインが崩れていないかや、設計書通りに動いているかなど、
  4. 全体的に検証を行う人
実際のGithub画面

Webサイトを実装する際の流れ

1.コーディング
コーダーがFigmaで作成したデザインと画面設計書を元に、コードを書いていきます。

2. コードのレビュー
コードレビュワーが、Github上でコーダーが書いたコードに問題がないか確認をします。
※コードに不備や改善点があれば、コーダーの修正が入ります。

3.開発環境にソースコードを反映
まずは内部のメンバーのみがアクセスできる開発環境にソースコードを反映します。
ユーザーが実際に使う本番環境に反映する前に、安全にテストを行うことができます。

4.テスターがチェック
開発環境にてデザインが適用されているか・画面設計書通りの動きになっているかを確認します。
※デザインや機能に関して改善項目や問題点があれば、再度コーダーの修正・コードレビュワーのレビュー・開発環境への反映作業が入ります。

5.本番環境に反映
ユーザーが実際に使う本番環境に反映し、リリース完了です。

まとめ

今回は、アジャイル開発での実装・開発工程について解説いたしました。
実装工程において、何が必要でどういった流れで進んでいるのか、イメージを掴んでいただければ幸いです。

株式会社Enlytでは、ベトナムと日本のグローバルなチーム構成でありながら、このようなアジャイル開発プロジェクトを数多く成功させています。

何かお悩みがあればぜひご相談ください!

facebook twitter