職種:ソフトウェアエンジニア

著者: Laura McKinney
作成日: 2 4月 2021
更新日: 1 J 2024
Anonim
ITエンジニア15種類の職種まとめ & 知るべき用語の意味 〜システムエンジニアとプログラマの違い〜
ビデオ: ITエンジニア15種類の職種まとめ & 知るべき用語の意味 〜システムエンジニアとプログラマの違い〜

コンテンツ


ソース:Dragonimages / Dreamstime.com

取り除く:

ソフトウェアエンジニアは、ソフトウェア開発のライフサイクルに深く関わっており、プロジェクトの成功に大きな役割を果たしています。

ソフトウェアエンジニアは何をしますか?簡単な答えは、彼または彼女は、ソフトウェア製品にエンジニアリングの原則を適用するプロセスで、ソフトウェアエンジニアリングに関与しているということです。

ただし、ソフトウェアエンジニアがソフトウェアの世界で何をするのかを説明するには、本当に多くの詳細とニュアンスがあります。毎日使用する優れたデジタルマテリアルをすべて作成するために働いているソフトウェアエンジニアの「人生の1日」を見て、その一部を取り上げます。 (この分野の担当者からこの役割について詳しく知るには、How I Got Here:ライターとソフトウェアエンジニアのDavid Auerbachに対する12の質問をご覧ください。)

ソフトウェア開発ライフサイクル

ソフトウェアエンジニアの役割を理解するには、ソフトウェア開発ライフサイクル(SDLC)について知っておくと役立ちます。

ソフトウェア開発のライフサイクルには、要件の計画、設計、コーディング、テスト、実装、および配信(独自のプロセスに応じていくつかの手順を実行する、または実行する)としてしばしば説明されるさまざまな重要なフェーズが含まれます。

「ソフトウェアは、解決しようとしている問題から始まります」とValue Transformation LLCのJohn Quigley氏は語り、プロセスの最初に起こったことから始めて、従来のソフトウェア開発ライフサイクルを説明します。 「これは何らかの形で文書化され、問題に苦しんでいる顧客や人々とのインタビューの結果です。文書は、問題を解決するためにこれと比較するアイデアを生成するのに役立つ問題を示します。これがこの作業の目標となり、私たちが達成しようとしていることを確立します。」

要件フェーズでは、エンジニアは製品の特定の技術的な説明、ハードウェア(もしあれば)とソフトウェアの両方を説明します。


次にコーディングがあります:「ソフトウェアエンジニアは、特定の要件を満たす目的の製品を生成するコードで特定のステートメントを記述します」と、Quigleyはコーディングフェーズについて述べています。

その後、テストを行ってから、ソフトウェアを実稼働環境に確実に移行させる別の一連の手順を実行します。プロセスの終わりに向かって、実装と展開に関するさまざまなアイデアの余地があります。また、Quigleyは、SDLCの新しい「アジャイル」モデルの動作が少し異なることも付け加えています。

バグやストレスなし-あなたの人生を破壊することなく人生を変えるソフトウェアを作成するためのステップバイステップガイド

誰もソフトウェアの品質を気にしない場合、プログラミングスキルを向上させることはできません。

「アジャイルの世界では物事は非常に見えますが、反復はより小さく、より密接になっています」とQuigley氏は言います。 「要件はユーザーストーリーを介して処理され、本質的に技術的ではなく、アプリケーションを理解するように記述されているため、ソフトウェアエンジニアは推論を行い、実際の使用に基づいて必要な主要属性を推測できます。」

ソフトウェアエンジニアのさまざまな役割

ソフトウェア開発のライフサイクルにはさまざまなフェーズと操作があるため、ソフトウェアエンジニアの作業もさまざまであることは理にかなっています。

「ソフトウェアエンジニアは、ソフトウェアソリューションの作成において最も多くの役割を担っています」と、ロチェスター工科大学の教授であるサミュエルマラチョウスキーは述べています。 「SDLCの各要素には、初期段階のREと販売、設計段階のアーキテクト、ビルドのコーダー/プログラマー、検証/テストのQA、展開/メンテナンスのIT、および移動と管理のプロジェクトマネージャーがいます。各チームメンバー/フェーズですが、ソフトウェアエンジニアはプロセス全体に広く適用されることが期待されています。この観点から考えると、ソフトウェアエンジニアがしていないことを尋ねる方が良いかもしれません。」


MalachowskyがITとソフトウェアエンジニアリングの違いについて述べているもう1つの興味深い点は、平均的なソフトウェアエンジニアの仕事がどのようなものかを明らかにしています。

「ITは運用可能で反復的ですが、エンジニアリングは新しい問題を中心に独自のプロジェクトとして解決する必要があります」と彼は言います。 「この繰り返しのため、IT担当者は個々のツールベースの認証を求める可能性がはるかに高くなります。コンピュータエンジニアリングのようなものとは対照的に、要件が満たされている場所を探します。CEは、ハードウェアとそれをサポートするソフトウェアを使用して問題を解決することに集中する傾向があります。 SEはソフトウェアで問題を解決し、ハードウェアはサポートを提供します。」

ソフトウェアエンジニアとプロジェクトチーム

多くの企業では、ソフトウェアエンジニアはグループ化され、複雑なプロセスでの役割に応じて役割を委任されます。

Brennan Meagherが、Fierce Healthcare、American College of Emergency Physicians、Health Data Management、Healthcare IT Newsなどでヘルスケアの革新に見出しを作っているTeleTrackingの例を説明しています。

「TeleTrackingでは、ソフトウェアエンジニアがTeleTrackingプラットフォームの一部であるすべてのモジュールとアプリケーションのコーディングとテストを担当しています」とMeagher氏は言います。 「彼らはまた、ソフトウェアソリューションと製品の開発を支援します。これには、新しいソフトウェアの調査、設計、文書化、開発が含まれます。つまり、当社のソフトウェアエンジニアは、患者へのアクセスを改善するためのTeleTrackingsの技術的ビジョンに沿ったソフトウェアソリューションを作成します。」

企業のキャンパスでこれらの専門家を想像し、最初にドラフトを作成し、次にモデルを微調整してから、チームでテストし、完成に向けて慎重にプロジェクトをシェパーディングします。

「ソフトウェアエンジニアが定期的に担当するものの例には、すべてのアプリケーションレイヤーでのコードの作成、デバッグ、単体テスト、パフォーマンステストなどがあります」とMeaghan氏は言います。 「これには、フロントエンド(Web)、中間層(Webサービス)、およびデータアクセス層が含まれます。」

一番下の行は、ソフトウェアエンジニアがさまざまな専門的な仕事をしているということです。コーディングの基本の一部を理解する必要がありますが、テストの詳細、設計要件の透明性、または場合によってはアジャイル開発の世界を掘り下げる必要があります。

その後、DevOpsモデルが登場し、従来のモデルで非常に具体的に概説され、カテゴリー化された多くの反復プロセスをマージしました。そのため、ソフトウェアエンジニアの役割は変化しています。 (DevOpsの詳細については、DevOpsマネージャーの説明を参照してください。)

これにより、ソフトウェア制作におけるこれらの中心的な専門家の仕事についてさらに学ぶために着手するときに、少し先に進むことができます。ソフトウェアエンジニアは、デザインとソフトウェア作成の「スイスアーミーナイフ」と言われています。そして、忙しい会社で多くの帽子をかぶってしまう可能性があります。