これに答えます。
プログラマの仕事について解説
プログラマの仕事がどんな感じなのか紹介していきます。
あくまで一例なので、担当する仕事、プロジェクト、組織によって異なるでしょう。
一般に、担当するシステムや製品によって、厳密さが異なる感じです。
不具合があっても停止させれば済むものはゆるく、命に関わるような不具合が許されない製品は厳密なプロセスがあります。
会社員としてプログラマになった場合を想定しています。
仕事内容
基本的にはシステムやアプリなどを開発する仕事です。
開発の業務は主に以下です。
- 機能仕様の作成
- 機能仕様のレビュー
- 詳細仕様の作成
- 詳細仕様のレビュー
- コーディング・レビュー
- 単体テスト、デバッグ
- 組み合わせテスト
- システム、統合テスト
- リリース
上記の内、プログラマはコーディングメインですが、関連する業務もすることもあります。
その辺は組織によってまちまちで、任される範囲が広い場合、機能仕様書を作成するケースもあります。
ソフトウェア設計開発者と言う意味でプログラマと呼ばれる場合や、コーダーのようにコーディングだけをする人もプログラマと言われることもあります。
詳細仕様から単体テスト、デバッグまでを担当することが多い印象です。
詳細仕様の作成・レビュー
機能を実現するための仕様の作成と、作成した仕様に問題がないかどうかレビューをします。
プロジェクトによって異なりますが、ソフトウェア構造を検討します。
通常、機能仕様だけだとプログラムに落とし込めないため行われます。
コーディング・レビュー
詳細仕様を満たすようにプログラミングをします。
コーディングの時は、愚直にプログラムを書き続ける感じです。
プロジェクトによりますが、一定のタイミングでコードレビューを行います。
ざっくり言うと、他者にソースコードを机上チェックしてもらって、問題点や課題を指摘してもらいます。
また、ペアプログラミングと呼ばれる、2人1組でプログラミングすることもあります。
この場合は、コーディングしていない側はコードをチェックするので、実質コードレビューを兼ねています。
単体テスト、デバッグ
プログラム単体で動作するかテストする業務です。
テストして不具合が見つかった場合は修正します。
机上チェック、デバッガーを使用してテストします。
机上チェックはソースコードを目視確認して、ソースコードに問題が無いかどうか確認します。
また、デバッガーを使用して、プログラムの動作や変数に何の値が設定されているかチェックして、期待する動作なのかテストします。
仕事の流れとしては以下
- 詳細仕様、ソースコードからテストケースを作成
- テストケースのレビュー
- テスト
プロジェクトによってやり方が異なります。
ドキュメントにテストケースを作成する必要がある場合や、テスト用のコードを書く場合もあります。
プログラマの1日
プログラマの1日はプロジェクトの進行具合によって異なります。
プロジェクトのスケジュールに沿って、仕事をする感じです。
大体、1日単位で区切られるケースが多く、
- 詳細仕様を作成する日
- 詳細仕様をレビューして修正する日
- コーディングする日
- テストケースの作成と単体テスト・デバッグする日
のような感じです。
雑多な業務
今まで解説してきた業務以外に、雑多な業務について解説します。
不具合対応
プログラムに不具合が見つかった場合、調査して不具合を修正します。
- 組み合わせ・統合テストしてプログラムに不具合が見つかるケース
- リリース済みプログラムで不具合が発生したケース
当然ながら、リリース済みのプログラムの方がコストが大きいです。
進捗報告
進捗状況を報告します。
進捗会議があることが多いです。
プロジェクトが上手くいっていないほど、進捗報告が炎上するので負担になってきます。
報告しても目の前の作業は無くならないので。。。
ソースコードのマージ
ソースコードをブランチ管理している場合、マージする作業が発生します。
ざっくり言うと、開発用のソースコードをリリース用のソースコードに取り込む作業です。
チケットの作成、更新
機能追加・不具合が見つかったときに、不具合を管理するためのシステムに登録する作業です。
RedmineやJiraが有名です。
記載する内容が多く意外と面倒です。
以下は一例です。
- 機能追加・不具合の内容
- 不具合の原因
- 再発防止策
- 修正内容
勉強会
プロジェクトによって勉強会があるケースがあります。
まとめ
プログラマの仕事について解説しました。