web-dev-qa-db-ja.com

ソフトウェアアーキテクトの定義を教えてください。

どの時点で、開発者は単なる開発者でなくなり、ソフトウェアアーキテクトになります。あるいは、言い換えれば、ソフトウェアアーキテクトの最低限の仕事の説明は何ですか?

33
mumtaz

私は最良の答えはないと思います:

建築家は建築をします。

ですから、建築をするなら、あなたは建築家です。たぶん、あなたは「良い」建築家とは何を求めましたか?または、事前定義されたタスクリストですか?

ジムレオナルドからの回答など、他の優れた回答に加えて、次のドキュメントをお読みください。

建築家が必要な人 -マーティンファウラー

私の意見 ?

建築はチームスポーツです

14
user2567

私はおそらくここで2ページのユーモアを思い付くことができますが、これを真剣に受け止めていると思います。だから、私はできる限り真剣に対応します。

あなたが理解しなければならない最初の事柄:@クレイグは正しいです...異なるネットの組織は異なることを意味します。一部の人にとっては、それは彼らの進歩トラックのほんの一部であり、それをはるかに超えることを実際には意味しません。他の人にとっては、その明確な役割であり、非常に多くの場合、彼らはコードやその他の実践的な作業を行うことで転覆してしまい、効率を失います。

開発者としての仕事をやめてアーキテクトとしての活動を開始するポイントは、時間の90%以上を以下のことに費やしているポイントです。

  • スペックを書く/きれいな絵を描く
  • 経営者・ステークホルダーとの面談
  • チームで何を学ぶのではなく、どのテクノロジーを使用すべきかを調査しますis今日使用しています。
  • 4か月間コードを見ていないため、アプリのコードがどのように見えるのか疑問に思う

それは、アーキテクトが開発チームと利害関係者の間のインターフェースであるということです(BAはその逆です)。彼らはビジネス面と技術的な詳細を理解できる必要がありますが、実際には、それほど頻繁に「手を汚さない」可能性が高いです。彼らの主要な「テクニカル」スキルは、UML、ワードプロセッサ、その他のテクニカルドローイングツール、およびプレゼンテーションソフトウェアである必要があります。したがって、ほとんどの場合、数年以内に、コーディングの知識が古くなるにつれて、効果が薄れ始めます(たとえば、プロジェクトがC#またはJavaであるときにC++で考えようとしている)。その時点で、賢い人々は頼りになる方法と実践的な人々から学ぶ方法を学びます。他の人たちは、最先端の技術に関連してますます困難な時間を持っているため、後部の痛みになります。

21
MIA

ソフトウェアアーキテクトが「アーキテクチャを実行する」ことは事実ですが、今日の役割は、はるかに重要な意味を持つようになったと思います。 「ソフトウェアアーキテクト」の役割を持つ誰かは、スキルとステータスの両方でリーダーになる傾向があります。

私はいつも好きでした Ted Newardによるソフトウェアアーキテクトの定義

建築家は船の船長であり、複数の懸念事項(航法、エンジニアリングなど)を横断する決定を行い、船とその乗組員(プロジェクトとそのメンバー)の全体的な健康について最終的な責任を負い、必要に応じて、任意のステーションに足を踏み入れて、これらの任務を実行します(メンバーがメンバーを失った場合は、プロジェクトの任意の部分のコードを記述します)。彼は、問題の領域と関連する技術に精通し、プロジェクトを容易にする、または新しい顧客の機能要求に答える可能性がある新しい技術に目を光らせておく必要があります。

そして後で:

...その手がコードに不慣れで、テクニカルリード、開発者、時にはプロジェクトマネージャーとして行動し、常に顧客/ビジネスの価値と技術的な詳細に焦点を当てている人。

残念ながら、「ソフトウェアアーキテクト」という肩書きを持つすべての人がこの定義に当てはまるわけではありません。他のものは定義に適合しますが、タイトルはありません。それでも、これは現代のソフトウェアアーキテクトのより正確な定義だと思います。他に何もない場合は、努力する価値のある目標です。

13
Jim Hurne

ほとんどのITの役職と同様に、定義はありません。これは単なる構成用語です。私は、ソフトウェアアーキテクトを、テクニカルアプリケーションの設計、ベースライブラリ、アプリケーションフレームワークなどの構築を担当する人物と表現します。これは、さまざまなITの「アーキテクチャ」の仕事の中で、おそらくフードチェーンで最も低い仕事です。

9
Craig

コーディングスキルがひどく古くなっているが、管理業務を実行することができない人。

または

自分が触れたものをすべて破壊し、偶発的な複雑さの層を最も単純な工夫でさえもやめさせないが、ありがたいことに、誰も読むことを期待されていない壮大なタイトルの企業ドキュメントを書く仕事。

3