SE(設計者)に忘れてほしくないこと

強固なものはシンプルな設計から

1.システムを構築する技術

現在のシステム開発ではベースとなる技術が幾つか用意されており、それらのどれかを採用し構築を行うことが殆どである。採用基準は業界によって異なるが、実績のあるもの、効率よく構築ができるもの、構築会社が得意としているもの、おおよそその様な選定基準で採用が決まる。

当たり前のことだが、採用したベースの技術のポリシーに沿った実装(工法)でシステムを作成していかなければ、良いものはできない訳である。

2.使いやすさと頑丈さの兼ね合い

使いやすいシステムを設計するために、顧客と打ち合わせを重ね、あらゆるケースに対応したシステムフローを作成する。その際設計者は、そのフローの裏で動いているデータに着目し、できること・できないことを判断する必要がある。データがぐちゃぐちゃになってしまっては、骨組みのバランスが悪い家と同じである。後々何が起こるのか想像に難くない。

人間の脳に記憶できるものには限りがあり、全てのデータを把握することは不可能であるため、把握可能な適切な範囲内で機能を設計し、データの管理を段階的に整理していくことが大切である。

結果論になってしまうが、案外重要なデータは数少ないものであり、それをしっかり抑えたフロー(機能分割)を作成することができれば、必然的に使いやすいシステムになると信じ、顧客との調整を重ねる勇気とコミュニケーション力が必要である。

一番やってはいけないのは、言われたままにフローを組んでしまうことである。これではSEとして顧客と打ち合わせをしている意味がない。プログラマーからも信頼を失い、SEとして仕事を行うことはできなくなる。

3.シンプルな設計とは部品の組み合わせ

ここまでのことを踏まえると、難しいことではあるが、やはり全体を見据えた上で機能を設計し、機能ごとにしっかりとした部品を使い構築することが重要であると言える。家でも車でも何でも、しっかりした部品・資材がなければ良いものはできないのと同じである。

ここで、しっかりとした部品を作成するのはプログラマーの役割であるが、各機能を設計し組み上げるのはSEの役割であろう。この役割を全うするために前提として必要なのが、はじめに「システムを構築する技術」で述べた、どの様な技術を採用し構築するのか?である。ここを見失っては強固なシステムにはならない。

SE(設計者)に求められるものは、採用した技術と顧客の望む使い勝手を総合的に判断し、適切な機能分割とデータ処理を実現させる技術を要していることである。少なくとも、この両面から設計することを常に頭の片隅において顧客との打ち合わせに望む心構えが必要である。