システム開発はプログラムだけではありません。
私は15年以上の様々なアプリ、システム開発に携わりました。
その中で学んだ事はプログラムだけはなく、お客様がどういったものを望んでるのかを確認する「要件定義」、どのように制作するか「設計」を行い、実際にプログラムを着手する「開発」、さらに開発中の問題を洗い出す「テスト」といった工程を行います。
またプロジェクトの進行度を全体で閲覧するようにしたり、問題の洗い出しといった「プロジェクト管理」も行い、着実にシステムの完成に向けて進めていきます。
1. 要件定義
まず最初に行うのは「要件定義」です。
お客様と念密にコミュニケーションを取り、どういったもの望んでいるのかを確認してシステムとして落とし込みます。
俗にいうプロジェクトの炎上となる原因は、ここの段階が細かいものが決められておらず、曖昧のまま進めると進捗が悪くプロジェクトが進みません。
しっかりと機能の仕様漏れが無いように確認させて頂きます。
また決定した項目をドキュメントにまとめ、誰から見てもシステムの全体図が理解出来るように致します。
2. 設計
「要件定義」でまとめた内容を元に、どういった方法でシステムに落とし込むのかを決める作業が「設計」となります。
「設計」をしっかり行う事で、次の工程である「開発」が円滑に行うことができます。
また設計書として管理することで、お客様に引き継ぎする場合にも円滑に次の作業が出来るようにします。
設計書の形式は様々ありますが、どれもすぐに理解できるようになっております。
3. 開発
「設計」が完了すると、作成した設計を元に実際にプログラムを作っていく「開発」という工程に入ります。
私の場合は「設計」で作成したドキュメントを元に、独自のツールを使ってプログラムコードを作成して開発の工数を減らしております。
また長年開発に携わった経験から、様々な実装に対応する事ができます。
4. テスト
「開発」が完了すると「テスト」を行い実際のプログラムが正しく動作するのかを確認します。
この段階となると「開発」と「テスト」を繰り返してシステム開発を進めていくことになります。
「テスト」では、実際に画面を操作して確認する方法の他に、ツールを動作させて自動でテストする方法もあります。
「テスト」が完了した項目は、ドキュメントに項目をまとめてチェックリストとして作成します。
5. プロジェクト管理
上記の工程はすべて「プロジェクト管理」ツールで進行具合を管理します。
私が管理する方法として「Redmine」や「Backlog」といったWeb上のサービスを使用して管理します。
そうすることでお客様と手軽にプロジェクト管理をすることができます。
また「Git」でソースを管理する場合は「GitHub」の他に専用のサーバーに「GitBucket」などを構築して、ソースコードを外部に漏らすことがないようにできます。
6. 保守
サイトやWebシステムなどを開発したけど、その後開発を担当した方が不在となっていることはありませんか?
その場合にはご相談ください。
そういった対応も行った事があり、サーバー上のプログラムを読み取ってメンテナンスができるようにしました。
またシステムの不具合や容量不足になった場合も、ご相談頂ければと思います。