システム設計における考慮と思想

おはようございます。  最近は甘いものばかリ食べている杉本です。

気温が上がってきたからでしょうか、いま私は寒天ゼリーが食べたいのだ。

 

本日は、「システム設計における考慮と思想」と題して、設計思想やアンチパターンを幾らかまとめてみる。

もちろん一例なので、他にいくらでも考慮すべきことはある。

 

 

 

 

モデルケース

本記事では、以下の様な要件のシステム開発を行うことを想定する。

要求:

・Webサイト上で、注文を受け付けたい。

要件:

① 受注通知はメールのみでよい。

② 受注後は、メールや電話で納品まで行う。

③ 但し、税務の都合で受注の証跡として日次で受注情報を取得したい。

 

あるあるとまでは言わないが、部品単位でみればオーソドックスな要件だ。

 

 

 

 

考慮「システムが必要な背景は….?」

筆者はよく、これを考える。

例えば、提案を求められたら…. 

 

そこそこ成長する可能性がある事業のスタートアップとして

予想) 今後、大規模に拡張される可能性がある。

提案) 発注者の基幹システムとの連携を考慮して、モジュールとして開発する。

 

既に安定している事業でネットでお試し注文が出来るようにしたい

予想) 事業の急激な拡大はなく、新規獲得や販促をスムーズかつ安定して行いたいだろう。

提案) 手軽に注文できるよう、お問い合わせフォーム型の受注フォームとして、様々なページで使えるようにする。

 

案件によって「費用」、「納期」、「信頼性」等の最優先事項があるので、列挙したらキリがないが最も意識するべきは以下だ。

「その費用で目的を過不足なく達成できるのか?」

概算見積りの段階でこれを決めるのは、容易ではないので併せて幾つか予想して提案を盛り込むとよいだろう。

 

ちなみにだが、趣味で作る場合はとりあえず新しいものを使うことにしている。

習熟度はともかく引き出しが多いほうがいい。

 

 

 

 

考慮「それ、だれが保守すんの?」

この項目、前述の思想とも絡むが、「保守する人がだれか」も大切だ。

例えば発注者が商品管理を行うのか、システム運用の選任が行うのか。

 

もしも価格を抑える事が最重要であれば、運用も保守扱いとして管理画面等を設けずファイルでの管理を選択する事になるだろう。

 

発注者側でリアルタイム更新や管理作業を行いたい場合は、ある程度価格や期間を犠牲にして画面開発を行う必要がある。

 

今回のモデルケースでシステム屋が保守運用をする場合は、大体の場合において

Excelで台帳管理 + マクロでファイル出力

が価格と開発工数を抑える最善手だろう。

 

 

 

 

思想「アンチパターンや古い技術もやむなし…」

世のシステムには、「アンチパターン」と称され排除される悪手や、その設計ださくね?というようなものが沢山見受けられる。

命名においても、「論理名: ○○区分/物理名: HogeFugaKbn」等のCOBOL時代かの様な物も沢山ある。

 

しかし、前述の保守の問題も考えると所謂「共通認識」がとても重要だ。

 

今回のモデルケースで考えてみると….

稼働から5年が経ち、沢山の改修を実施した当時の開発者がいなくなった。

そんな時、そこを見たら自社で経験者が少ない、その時流行した技術が多分に含まれていた。

が、ドキュメントはメモ書き程度で全体像が把握できない。

 

こんな事になってしまえば、その人がどういう思想でシステム設計をしていたのか誰も理解できず、障害を連発するシステムと化してしまう。

こういった事例は多々あることから、その時々での周囲の「文化」に合わせる事が必要だ。

 

もちろん、脳死設計で慣例によるレガシーパターンは滅びるべきだ。

理想論を理解し、その設計のデメリットをしっかり理解し、周囲に説明できて初めて、いわゆる「ヘンテコ」設計/実装が許されると考えたほうがよい。

 

私も今開発中のシステムでは、正確かつ早い処理、今後の拡張性が求められるため、複雑に絡んだコードで実装している。

それをいかに隠匿して、使いやすいインターフェースとして外部仕様にできるかが設計の妙味なのだ。

 

 

 

 

さいごに

近年では、古風な土建屋スタイルのシステム開発ではなく、顧客を巻き込んでPDCA等を素早く行いシステムに反映する開発スタイルが増えている。

見積りも、KKD(勘と経験と度胸)ではなく明確に数式化されたものもある。

 

しかしながら、日本のシステム業界においては、職人芸と言わざるを得ない案件進行を余儀なくされることも多い。

 

ホームページへの認識と期待が「営業ツール」ではなく、「ビジネスと顧客間における双方向の架け橋」となっていく今後は、小規模システムの需要が上がるだろう。

 

 

 

 

おまけ

防衛系とかのシステムってどういう作りしているのか疑問で調べていますが、当然ながら出てきません。

以外とオープン系の技術が使われていたりするのかと想像が止まずに夜しか眠れなくなりました。

書いている間に寒天ゼリー欲は消えましたが、今度はコーヒーが飲みたくなりました。 

本日も1日ご安全に!