私は技術系の人々がおおよそ次のカテゴリのいずれかに該当する大企業で働いています。
私の会社では、アーキテクトの役割は、ほとんどの技術者がキャリアの次のステップとして進む場所です。
私の質問は次のとおりです。ほとんどの企業は、最も有給の技術者がコードを書くことから遠く離れているような方法で働いていますか?これは開発者のキャリアにとって自然な傾向ですか?開発者はそれをすべて持つことができますか(コードと方向の設定?)
ほとんどの企業は、最も有給の技術者がコードを書くことから遠く離れているような方法で働いていますか?
最も悪い企業。コードの記述を減らし、ソフトウェア開発の他の側面に集中するという、より多くの責任に対する自然な傾向があります。とは言っても、技術者が実際にコーディングに時間を費やさなければ、一般的/最良/可能なこととの接触を失うことは非常に一般的です。これは会社に悲惨な影響を及ぼします。
これは開発者のキャリアにとって自然な傾向ですか?
はい。結局のところ、人は、コードを書くことよりも、問題の領域をメンタリング、調整、設計、知って、他のソフトウェア開発タスクを実行することによって、製品をより多く支援することができます。そして正直なところ、優れたリーダーシップまたはデザインスキルを持つことは、コード作成スキルよりもはるかにまれです(読む:貴重です)。
開発者はそれをすべて持つことができますか(コードと方向を設定しますか?)
もちろんです。ただし、コーディングの量は減少することを理解する必要があります。 IDEで1日の80%を過ごすと、他の価値のあることをできませんできます。
発生するもう1つのオプションは、より良い用語がないための「プリンシパルエンジニア」のオプションです。一部の開発者は非常に専門的です。たとえば、Linux用のギガビットイーサネットドライバーを書いた人と協力しました。私たちは彼にそのような仕事をしてもらう必要があり、その仕事を上手にできるのはほんの一握りの人だけだったので、彼は一日の大半としてコードを書くことに加えて山積みになりました。
しかし、ほとんどの企業はそのような専門化を必要としません。それらは単にデータを一緒に配管している、またはさらに別のウェブサイト/モバイルアプリを作成しているだけです。
これは主に組織の文化に依存します。多くの企業には、実際の上級技術者のポジションはありませんが、いくつかの偽のポジションがあるかもしれません。
一部の企業はこれらのポジションを持っています。優れたエンジニアがいくつかの大企業(Googleなど)や新興企業に引き寄せられる傾向がある理由の1つは、開発者であり続けることができ、高い報酬と組織のステータスで興奮していることに取り組むことができるということです。ほとんどの企業では、開発者であり続けたいのであれば、はしごの低層階にいるでしょう。
個人的な経験は、コードを書く経験を積むほど、コードを書く余裕が少なくなります。
問題が発生する前に、問題を解決するために時間を費やしています。行き詰まったときに他の人を助けるため。物事がどのように共存するかを計画する。人々に同じ方向に向かわせようとしても。
それは私の立場では避けられない感じです。私はコードを使用することを好みますが、それよりもはるかに価値のある、私たちの会社のためにできることがいくつかあります。
これは個人的な経験ですが、はい、それはほとんどの中小企業を反映していると思います。ただし、コードから完全に削除したくないことを上司に明確に伝えました。
優れたソフトウェアアーキテクトは実践的なものだと思います。良い記事を見ました http://www.infoq.com/articles/brown-are-you-a-software-architect パート4のデザインを見る、開発およびテスト。
とはいえ、なぜ日常のコーディング活動をアーキテクトの役割の一部にすべきではないのでしょうか。ほとんどのアーキテクトは経験豊富なコーダーであるため、これらのスキルを最新に保つことは理にかなっています。さらに、アーキテクトはチームの他のメンバーと同じ苦痛を経験する可能性があり、これにより、開発の観点からアーキテクチャがどのように見られるかを理解するのに役立ちます。
それはあなたの責任が何であるかに依存します。技術的な問題に責任がある場合は、コーディングの位置に留まる必要があります。 「実装」プロセスから「アイデア」プロセスを分割することは、間違った道をたどる道です。自分がそのような立場にある場合は、彼の素晴らしいアイデアを実行するためのティムを持たない天才になりたいという衝動に抵抗しなければなりません。
一方、あなたの責任が管理にある場合、私はあなたがコーディングするべきではないと思います。マネージャーは、充填時間を管理する必要があります。そのような立場には、異なるコーダー間のコミュニケーション、およびチームと官僚的なエコシステム間のコミュニケーションの促進が含まれます。私の経験上、最悪のマネージャーは、チームが対立とコミュニケーション不足のためにバラバラになっている間、コーディングを続けていました。