web-dev-qa-db-ja.com

ソフトウェア開発者からソフトウェアマネージャーまたはチームリーダーに進むにはどうすればよいですか?

私はソフトウェア開発者として(パートタイムかフルタイムかにかかわらず)ほぼ3年間働いています。私は常に、物事をリードし、物事を成し遂げるための組織を提供するためのこつを持っているタイプの人でした。私が大学でシニアデザインプロジェクトのリーダーを務めて以来、デスクコーディングの後ろに座っているのではなく、これが私の本当の使命であると感じました。さて、他の開発者が本当に私を尊重するようにコーディングする方法を理解する必要があることを知っています。また、私はコーディングが大好きです。私は仕事以外で自宅で多くのサイドプロジェクトに取り組み、コーディングのベストプラクティスに追いついて、継続的にドメインの知識を深めようとしています。

私の主な質問は、コーディングの役割ではなく、より管理的な役割に自分のキャリアを発展させるのに役立つ、どんな種類または機会に注意すべきかです。私が言ったように、私はコーディングが大好きですが、技術を手助けしながら、高レベルで物事を設計し、物事を成し遂げるようにチームを編成し、その進捗状況を監視できることをもっと望んでいますあちこちで決定。デスクで一日中コーディングしているだけではなく、このようなことで本当に幸せになります。

明らかに、私の主な夢の1つは、自分でソフトウェアを作成して、最終的にはそれを爆発させて大きくすることです。それから、チームを雇って自分でそれを始めますが、それが起こる可能性ははるかに悪いと感じていますキャリアパスを少し変えて、行きたいところに行くよりも。自分よりも雇用主にとって同じ満足感を得ることができるように感じています。以前はそんな感じはしていませんが、本当はやりたいことをやっていないことが主な原因だと感じています。

ヒント、アドバイス、または覚えておくべきことはありますか?これだけを行った人は誰ですか、もしそうなら、あなたはどうしましたか?

42
anon

ソフトウェア開発の役割から管理職またはリーダーシップの役割に移行するには、時間がかかります。私はソフトウェアエンジニアリングを専攻し、ソフトウェアエンジニアリングプロセスを強調し、ビジネス管理とコミュニケーションを専攻しました。ソフトウェアプロジェクトの管理方法、採用方法、採用方法、チームの主導方法、口頭および書面でのグループとのコミュニケーション方法に関する学問的な経験にもかかわらず、特に私が望んでいた業界で、管理とリーダーシップの役割のほとんどがわかりました働くには、ソフトウェアエンジニアリングで5年以上の経験が必要です(私は生協やインターンシップを含めて2人でした)。

その間、私は単にプロジェクト管理のトピックに関する研究を続けました。

私が最初にお勧めするのは、優れたコミュニケーターと交渉者になることです。重要な会話の仕方を学びましょう。開発者であっても、同僚、クライアント、ユーザーとの間で決定を下す必要があります。時には、難しい会話をして、全員に利益をもたらす合意に達する必要があります。それは簡単な目標ではありませんが、本 難しい会話:最も重要なことを議論する方法 は、これをカバーすることをお勧めします。他にも Getting Past No やGetting Yes to to:Neggoting Agreement without Granting のようなものもあります。これらは、現在の位置に関係なく関連しています。

より技術的な面では、ソフトウェア開発ライフサイクルを理解することは、ソフトウェアチームの主導と管理にとって重要です。リーダーシップのポジションとは、おそらく、要件エンジニアリング、ソフトウェアシステムアーキテクチャ、設計、実装、テストと品質保証、および保守タスクに関与していることを意味します。あなたはこれらのすべてで専門家になることはできませんが、マネージャーまたはリーダーは少なくともそれらすべてを理解する必要があります。開発者はおそらく、ほとんどの作業を設計、実装、および保守で行い、いくつかのテストも行います。 ソフトウェア要件 (そしてそれと対になる、 ソフトウェア要件の詳細 )、 実際のソフトウェアアーキテクチャ (私の大学でも ソフトウェアシステムアーキテクチャ:視点と視点を使用した利害関係者との連携 アーキテクチャコースを受講した後、推奨されました)、および ソフトウェア品質工学の指標とモデル =。

プロジェクト管理の観点から、プロセスモデルと方法論について学ぶことができます。スクラムやエクストリームプログラミングなどのアジャイルメソッドと、ウォーターフォールやスパイラルなどのプラン主導のメソッドがあります。 CMMIやパーソナルソフトウェアプロセス/チームソフトウェアプロセスなどの方法論フレームワークもあります。あなたに関連するものは、業界や会社の観点から、あなたが働いている場所によって異なります。さまざまな方法論やフレームワークに関する本は多数ありますが、一般的なソフトウェアエンジニアリング管理およびソフトウェアエンジニアリングプロセスについては、 迅速な開発:ワイルドソフトウェアスケジュールの調整 を強くお勧めします。

教育を続けたい場合は、技術管理コースではなく、ビジネス管理トラックを検討してください。技術管理職が必要な場合は、ソフトウェアエンジニアリング、ソフトウェアエンジニアリング管理、およびエンジニアリング管理プログラムをご覧ください。ビジネス管理トラックの詳細については、MBAプログラム、ビジネス管理、または強力な経済的または財務的要素を持つエンジニアリング管理プログラムを検討できます。

41
Thomas Owens

これらの他の答えは素晴らしいですが、私の$ 0.02を投入します。私は、現在の会社のジュニア開発者から、ランクを経てシニア開発者、そしてチームリーダー、そして現在はアーキテクトに移っています。数年かかりました。私が昇進を与えられたときはいつでも、それは私がすでに仕事の側面をやっていたからであり、私の経営陣はそれを認識し、適切なタイトルを私に与えていました。ですから、私のアドバイスは、あなたがテクニカルリードまたはマネージャーであると言われるのを待つことではありません。それらの役割の人々が持つ責任を引き受け始めるだけです。数か月または1年後、あなたは基本的にあなたが目標としている仕事をしていることに気づくでしょう、そして彼らがそれに気づかなかったならあなたはあなたの経営者にそれを指摘することができます。

19
RationalGeek

Thomas Owensがすでにいくつかの本当に良いアドバイスをリストアップしているので、私は完全な答えを提供するつもりはありません(+1してください)。

いくつかのヒント/提案を追加したかっただけです:

  1. 誰かがあなたをリードさせるのを待ってはいけません。始めてください。私はあなたの上司に逆らうつもりはありませんが、代わりに率先して彼を助けます。あなたの上司が私のようなものである場合、彼は通常、彼の皿の上であまりにも多くのタスク/会議で過負荷になっています。彼が追いつくのに十分な時間がないかもしれない方向をあなたが提供していることに彼が気づいたら、彼はおそらくあなたにいくらかの管理責任を委任すること以上に喜んでいるでしょう。時間が経つにつれて、あなたがこれを正しく行うと、上司はますますあなたに委任するようになり(彼が心配する必要はなくなります)、彼は、あなたが公式のリードになるまでより多くの責任を取ることをサポートする可能性が高くなります。
  2. チームの構築とリーダーシップは、テクノロジーよりも社会学に関するものであることを覚えておいてください(人気のあるソフトウェア方法論の本の1つ、おそらくブルックスから)。リードとして、あなたの目標は、人々と彼らがどのように振る舞うかを理解することです。これは、コンピュータの仕組みを理解することとは大きく異なります。この認識がなければ、優れたエンジニアはこの精神的な転換を行わず、マシンを制御するのと同じように人を制御できないことを理解しているため、最悪のチームリードになります。実際、うまくいくように見える唯一のアプローチは、人々をまったくコントロールすることではなく、彼らに方向性を与えることです。リーダーシップについての本/記事/ブログを読み、読み、読み続けます。私がお勧めできる本は Management 3. です。

...そして今、私はトーマスが投稿したリンクを確認しに行きます

9
DXM

現在のところ、現在の位置を離れたいとは思っていませんが、リリースサイクルのどこにいるかによって、コーディング以外のタスクに10%から100%近くの時間を費やしています。あなたが忍耐強く注意深いなら、あなたの現在の立場で「ただコーディングする」以外の何かをするために取ることができる多くの機会があります。例えば:

  • 新しいチームメンバーを指導するボランティア。
  • 会社が採用を検討している新しいツール、プロセス、またはテクノロジーの専門家になります。
  • 部門横断的な委員会のボランティア。
  • あなたが持っているアイデアについて話してください。
  • 今後の機能の会議を設計するために自分を招待してください。

このような機会に興味があることをマネージャーに知らせてください。現在の責任でうまくやっているとすれば、マネージャーは機会があればあなたに向かって機会を導きます。イニシアチブは非常に重要です。ほとんどのマネージャーは、現時点であなたが適格であるとは思わない場合でも、少なくとも観察を許可します。

5
Karl Bielefeldt

プロジェクト管理の役割に移行したい場合は、夜間クラスに参加してMBAに向けて取り組むことはまったく問題ありません。

別のオプションは、 PMBOKプロジェクト管理知識体系 認定を調べることです。多くの場所では、数年のリーダーシップ経験、または上記の2つの項目のいずれかがない限り、あなたを考慮しません。

PMBOKは非常に難しいテストであり、合格するには多くの勉強が必要です。また、テストを受ける資格を得るためには、実際のプロジェクト管理とリーダーシップの経験についても要件があると思います。

4
maple_shaft

プロジェクト管理に取り組みたいと思うかもしれません。 PMソフトウェア開発内の多数のポジションには、コーディング経験も必要です。

私はあなたがあなたが望む管理/リーダーシップをあなたに与える責任に成長できるポジションを探します。はしごを上に移動すると、作業している場所で物事がどのように機能するかによって、外観が異なる場合があります。ただし、コーディング経験が少なくても、PMポジションは、リーダーシップ、管理経験があれば利用できます。

2
D..