全体を把握する

プログラミングに取り組むうえで、プロが行う作業工程の管理や把握は無視できません。プロほどハードな要求に耐え、問題が起こっても素早く処理できます。

作業工程を把握するメリットや一般的な工程を見ていきましょう。

工程全体を把握するのは不可欠

プログラミングを始めるには、作業工程全体を把握することがどうしても重要です。個人でゆっくり自由にプログラミングに取り組むのであればともかく、実際に仕事として受注した案件や開発が始まったプロジェクトでは、始めたものの座礁してしまうような工程で始めることはできません。それには、やはり工程全体を把握することが必要です。工程表がないと、どの作業をいつまでに終わらせるのかが分かりません。そうなると、納期直前で結局無理でした、予算が足りません、といった事態も起こり得ます。

プログラミングの現場でも、アマチュアではなくプロの仕事ぶりが求められます。工程表が無ければ、作業する他のメンバーも内容や現状を把握できず、結果としてパフォーマンスも低下します。そこで、どんなに小さなプロジェクトでも、手書きにしても頭の中で組み立てるにしても、まずは青写真を手に入れることが不可欠です。資料や依頼書を前にして、いきなり開発環境に座ることは避けましょう。開発するサービスやシステムの目的をはっきりさせ、発生し得るエラーを想定し、処理の流れを考えます

全体をまず考慮すれば、起こり得るミスに対応することもでき、もしかすると依頼内容の不備やミスにも気づけるかもしれません。特に、プログラミングの世界ではエラーが命取りになります。当初は何一つ問題なく作動していたのに、納品後数か月して発生し、もはやどこにバグがあるのか分からない、といった事も起こり得るのです。エラーを潰すためには、作業工程の中でプログラミングと同時にテストを並行することも求められます。

作業工程をスケジュールする

まずは、

  1. 要件定義を行います。何を目的とするプロジェクトなのかをはっきり定義します。プロジェクトの体制を決定し、スケジュールや納期の確認、機能要件やセキュリティー、パフォーマンスレベル、技術要件を決定していきます。その後、
  2. 外部設計に移ります。画面のデザインやUIを決定します。画面遷移図や表示項目一覧なども洗い出します。
  3. 内部設計では、プログラミングの設計を行います。外部設計を満たすのに必要なコーディングやエラー潰しなど、プログラミング本体の設計です。
  4. プログラミングに取り掛かると、実際にプログラミング言語を使ってコードを書いていきます。ウェブデザインではHTMLとCSS、プログラミングではJavaScriptやRuby、Python等の言語を使って書いていきます。プログラミング言語を学んだスキルがようやく発揮される場面です。システムの概要が出来上がると、
  5. 単体テストを行います。実装した機能のみのテストです。メールアドレスの入力画面やお問い合わせ画面、買い物かごなどの機能を実装したのであれば、その機能だけをとりあえず試します。
  6. 結合テストに移ると、実装した各機能がスムーズに動作するかを確認します。一連の動作をフローで行い、流れを見ていきます。例えば、買い物かごに入れた商品を注文した時、管理画面にも正確に反映されるか、などの確認作業です。その後いよいよ
  7. システムテストに移ります。本番に近い環境で正常に動作するかを見ていきます。仕様書のすべての要求通りに作動するか、実装した機能がすべて作動するかを見ます。
  8. 運用テストに移ると、発注者が本番の環境ですべての動作を確認します。システムやアプリ、ウェブサービスのすべての機能を利用を想定している各端末で確認し、正常に動作するかを見ます。この時点でエラーがないのが最善ですが、エラーやバグが見つかると修正作業に入ります。問題が見つからなければ、
  9. システム移行でプログラムを公開・実装します。サービス系であれば一般公開、アプリであれば各ストアで配信が始まります。本稼働させた後にバグが見つかった場合、一定期間無償で対応する場合と、有償の場合があります。契約書を作成した時点でその詳細を決めているはずです。その後は
  10. 運用・保守です。動作に問題がないかをその後も監視します。バージョンが更新されるのは、新たに見つかった不具合や改善点を修正したためです。プログラミングの世界では、商品やサービスを公開した後も作業が続きます。

    作業工程を把握するメリット

    工程を管理すると、全体を見渡せるため対処が簡単です。後々致命的になるエラーや遅れを潰すのに必要です。メンバーの役割がはっきりし、移動や調整も容易になります。臨機応変に作業するには、行き当たりばったりではなく全体を見渡したうえでの調整が必要だからです。最適な方法で調整できれば、納期の短縮にもつながります。無駄な時間や稼働を減らせるため、無理のない計画や最高のパフォーマンスを引き出せます。

    工程全体がしっかりとバランスよく管理されているので、品質を向上させたり維持したりする効果も期待できます。共に働くメンバーと情報を共有し、一緒に取り組むゆえにもたらされるメリットです。安定したパフォーマンスを引き出せれば、問題が起こっても対処できる柔軟性や、修正・整備しやすい把握性も向上していきます。