1。はじめに
オフショア開発をしている時、「品質は問題ないでしょうか?」という疑問がよくお客様から来る。それに対して、品質とは何か、よい品質とは何か、説明をします。

 

2。ソフトウェア品質とは

ソフトウェア品質とは仕様に達成するレベルであると考えます。

例えば:

・各機能の品質(ユーザ操作でうまく動いて期待通りのアウトプットを出すこと)

・デザインの完璧さ(デザインが親切であること、使いやすさ)

・スケーラビリティ(Scalability)(機能を増やしやすいこと、ユーザ数の増大に適応できる能力)

など

 

3。どんな要素が品質に影響を与えるか

ソフトウェア開発にはライフサイクル(Life Cycle)があります。

1ー計画:受注案件に対応するリソースやスケジュールなどを決める。

2ー要件定義:お客様の要望、業務フローをヒアリングして開発範囲(Scope)をドキュメントにする。

3ー設計:開発範囲から基本設計書、詳細設計書を作成する。

4ー開発:実装する。

5ー試験:テスト仕様書を作成して検証する。

6ー保守:納品の後に正しい状態を保つ。障害が発生した場合、もちろん調査したり、修正対応したりする。

品質が良いかどうかは基本的に試験の段階で確認できますが、影響を与えるのは上流の工程からである。

下記の図を見ると上流工程ベースで製品が作られるので、上流でのミスは中流、下流の不具合になりやすい。なので出来るだけ上流での想定を広げましょう。

*上流工程:計画、要件定義、設計

*中流工程:実装、単体試験

*下流工程:結合試験、総合試験、保守

さらに、テスト仕様書も上流を元に作成するので、品質の判断にも影響します。

 

例1:お客様(C)・開発会社(D)

・D:(開発終了!)IOS版、Android版アプリをリリースします。ご確認ください。

・C:タブレットで利用ができません、何故でしょうか?

・D:???(しまった!開発のプラットフォームの認識がずれている。)

→この時点での認識齟齬は、お客様・開発側どちらにも大きな影響を与えてしまいます。

 

例2:

C:(リリース間近)UIをこのように修正して頂けませんか?

D:またしまった!

→画面UIなどでも最初からお客様と合意しなければ、開発もやり直しに。

 

例3:日本側(J)、オフショア側(O)

・J:「戻る」ボタンを押下したら、一覧画面に遷移されない。不具合なので対応してください。

・O:「戻る」ボタンを押下したら、前の画面に遷移すると思いましたが。。。勝手に実装してしまいましたが、確かに画面仕様書にも記載がなかった。

・J:なるほど。

→このようなケースであれば不具合という判断もできない。

したがってBSE(ブリッジSE)は必ず仕様をお客様/ディレクターと確認してオフショア側へのドキュメントに記載した方が良いでしょう。

 

4。オフショア開発について

オフショア開発の場合、言語と考え方の差異がありますので、BSE(ブリッジSE)の仕事はメインでそのような差異を無くしてスムーズに認識を合わせなければいけない。

5。まとめ

オフショア開発で品質を上げるのは簡単ではないと思いますが上流から下流までの工程を少しずつ改善すれば品質向上に繋がります。

まずは上流で要件を固める、そして(ブリッジSE)がしっかりとコミュニケーションを図りプロジェクトを進めていけばきっと成功できるでしょう。