「設計」の重要性について

IT企業、と言えど、中身は様々です。

webサイトを制作する会社、ゲームを作る会社、ITコンサルティングを行う会社。
そして、弊社のような受託開発を行う会社まで、業態は様々です。

また、受託開発と言っても様々で、業務システムを作る会社、インフラを構築する会社など、これもまた細分化されます。

そのなかで、当社が得意としている開発の一つが、「製品開発系」と呼ばれる分野です。
具体的には、製造業の会社が作る製品に組み込まれたり、製品を制御したりするソフトウェアのことです。
複合機のタッチパネルのUI、LSIに組み込まれる制御ソフト、ブレードサーバのデバイスドライバまで様々なものがあります。

そして、この製品開発系の特徴として、「設計」の重要性が挙げられます。
製品に組み込まれ、アップデートが自由に出来ないこのようなソフトウェアは、非常に高いクオリティが求めっれるからです。

例えば、品質の追求一つとっても、
バグ

  • 正常に動作するのは当たり前
  • 異常発生時の対応によって品質が決まる

パフォーマンス

  • 省メモリ
  • 処理速度

拡張性

  • 仕様変更などにより、追加(削除)が発生
  • ロジックを変えずに変更

など、細部に至るまで設計で徹底的に詰めます。
従って、どうしても設計には時間ががかります。具体的には以下の様なイメージです。
設計時間 > 実装時間

設計の定義:フローチャート,関数の構成・処理
実装の定義:コーディング

我々は、設計で品質を高めることが重要であり、

  • 未然のバグ解消
  • 仕様変更などに対して柔軟に対応可能

以上のようなソフトウェアを作成することが重要と考えているのです。