回答:
宗派などを執行する法的枠組みはないと思うので、実際には会社次第です。少なくとも私が知っていることではなく、これは国によって異なります(たとえば、用語の使用「エンジニア」は実際にはフランスでかなり規制されていますが、「虐待」の場合に許可されるバリアントがあります)。
一般的な傾向は次のようになります。
プログラマの位置は、通常の1であるコンピュータ・プログラムのコードを生成するために雇わプロ。コードの書き方を知っていて、アルゴリズムを理解し、仕様に従うことができることを意味します。ただし、通常は責任の面で停止します。
開発者の位置は、通常考えられているプログラマ位置のスーパータイプ。それは同じ責任包含するプラスデザインと建築家のソフトウェア・コンポーネントをする能力、およびする技術文書を書く(仕様書を含む)それのために。あなたは-少なくとも技術的に-他の人(つまりプログラマー)を導くことができますが、必ずしもチームではありません(ファズが来ます...)
エンジニアの位置は、通常、あなたが開発者であることを暗示する程度の特定のタイプがある、いくつかの工学の知識を、とあるシステムを設計できる(:ソフトウェアコンポーネント/一緒に全体のソフトウェアエンティティを構成するモジュールの組み合わせのように) 。基本的には、全体像が見え、それを設計して説明し、より小さなモジュールに分けることができます。
しかし、これはすべて議論の余地があり、私が言ったように、米国/英国の国では私が知っている法的要件はありません。そうは言っても、フランスでは、工学学校から来た場合にのみ、自分を「エンジニア」と呼ぶことができます(Titles d'Ingenieurs委員会などによって認識されます)。「エンジニアの学位」を持っていると言うことはできませんが、エンジニアリングとテクノロジーの前兆に該当する分野を研究した場合、「エンジニアリングの学位」を持っていると言うことができます。
いくつかの国には似たような区別があるかもしれませんが、私は本当に知りません。
ソフトウェアエンジニアのタイトルに戻ります...かつて、私の教師の1人がクラスに、そして当然のことながら、いわゆる「ソフトウェアエンジニアリング」のようなものは存在しないと言いました。何かを設計する(建物、車両、ハードウェアなど)ことは、その設計と生産のすべての段階を想定し、必要なリソースを正確に予測できることを意味するため、生産コスト。
これは、ほとんどの「真の」エンジニアリング分野に当てはまります。もちろん変動はあります(たとえば、材料の価格は時間とともに変化します)が、非常に有限の理論モデル(設計および計画用)と経験モデル(前者をアクセス可能な制約内にほぼ維持するため)がありますこれにより、プロジェクトの終了日とそのリソース使用量を予測できます。
ソフトウェアの主な問題は、まだ存在していないことです。私たちはソフトウェアエンジニアリングを目指していますが、まだそこにはいません。非常に流動的で動的な環境、プロジェクトに対する非常に多様な制約、およびプロセスの振り返りにおける成熟度の欠如があるためです。確かに私たちはそれをうまくやると言うことはできますが(ハードデータについては非常に議論の余地があります)、60年代からそれまでしかありませんでした(以前のプロジェクトは実際にはハードウェアのみのコンピューターに近かったため、皮肉なことに実際のエンジニアリングに近くなりました) )。私たちは1世紀以上にわたって自動車、一般的には数千年、さらに数千年にわたって自動車を製造してきましたが、実際に世界のどこかでかなり上手く行って、私たちのように感じます'
我々は体系的に正確な期限を予測することができない私たちは、体系的に正確なコストを予測することができない私たちは、体系的、効率的かつ確定的に内在すると外部のリスクを特定し、軽減するために失敗します。私たちができることは、サイクルとオーバーヘッドを削減するためにプロセスを最適化するために最善を尽くしながら、十分な推測値を生成し、ある程度のバッファーに対応することです。
しかし、参照してください、多分それはエンジニアリングです。そしてそれが、誰かが「ソフトウェアエンジニア」について話すとき、彼らが考え、目指すべきことです。
そのため、プログラミングルーチンの単純な行為、またはアプリケーション開発のより高度な行為とはほとんど交換できないようです。
それでも、すべてはトレンドの問題です。最近、チームの全員がシニアソフトウェア開発者である水平開発チームを持つことはかなり一般的です(そう、資本、それは私たちを特別な気分にさせるからです)意見)そしてスキル(ええと...)と責任(それほどPRの話題のためだけに良いことはできません)の区別はあまりありません。
また、それは時々習慣の力であり、業界の文化と専門用語に固有のものです。組み込みソフトウェアの生産のためのより多くのポジションは、ソフトウェアエンジニアのタイトルを使用します。これはおそらく、この分野のハードウェアにもある程度ある程度対応しなければならないことを意味するため、生産および生産する「システム」全体の他の側面を明らかに扱うからです。ビットだけが中に入っているわけではありません。その一方で、金融ソフトウェアの生産職でエンジニアという用語が使用されているのを実際に目にすることはありません。それは、この業界の前身からの模倣の進化であるため(たとえば、組み込みエンジニアリングは、たとえば自動車工学にそのルーツを見出している)、またはポジションに多少なりとも信用/重みを与えたいだけなのです。
そして、霧の中で皆を確実に失うために、あなたは両方を混ぜた他のタイトルを見つけるでしょう(「ソフトウェア開発エンジニア」や「テスト中のソフトウェアエンジニア」!) 「ソフトウェアアーキテクト」と「ソフトウェアアーキテクチャ」がボキャブラリーの恥知らずな窃盗である可能性について考えてください)。そして、リリースエンジニア、変更開発マネージャー、ビルドエンジニア(それらも同様に公開されます)。また、単に「エンジニア」と呼ばれることもあります。
それが助けになったことを願っていますが、実際には答えではありません。
ああ、それはあなたの新しい会社があなたを新しいタイトルで誘い込もうとしているのか、彼らがタイトルを本当に気に掛けていないのか、あなたが本当により高いレベルのポジションを持っているのかを意味します。知る唯一の方法は、あなたの仕事の仕様を読んで、彼らと話をして、最終的にそれを試して、自分で判断することです。私はそれが後者のオプションであり、あなたがそれに満足していることを願っています(そして、潜在的にそれにより多くの利益をもたらします)。;)
それは会社がどのようにポジションを定義するかに本当に依存します。開発者としてUMLダイアグラムを提供し、プログラムを作成するのに対し、ソフトウェアエンジニアとして設計上の決定の機会が増える可能性があります。
しかし、実際のセットの定義はないため、タイトルに基づいて、人々はあなたが何をしているか、またはあなたがどれだけ経験したかを知ることができます。
私が建築家/開発者だったとき、私の肩書きはコンピューター科学者でしたが、最初の2つは簡単に定義できないので、私はプログラマーであると人々に伝えるだけです。
あなたにとってタイトルが重要な場合、エンジニアは開発者よりも高く聞こえるので、新しいタイトルを受け入れます。
私の経験では、「公式の違い」はないと思います。
また、変化するファッション用語もあります...最初の用語は「プログラマー」、次に「ソフトウェアエンジニア」でしたが、現在は「開発者」に見えます...
仕事の説明を読むか、特定の会社の誰かに読む方が良い
ソフトウェアエンジニアは、たとえば5〜16年の開発に多くの人年を要する非常に大きなシステムで作業する傾向があります。プログラマは、コーディングだけで他に何もないというこのステレオタイプを持つ傾向があります。しかし、それは本当にあなたが働いている組織と、上で説明したようにHRが役割をどのようにマーケティングしているかに依存します。それらは本質的に同じものです。タイトルと同義語であるため、タイトルにあまり執着しないでください。