ゆーたんのつぶやき

株式会社ノークリサーチにてIT関連のシニアアナリストとして活動しています。

SMB向け開発におけるソフトウェア品質



SMB向けにプロダクトやソリューションを開発しようとすると、
どうしてもコスト高になりがちだという話を良く耳にします。


情報システム管理者が不在であることによる啓蒙コストや
運用に入った後のサポートコストなど克服すべき点は多々
ありますが、品質維持のためのコストも一つの大きな要因
ではないかという気がしています。


エンタープライズ向けかつミッションクリティカルなシステム
では上流工程から詳細設計、モジュール単位のコーディングを
行い、テスト段階では逆に単体テスト結合テスト、システム
テストを行ういわゆるV字型モデルなどが一般的かと思います。


ですが、同じことをSMB向けシステム開発で行うと、工数
が膨らんでしまい採算が合わなくなる可能性があります。
そもそも全てのモジュールに対して境界値テストを含んだ
仔細な単体テストを行う必要が本当にあるのかどうか?を
考える必要があるような気がします。(もちろんシステムの
性質にも左右されますが)
また、いくら単体テストを綿密に行っても、そもそもの
仕様策定段階で顧客が意図したものと違っていたら元も
子もありません。


エンタープライズでは全体最適を踏まえた継続的なシステム
投資を行うので、何か仕様上の不一致があっても次フェーズ
での改善事項に盛り込むことが可能です。ところがSMBでは
それだけの予算確保は難しいので、次フェーズをあてにする
わけにもいかなくなります。それだけ、初期段階での仕様策定
が重要であり、その観点では初期に構築されたシステムの寿命
はSMBの方が長くなる傾向にあるかも知れません。


そう考えると、SMB向けソフトウェア開発においては「如何に
低コストでかつ顧客側にも負担を掛けずに初期の仕様策定を
確実に行うか?」が重要なポイントになってきます。
それを実現する手段として期待しているのがUIとロジックの
分離が綺麗にでき、UIモックアップの段階である程度実際の
動きを確認できる開発環境です。MicrosoftのVoltaやAdobe
Thermoなどがそれに相当するのではと考えています。
これらは「動く仕様書」として、初期の仕様段階における顧客
と開発者との意識のズレを埋めてくれる可能性を持っています。


こうした「動く仕様書」を使って顧客の意図を正しく反映した
システムを短工数で開発し、できたところから実際に動かし、
バグがあったらその箇所に対して重点的に単体テストを行うと
いうサイクルを回すことで、品質と工数のバランスを旨く両立
することができないかと考えています。