プログラマ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
プログラマとは、コンピュータのプログラムを作成する人全般を指す。
目次 |
[編集] プログラマの仕事
プログラミングは、論理的な思考や発想が要求される作業であり、ちょっとしたことでバグなどを生むことがあるため、緻密さと根気も要求される。
プログラムの作成にあたっては、実際にプログラムを記述するコーディング以外にも種々の作業が必要とされる。
また、プログラムを作成する能力はプログラムの作成のみならずコンピュータを使いこなすためにも必要とされるので、プログラマに任される仕事はプログラムの作成だけではない。
以下にプログラマの仕事としてみなされることの多い作業を挙げる。企業によっては、以下の作業を分担して行うこともあり、その場合は、適した名前で呼ばれることが多い。
- プログラムの作成
- プログラムの導入
- 配置(デプロイ、deploy)
- 設定(コンフィグ、configuration)
- プログラムの利用
- プログラムの分析
- プログラムに関する文書の作成
- ユーザマニュアルの作成
- プログラム解説書の作成
[編集] 他の職種との境界
日本の、特にソフトウェア受託開発業においては、しばしばプログラマという語はシステムエンジニア (SE) という職種との対比で用いられる。システムエンジニアがシステムの設計を行うのに対し、プログラマは設計に基づいて実装のみを行うという意味を含んでいる。
ただし、ソフトウェアの分野では、設計方式が確立されていないこともあって、設計が実装レベルの作業に委ねられていることも多い。そのため、一人の技術者がプログラマおよびシステムエンジニア双方の領域にまたがる作業を行うことも多く、その境界は曖昧になっている。結果としてプログラマは、システムエンジニアと同義と捉えられることがあり、どちらを名乗るかは、本人や所属企業の任意による面もある。
同様に、プログラマは、職務内容によってディベロッパー、ITエンジニア、ソフトウェアエンジニア、アーキテクト、ITアーキテクト、エンタープライズアーキテクトと呼ばれることや、そのような肩書きと同一視されることもある。
[編集] 歴史
史上初のプログラマは、詩人バイロンの娘、 エイダ・ラブレスであるといわれている。彼女はチャールズ・バベッジが作成した解析機関のオペレータであった。プログラミング言語Adaは、彼女の名前に因んで命名された。
[編集] 文化
歴史は浅い。しかしそれ故に、プログラマは独特な文化を持つと言われている。 プログラマにも種類があり、組み込み系開発、基幹系業務開発、データベース系開発、Web開発、研究開発ではそれぞれまったくといっていいほど文化や労働形態や仕事内容が異なる。
[編集] その他
[編集] 苦労・残業
プログラミングには、十分な計画性と、十分な設計が必要とされる。しかし、プログラマが、それらを満たす作業を行っていても、顧客やプロジェクトマネージャの対応次第で、仕様変更や潜在的不具合が発生し、結果として、長時間椅子に座り続けて作業をしなければいけない場合もある。
また、クリティカルなソフトウェアに不具合が発見された場合、休みを入れていても、電話がかかってきて休日返上での修正作業をせざるを得ないこともある。
企業により様々ではあるが、日本ではプログラマは残業が多い職種の一つで、午前様になる事も珍しくない。近年では、「デスマーチ」とも呼ばれる破滅的プロジェクトに巻き込まれてしまった技術者が心身をこわし、ときには自殺や過労死にも至るケースも報告され、問題視されている。
残業が多い職種であるが、労働基準法に違反して、サービス残業を強いられているケースも多い。場合によっては、時給換算した給料が、最低賃金法に基づく基準をクリアしないこともある。
[編集] 教育
品質や残業の発生など、プログラミングに関する問題について、多くのプログラマがオブジェクト指向、エクストリーム・プログラミング、アジャイルソフトウェア開発などのソフトウェア工学を熟知していないことが原因であるという見方がある。 しかし、日本では、このようなソフトウェア工学を修得する機会や研修期間、社内教育が用意されない企業も少なからずあり、企業のソフトウェア開発に対する認識が甘いのではないかという指摘もある。
また、大学など先端教育機関でのコンピュータサイエンスや情報工学、情報科学の研究成果が生かされていないことも指摘されている。採用の際に、「学歴なんか関係ない」「大学は何も役に立たない」と言い切る担当者も少なからずおり、専門教育を受けていたかどうかによる初任給の差も少ない [1]。 このような大学軽視の背景には、IT企業にはベンチャー企業が多く、学歴や大卒に対する偏見や誤解を持っている者も多いからと主張する者もいる。
大学等の専門教育が必ずしもソフトウェア開発の銀の弾丸にはならないことが近年わかってきてはいるが、それらが全く無駄だとは言い切れないことも事実である。顧客や経営者、マネージャの判断や行動等により、プロジェクトによっていかせる技能・知識に幅が出ることも、プログラマに必要な技能や知識は何かという問いを難しいものにしている。
[編集] 請負形式
日本のソフトウェア業界では、どれだけの機能を提供するかではなく、予想される工数はどれだけかを元に費用を算出して、請負形式で仕事をすることが多い。そのため、だれかが、あるソフトウェアを予定よりも早く完成させると、経営者や顧客から「何だ、そんなに速くできるんじゃないか。それだったら次回からは納期を短くしてコストを下げても良いだろう」と、値下げ圧力がかかることがある。 しかし、その考えは、「万が一の不測の事態」、「予防」という要素が無く、決して計画性があるとは言えない。予定よりも早く仕上げることができたのは、たまたま良いライブラリやフレームワークがあったためかも知れないし、たまたま修正対象が再利用性の高いコードであったためであったり、たまたま優れた特定の統合開発環境やソフトウェア開発ツールに使い慣れた者がいたためだけだったかもしれない。 結果として、現実的でない工期が設定された場合、プログラマをはじめとする開発者を苦しめることになる。また、いざリスクが顕在化した場合には、最下流工程であるプログラマが最も影響を受けやすい。
[編集] フリープログラマ
個人事業主(フリーランス)のプログラマや、独立して起業しながらプログラマ作業を行うケースも増えている。直接仕事を顧客から引き受けるため、責任負担は増大するものの、作業量や時間を調節でき、経費を効率よく使えば、一般的な被雇用プログラマより年収も確保できる。ただし、相応のスキルと営業力がないと継続して仕事を獲得するのは難しい。
[編集] 日本以外のプログラマ
アメリカでは多くの場合、広い机や部屋を用意されて、そこで開発ができるため、狭い部屋や机に囲まれている日本のプログラマよりもストレスが溜まりにくく、そのぶん開発効率も高く、給料も高い。また、職務定義書が明確にされていることが多いため、技術を知らない社内の人から余計な雑用を頼まれることも少ない。
[編集] プログラマ30歳定年説
プログラミング技術は進歩が激しく、技術の陳腐化も著しいため、常に新しい技術に目を向け習得していくバイタリティや、場合によっては永年の努力によって培ってきた技術を捨て去る柔軟性が必要である。 そのため30歳前後でプログラマからシステムエンジニア等の上位のエンジニアか、営業へ転向する者が多い。これを「プログラマ30歳定年説」という。
特に人材派遣市場においては30歳を過ぎたプログラマは派遣先を探すことが困難で、またプログラマの単価はシステムエンジニア等と比べて安いこと、派遣先で若手プログラマとの間に問題を引き起こすリスクが高いことなどから、30歳までにシステムエンジニアに転向させるかリタイアさせるかという選択がなされることが多い。[要出典]現場を経験したプログラマであれば比較的容易に設計等できシステムエンジニアになりやすい
上記内容(正しくは35歳定年説)は、特に1970~80年代に業界で囁かれていた。現在では関連技術者の不足もあって、一般的な企業が意識するリタイア年齢は40台後半程度まで上がってきている。また、リタイアしたシニア層を積極的に活用する企業も出始めている。 実際には、開発能力は個人差が大きなポイントを占めており、年齢によるものは大きな理由とはならない。 正確性、スピードにおいて「できるプログラマ」と「できないプログラマや新米プログラマ等」を比べると、現場でその生産性は10倍近い差、それ以上と言われる。
諸外国では、年齢による差別を設けないのが国民・企業の意識として定着しており、その意味でも日本はまだまだ後進国である。
[編集] プログラマの三大美徳
ラリー・ウォールによれば、プログラマの三大美徳とは
- 無精 (Laziness)
- 短気 (Impatience)
- 傲慢 (Hubris)
との事。これはプログラマに必要とされる、効率や再利用性の重視・処理速度の追求・品質に賭ける自尊心をいったものである。
[編集] プログラマに対する呼称
[編集] プログラマあるいはプログラマー
「ー」をつけるかどうかは、厳密な決まりはなく、人によりまちまちであるとされている。ただし、電子情報学会などの学会論文の命名規約では、「プログラマ」と書くとされている。
[編集] アマグラマあるいは日曜プログラマ
趣味でプログラミングをする人をアマグラマ、日曜プログラマ等と呼ぶこともある。
[編集] コーダー
プログラミングのことを「コーディング」とも呼ぶことから「コーダー」と呼ぶこともあるが、コーディングという言葉が「設計を含まない記述のみ」というニュアンスを含むため、プログラマの蔑称であると受け止められることもあるので注意が必要である。企業によっては、HTMLを弄るウェブデザイナのことをコーダーと呼ぶことがある。
[編集] プログラマとシステムエンジニア
日本のソフトウェア受託開発業においてシステムエンジニアはプログラマより能力的に優れた人間の役割という建前があるが、これは残念ながら建前にしかなっていないことも多い。なぜならプログラムを作成する能力の無い人間でもプログラムのコードを書かないシステムエンジニアの振りをする/させることはできるが、プログラムを作成する能力の無い人間にプログラムのコードを書かなければならないプログラマの振りをする/させることはできないので、プログラムを作成する能力の無い人間をシステムエンジニアに偽装する事が多々あるからである。
プログラムの開発は、システムエンジニアの職域とされる顧客との折衝・初期の開発段階にて、成功か失敗かがほとんど決まるので、そうした偽装された無能なシステムエンジニアは悲劇を起こしやすい。
[編集] 関連項目
カテゴリ: 出典を必要とする記事 | プログラミング | 情報技術者