スポンサーリンク

外注TIPS

スポンサーリンク

非機能要求の認識ずれ

ざっくりとした仕様をもとに業務委託,特に準委任契約を実施する場合,ざっくりとした振舞仕様を作製する段階で,自社側は関係者とレビューを通して認識合わせが出来ていますが,委託側は振舞仕様を依頼されても,振舞仕様以外のことは推測でしか分かりません.

むしろ振舞仕様は分かりやすく,相手も不足に気付いて確認してくれる可能性が高いので,非機能要件こそ明記すべきなのです.

準委任なので,ざっくりとした説明で開発を進めてもらい,都度相談という形を取っていると,技術選定が概ね済んだ後に非機能要件を満たせないことが判明した場合に大きな影響が出ます.

  • 言語・技術・アーキテクチャ
  • 応答性
  • セキュリティ

今回問題になったのが応答性ですが,非機能要件一覧表はIPAが出していますから,それをもとにざっくり記載して依頼するのがお互いにとってストレスなく進められるでしょう.

システム構築の上流工程強化(非機能要求グレード):IPA 独立行政法人 情報処理推進機構

こういう存在にさっさと気付いておくべきだったのだ・・.

表示要件は明確に定義する

UI表示,特にパフォーマンスの制約を受ける場合は,表示要件を明確に定義しておかないと確認のやりとりが多くなります.

  • Zoom out時の画像つぶれ問題

表示系で避けては通れないのがZoom out時の画像つぶれ問題です.このための対策として以下のような仕様を策定します.
1. Zoom outレベルを制限する
2. Zoom out時に表示を縮退する

1.であればここで終わりです.
しかし,1.にパフォーマンス面で問題がある場合には結局どこかで2を検討する必要があります.縮退する場合,ある閾値Xを超えた場合に表示をある程度まとめる,という仕様を取ることが多いでしょう.

パフォーマンス制約

  • ある閾値を表示状況によらない固定値Xとするか表示状況による可変値Xにするか

閾値をズームレベルとします.ズームアウトするにつれて表示数は増えるので負荷が増大します.最大負荷を想定して,最小ズームアウトを固定値Xとするか,表示数に応じて閾値を変更する可変値Xとするか,の2通りが考えられます.

この仕様決定自体は要件により決まります.顧客がズームイン,ズームアウトした場合に挙動が固定ズームレベルで変化することを望むのか,フルスペックの動作を可能な限り継続したいのか,です.ソフトウェアの目的に依りますので,これを明確にしておく必要があります.

また,可変値とする方が要求レベルとしては高く,工数が多くかかることが想定されます.MVP(Minimal Viable Product)という視点からは,開発高速化のためにまずは固定値から始めることを選択,提案することが可能です.

画像つぶれの制約

こちらはズームレベルに対して固定値Xを設定し,対策できます.ある閾値以降はグルーピングした情報を表示というのを都度繰り返します.

ただ最も厄介なのはZoomレベルって,実際の表示ではどの大きさなの?というお話です.

ピクセル単位で指定することができますが,ピクセル単位の場合はディスプレイの画素数・インチ数で実際の表示長が異なります.また,Windows自体にも拡大・縮小の表示機能があるので,ますます訳が分からなくなります.

  • ピクセルで指定する
  • 表示ディスプレイ環境の画素数,インチ数,環境表示倍率を指定して,ピクセルで指定する
  • 環境によらない表示単位を使用して定義する

ピクセルだけで指定するのは,表示確認に時間を要するのでお薦めしません.定義は明確ですが,見た目が思ったようにならない可能性があります.

以下が分かりやすかったですが,

Android では dp
Web ApplicationではCSSピクセル

を使用することでデバイスごとの差分を吸収でき,統一した表示長にできます.

「解像度」の理解があいまいだったので備忘録としてまとめてみた|NEWS|株式会社INDETAIL(インディテール)
INDETAILからの最新のニュースを掲載。プレスリリースやメディア掲載情報、代表坪井の講演予定やレポートなどをご覧いただけます。
タイトルとURLをコピーしました