システム開発について何点か
システム開発の流れ
1.何をしたいのかハッキリ明確にする
システム開発で一番大事なこと。
それは、それを使って何をしたいのか?をハッキリさせることです。
レストランであれば、「お腹空いているから適当にみつくろって」といえますが、システム開発ではそういうわけにはいかないのです。
よくあるケースがこの時点での、依頼側と開発側での齟齬が生じることです。
確かに依頼側はシステム開発については何も知らないのでおまかせします、と言いたい所なのですが、システム開発側は、依頼側のお客様の業務やフローがわかっているわけではないので、開発ができないのです。
そこで大事なのが、お客様へのヒアリング。
ここの時間をかければかけるほど、システムの質がよくなります。
実際、このヒアリングをすることで、お客様側の業務フローの問題点が炙りだされたり、なんてこともあります。
2.見積もりの流れ
システム開発を依頼する時、一番気になるのが当然ながらいくらかかるのか?ということです。
システム開発は、それぞれがオーダーメイドになるので、なかなか定価と出すというのは難しくて、どうしても人月単価☓稼働日数という算出方法になります。
時給いくら、の方がどのくらいの日数稼働すると見込まれるか、によって見積もりが算出されることになります。
3.SEとのつきあい方
システムは、SE(システムエンジニア)と呼ばれる方が開発します。
このSEと呼ばれる方々、なぜか好んで難しい言葉を使いたがります。
いや、SE側にすると常識なので使っているのですが、これが素人にはまったくわからない言葉だったりします。
これが、発注者側と開発側のズレにつながることがよくあります。
でも、これは、SEの人が悪くて、わかりにくい言葉を使っているのではありません。
個人的な経験でいうと、世のSEの80%は性格のいい方です。
なので、自分が知っている程度のことは、他の方(依頼者)も当然知っているだろうし、知らないことを前提に話すと失礼になりそう、と思っていることが多いのです。
なので、SEと話すときは、わからない言葉は逐一確認するのがお互いにとってのハッピーです。
SE側も、聞かれると嬉しいので丁寧に説明してくれます!
4.バグ(システムの不具合)について
こないだ読んだ記事にこのようなことがでていました。
「技術戦略に大切な「不具合と共存」する発想
・バグが絶対に出ない、というのは、「あならの人事制度は完璧ですよね」と聞くことと同じで、証明できないことである。
・バグには、
想定外の状況で発生する「ハイゼンバグ」
と、
再現性があり原因の特定が容易な「ボーアバグ」があり、
ボーアバグはすぐ直せるが、ハイゼンバグは要因の特定が一苦労
・バグを発生させないことが大事ではなく、バグが発生してもシステムが止まらないことが大事
という内容でした。
システム開発者は、できる限りバグがないように検証はしますが、全ての状況を試すということは事実上不可能です。
なので、どのくらい状況を想定し、ボーアバグをなくすか、が大事ということではないか、と思います。