「良いソフトウェア」についてつれづれなるままに考えてみた。


良いソフトウェアの指標について個人的に思うものをリストアップしてみる。

1. 動くものであること
 想定した挙動であるか入念にテストされていること
 致命的な不具合がないこと

ソフトウェア開発者としての経験と、
テストに関する知識が大きく影響しそう。
境界値分析とか、基礎的なことから丁寧に実行していく必要がある部分。


2. 使い方が理解しやすいこと
 自然なシーケンス
 冗長さを取り払った必要最低限の簡素な情報の提示
 究極は README を作る必要がないこと  

主にコミュニケーションスキル。
デザイナーやアーキテクトとコミュニケーションを取って、
 - 要求仕様を明文化
 - テスト項目を網羅的にリストアップ
を行うことが要求される。
出戻りが発生するストレスを経験してこのへんのスキルの重要性を体感していくイメージ。


3. ストレス無く使えること
 処理が遅くない
 やりたいことがすぐできるシーケンス

処理速度に関するパフォーマンス要求は、
アプリケーションレイヤだけでできること、
OSカーネルのレイヤでできること、
ハードウェアレイヤでできること、
UIデザインでできること
など、それぞれのレイヤでできることが個別にリストアップできる。
どれもが並列に重要というわけではなく、
その時々で、最もクリティカルに効いてくる部分に注力すれば良い。

コメント

このブログの人気の投稿

Callback関数を知らん人がまず理解すべきことのまとめ。

C言語でBluetoothスタックを叩きたい人のBluetooth開発入門その1

構文エラー : ';' が '型' の前にありません