
はじめてのシステム開発
最近のビジネスでは、ソフトウェアがもはや必須と言えるほど重要になっています。他社の作ったソフトウェアを使うだけでよければ、まだよいですが、自社でソフトウェアを開発するとなると、かなり難易度が高いです。
「自社でソフトウェアを開発したいけど、どうしたらよいかわからない」
「ソフトウェア開発を発注しようとしたが、見積もりすら断られた」
という個人や中小企業は多いのではないかと思います。
大企業は、自社にIT部門くらいはあるでしょうし、ソフトウェア開発を頼んだ経験もあるでしょうから、本稿では無視します。
ソフトウェアは、物品や建物とは異なり、いくらでもコピーできる無形財です。それを開発するということは、基本的には世界にすでに存在しないオリジナルを作るということになります。
製造ではなく、研究開発に近い「プロジェクト」としての性質を持っています。成功するか失敗するかやってみないとわからない、費用も納期もよくわからないという恐ろしい性質を持っています。
これを理解していない人は、ソフトウェア開発を依頼しても断られる可能性が高くなります。トラブルに発展するリスクが高すぎるからです。
では、どうやってソフトウェア開発プロジェクトを進めればいいでしょうか?
まず「何をなぜ作りたいのか」を明確にします。この段階からソフトウェア専門家に相談しつつ進めることが重要です。この段階の専門家は、とにかく優秀な人が欲しいところです。
ここでしっかり専門家と相談してビジネス面での企画を詰めて、企画書のようなものを作成します。
つぎに「いくらなら出せるのか、いつまでなら待てるのか」を考えます。技術的なことは考えずに、純粋にビジネス面から上限を考えます。その範囲内で出来ないのであれば、プロジェクト自体を再考した方がよいでしょう。
ここで専門家と相談しながら、仕様書を作成してもらいます。ここで概略の予算と納期がわかってくるでしょう。ただし、それはあくまでプロジェクトが成功した場合の見積もりととらえ、失敗する可能性を考え、失敗したらどうするのかを計画しておきます。
仕様書には、機能や画面だけでなく、非機能要件も定義したほうがいいでしょう。どれくらい安定して動くか、どれくらいのアクセス数やデータ量を処理できるか、どれくらい高速に動くか、セキュリティはどれくらい力を入れるか、などです。
「どうやって作るのか」は専門家に任せるしかありません。予算や納期などに関してはしっかりコミュニケーションして進捗を把握しつつ、運を天に任せて待ちます。
ただ実際に開発に携わるプログラマの能力によって、コードの品質は大きく変わってきます。実験的なプロジェクトなら、安いプログラマに低品質のコードを書いてもらっても間に合うかもしれません。しかし社運をかけたプロジェクトでは、最高のプログラマを雇うべきです。最高のプログラマを探すのは、専門家に任せます。
すべての段階において、失敗はつきものです。
契約は成功報酬制(請負契約)ではなく、時間制(準委任契約)で行い、うまくいかないとか、専門家との相性がわるいとか思ったら、数か月で契約を打ち切れるようにすべきです。
一か月の試行錯誤で、低予算なプロジェクトでも百万円はかかると覚悟したほうがいいでしょう。フリーランスや零細企業であっても、プロジェクトマネージャやコンサルティングがきちんとできるソフトウェア専門家は、一か月フルタイムで働けば数百万円はかかるのは普通です。
ソフトウェア開発のすべてのフェーズにおいて、一回数百万円のガチャを引き続けるようなものだと思ってください。難易度の高いプロジェクトでは、失敗してドブに捨てることはよくあることです。
大変ですが、成功すれば見返りはめちゃくちゃ大きいのがソフトウェア開発です。
頑張ってください!