月別アーカイブ: 2017年11月

プログラマーとは

ソフトウェア開発の現場で「プログラマー」といえば、その名のとおりプログラムをする人です。以降、最後の棒は略して「プログラマ」と表記します。

プログラマ(略して「PG」)という言葉は、システムエンジニア(SE)との役割を区別する局面で多く使われます。この意味で、SEは設計する人、PGは、設計された図面(設計書)に基づいて、そのとおりの内容をプログラミング言語で書く作業(コーディングという、またはこれをプログラミングと言う)を行います。
この作業が終わると、期待通りに動くのかというテストを行います。 テストといってもデバッグ、単体テスト、結合テスト、統合テストなどがあり、規模が大きいシステムではテストで専門の役割の人(テスター)が存在する場合があります。
テストについては、いずれ別の記事で書きたいと思います。

PGは設計ではなく、プログラミングする人だと書きましたが、設計にはいくつかの種類、段階があり、「詳細設計」(Detailed Design、略してDD)という設計があります。読んで字のごとく、細かな設計です。DDより前段階(上流工程)の設計をSEが行い、詳細設計はPGの仕事である場合が多いです。そういう意味では、PGは下流工程の設計をする人でもあります。

このように、プログラマの仕事としては「詳細設計」「コーディング、デバッグ」「単体テスト」が主要な仕事ということになります。単体テスト以降のテストにもかかわることはあります。

プロジェクトマネージャとプロジェクトリーダー

一般の会社では、社長、部長、課長、係長などの役職がありますよね。
ソフトウェア開発の現場では、管理する立場の人を「プロジェクトマネージャ」「プロジェクトリーダ」などど呼びます。
最後の横棒を略すかどうかは統一せず、筆者の感覚で「プロジェクトマネージャ」「プロジェクトリーダー」と表記しておきます。

プロジェクトマネージャは「PM」、プロジェクトリーダーは「PL」と略されます。
規模が大きいプロジェクトではPLの下にサブリーダーが存在する場合もあります。

PM、PLどちらも管理する役割を持つので、そういう意味ではマネージャです。なにしろPLに必要は要素は管理能力であると言われています。

厳密な定義はありませんが、PM、PL両方が存在しているプロジェクトでは、PMはPLより上の立場となるのが一般的かと思います。
そのような場合、PLは、実際にソフトウェアを作る(設計、開発(プログラミング工程)、テスト)仕事に関して管理をする人、PMは人材を集めたり、お金関係を処理したりという具体的なソフトウェア作成の外側の仕事をする、PLの管理をするといったことになるでしょう。

システムエンジニアとは

仕事の分類としては、DB関係の仕事をする人、WEB画面のデザインをする人など技術的な分類があります。
システム開発の仕事を管理する役割をする人といった立場による分類もあります。

よく聞く言葉として、「システムエンジニア」という言葉があります。
Wikiを引用すると「プログラムの設計図たる仕様書の作成者として使われる例が多い」とあります。筆者の経験でもおおよそそのような意味で使われていました。

では設計とは何かを言えば、「このような機能のIT的製品、商品(コンピュータ上で動作するプログラム、基本プラグラム(OS)やアプリ(アプリケーションプログラム)を作りたい」という要求に対して、その機能を実現するためにどういうプログラムを作るのかを「設計」していく作業です。
どのようなコンピュータ、機材を使うのかも決めなければならないので、その選定も必要ですが、ここではプログラム(ソフトウェア)の設計について説明します。

ソフトウェアの設計については別の記事で紹介します。