他の専門職(会計、法律、医学など)とは異なり、ソフトウェアエンジニアリングの専門職資格はありません。
私は専門化と経験の証明としての役割を果たすことを目的とした技術と方法論に固有の多数の認定をよく知っていますが、一般に受け入れられている専門基準を設定する(そして法的に評価する権限を持つ)公的なソフトウェアエンジニアリング協会/統治機関はありません。
ソフトウェアは芸術であり、科学でもあるダイナミックな獣であることは理解していますが、ソフトウェアエンジニアリングが正式な職業になる可能性があるのかどうか疑問に思っています。
これを実現するために何を変更する必要がありますか、それは良いことでしょうか?
(誰かがこのトピックに関する正式な研究について知っている場合は、参考文献を高く評価します)
ソフトウェアエンジニアリングの現在の認定レベルに関して、以下に挙げる多くの優れた点に同意します。また、ソフトウェアエンジニアリングを職業として扱っている国もあれば、そうでない国もあるので、とても興味深いです。
ただし、「正式な職業」という用語と、それがソフトウェアエンジニアリングにどのように適用されるかについては、多少の問題があるようです。ソフトウェアエンジニアリングの主な問題は、本格的な職業ではない主な理由だと思います。たとえば、認定されたソフトウェアエンジニアである場合、たとえば、エレベーター用に作成したソフトウェアの一部が故障し、人が死亡した場合、認定および/または正式な専門機関への会員資格は取り消されません。
確かに、あなたの会社は何百万人も訴えられ、あなたは個人的に仕事を失い、悪い参照を得るかもしれませんが、一般的に言えば、あなたは個人的に、その会社に雇われた結果としての有限責任の盾によって保護されています。言い換えれば、私が知る限り、他の正式な職業やその統治団体とは異なり、巨大な積み上げを行った後は正式に取引を禁止する権限を持つ法的評価/施行はありません。 。
現状ではソフトウェアエンジニアリングは実力主義であり、正式な職業である必要はなく、これは変更してはならない良いことであるという事実に触れた答えは非常に気に入りました。同時に、ミッションクリティカルなソフトウェアのソフトウェアエンジニアと、その他のソフトウェアや非クリティカルなソフトウェアの開発者を明確に区別する必要があると思います。
ミッションクリティカルなソフトウェアに取り組んでいる、または取り組んだことのある人にとって、個人的な責任はありますか?確かに、ソフトウェアエンジニアがコストのかかる間違いを犯した場合には、正式な反響が必要ですか?
入手可能な情報に基づくと、ソフトウェアエンジニアリングはすでに正式な職業であると私は信じています。それ自体は広く受け入れられていないかもしれませんが、職業の特性について一般的に受け入れられている基準を満たしています。
ウィキペディアの職業に関する記事 から:
職業の特徴を定義することについてはかなりの合意があります。彼らは、「専門家協会、認知基盤、制度化されたトレーニング、ライセンス、労働の自律、同僚の統制...(および)倫理規定」[18]を有しており、Larsonはさらに「専門的かつ知的卓越性の高い基準、 "(Larson、p。221)"職業は特別な力と名声を備えた職業 "(Larson、px)であり、それらはすべての社会で"排他的なエリートグループ "(Larson、p。20)を構成している。
これは、Magali Sarfatti Larsonの プロフェッショナリズムの台頭:社会学的分析 を広く引用しています。 「職業の特徴」を検索すると、同様の結果が得られる傾向があります。
ソフトウェアエンジニアリングはこれらの特性にどのように対応していますか?
Professional Associationソフトウェアエンジニアには多数の専門家協会があります。 [〜#〜] ieee [〜#〜] より具体的には IEEE Computer Society は、世界中のエンジニアリングで働く専門家にサービスを提供し、IEEE Computer Societyは特にコンピュータとソフトウェアのエンジニア。 [〜#〜] acm [〜#〜] は、一般にアメリカ大陸で、コンピューティングに携わる専門家のための別の専門組織です。 British Computer Society もあります。これは、一般的に英国で、情報通信技術の専門職のさまざまな側面に対応しています。
Cognitive BaseSoftware Engineering Body of Knowledgeは、IEEE、ボーイング、National Research Council Canada、Raytheon、Construx Software、Canadian Council of Professional Engineers、 MITER Corporation、NIST、Rational、SAP(2004バージョン用)。それは具体的に 「ソフトウェアエンジニアリングを正当なエンジニアリングの分野および認められた職業にするためのステップ」 として開始されました。
制度化されたトレーニング米国では、情報技術、コンピュータサイエンス、およびソフトウェアエンジニアリングのプログラムは [〜#〜] abet [ 〜#〜] 。カナダでは、コンピュータサイエンスとソフトウェアエンジニアリングのプログラムは [〜#〜] cips [〜#〜] の認定を受けています。これらの組織は、認定プログラムを卒業した学生がプロフェッショナルな環境で機能できるようにするための最低基準と期待される成果を定義しています。 IEEEは、ソフトウェアエンジニアリングの知識体系に基づく2つの試験も提供しています- Certified Software Development Associate 学部生(または最近卒業した大学生)向けの試験と Certified Software Development Professional 試験中途採用のプロフェッショナル向け。
ライセンス2013年4月現在、 NCEESはソフトウェアエンジニアリングのプロフェッショナルエンジニアリング試験を提供しています 。米国では州ごとに提供されています。ただし、ソフトウェアエンジニアリングPE試験は、現在すべての州で提供されているわけではなく、ライセンスを必要とする州はさらに少なくなっています。 この記事はIEEEソフトウェアの1999年11月/ 12月号に掲載されています は、テキサス州のライセンス要件と、オンタリオ州、ブリティッシュコロンビア州、カナダ、イギリスのライセンスについて簡単に説明しています。テキサス州では、「エンジニアリングされた電気または機械コンポーネントの詳細な理解が必要」である組み込みシステムまたはリアルタイムシステムの設計、テスト、または実装、および「機械デバイス、電気デバイス」のソフトウェアシステムのライセンスが必要です。 、および電源システム」-比較的少量のソフトウェア開発作業。ライセンスを提供している州では、最悪のシナリオは懲戒処分、制裁、またはクライアントまたは雇用主が苦情を申し立てた場合のライセンスの喪失です。ただし、唯一の実際の害は、ライセンスが必要な状態で発生します-作業を行うためにライセンスが必要でない限り、それを失うことは何の意味もありません。
倫理規定ACMとIEEE Computer Societyは ソフトウェア工学倫理規定と専門的実践 を作成しました。米国では、ソフトウェアエンジニアリングプログラムを含むABET認定エンジニアリングプログラムの卒業生も エンジニアの注文 に参加できます。これは、一般的にプロのエンジニアに適用される倫理規定を維持しています。
Work Autonomy、Colleague Control、High Standards of Professional and Intellectual Excellenceこれらは、ソフトウェアエンジニアリングがエンジニアリング分野として扱われる環境でよく見られます。つまり、すべての雇用者(またはフリーランサー)がソフトウェア開発をエンジニアリングとして扱うわけではありません。
ソフトウェア開発者/エンジニア/アーキテクト/その他のために広く確立され、受け入れられている専門機関は、良いことではありません。
現在、これは実力主義として機能できる数少ない分野の1つです。のように、私はあなたの学位(または学位を持っているかどうか)、年功の程度、知っている言語などは気にしません。あなたが優れた開発者であるかどうかは比較的簡単にわかります、そして結局のところ、重要なのはそれだけです。つまり、物事を成し遂げることができますか?
現在あなたは誰かがあなたに与えたいくつかの認定ではなく、あなたの能力によって評価されています。そして、これは公平なGood Thing(tm)です。
何も変更する必要はありません。
Thomasによって指摘された のように、ソフトウェア工学はすでに職業です。エンジニアリング、プログラミング、ハッキング、クラフティングと呼ばれることもありますが、それは職業であり、多くの人々がお金を稼いでいるためです。
あなたの質問はライセンスに関することだと思います。
現在、ソフトウェアエンジニアリングの正式なライセンスはありません。十分な賢さとプログラミング能力を備えた人なら誰でも、マシンやデバイスで実行するよりもコードを作成するために雇われ、支払いを受けることができます。
これは他の業界とは異なります(質問で引用されているように、法律と医学が例です)。それらの職業には免許が必要です。誰でも車を運転できますが、合法的に運転するためには、運転免許証が必要です。誰でもプログラムでき、ライセンスや認定は必要ありません。
免許は、誰かが何かをする能力(車を運転するなど)を持ち、ルール(道路の)の内外を知っているという点で優れていると思います。
ソフトウェアエンジニアリングにも同様のライセンスが必要になる可能性がありますが、あまり効果があるとは思いません。実際、恐ろしいドライバーである多くのライセンスされたドライバーがいるので、あなたがライセンスを持っているからといって、あなたが優れたドライバーやプログラマーであるとは限りません。
ライセンスはエントリーの障壁を作り出しますが、この業界ではそれは良いことではないので、そのようなライセンスの認識されている利点は見当たりません。
ソフトウェアエンジニアを雇う会社は、必要なスキルセットに基づいて、潜在的なプログラマーの能力を「プログラミングテスト」でテストする必要があります(私はフィズバズタイプについて話していません)。 「資格」を持つプログラマーは紙の上では見栄えが良いですが、経験と適性を測定するために、実際のテストで実際にテストする必要があります。
弁護士が司法試験に合格する方法で試験に合格することで、認定ソフトウェア開発者になることは可能だと思います。また、認定されていないプログラマーもプログラマーとして活動できるはずだと思います。違いは、雇用主は、それが必要な場合は認定プログラマーに特化して宣伝できることであり、認定プログラマーは、説明責任の特定の保証と、より高い価格が付いてくるということです。
私は、ソフトウェア開発は説明責任のないバグの多い混乱だと言っているポスターに同意します。それはそうである必要はないと思います。優れたソフトウェアを作成したいと考えており、それに対して責任を負うことをいとわない開発者がいます。自分を区別する方法が必要です。
私は20年以上ソフトウェアを開発しています。これだけで素晴らしい開発者になるとは思いませんが、私はかなり良い開発者だと思います。問題は、余暇にプログラミングを学び、私と同じ仕事を望んでいるすべての子供よりも、なぜ私がより優れた開発者なのかを常に示す必要があることです。わずかなお金で同じ仕事をすることを約束する「オフショア」開発者の軍団は言うまでもありません。現在、これには多くの努力が必要です。仕事のサンプル、参考資料、テスト、インタビューを提供する必要があります。私は簡単に悪い日を過ごし、テストを間違え、失格になる可能性がありました。私はむしろ「はい、私は認定開発者であり、これが私の証明書です」と言いたいだけです。私はまだインタビューをしなければならないでしょうが、少なくとも私は他の認定開発者としか競争しません。