ソフトウェア開発の役割から管理職またはリーダーシップの役割への移行には時間がかかります。私はソフトウェア工学を専攻し、ソフトウェア工学プロセスを強調し、ビジネス管理とコミュニケーションを専攻しました。ソフトウェアプロジェクトの管理方法、採用および採用方法、チームをリードする方法、および口頭および書面でグループとコミュニケーションをとる方法に関する学術的な経験がありましたが、特に私が望んでいた業界では、ほとんどの管理職とリーダーシップの役割が見つかりました働くには、5年以上のソフトウェアエンジニアリングの経験が必要です(私は生協とインターンシップを含めて2人いました)。
それまでの間、私は単にプロジェクト管理のトピックに関する研究を続けました。
私が最初にお勧めするのは、優れたコミュニケーターおよび交渉者になることです。重要な会話をする方法を学びます。開発者としても、同僚、クライアント、ユーザーとの間で決定を下す必要があります。難しい会話をして、全員に利益をもたらす合意に達する必要がある場合があります。簡単な目標ではありませんが、「困難な会話:最も重要なことを議論する方法」という本は、これをカバーすることをお勧めします。他にも、過去に「いいえ」を取得する、「はい:提供せずに契約を交渉する」などが役立ちます。これらは、あなたがいる位置に関係なく関連しています。
より技術的な面では、ソフトウェア開発のライフサイクルを理解することは、ソフトウェアチームを率いて管理するために重要です。リーダーシップのポジションは、おそらく、要件エンジニアリング、ソフトウェアシステムアーキテクチャ、設計、実装、テストと品質保証、およびメンテナンスタスクに関与していることを意味します。これらのすべてについて専門家になることはできませんが、マネージャーまたはリーダーは少なくともそれらのすべてを理解する必要があります。開発者として、おそらくいくつかのテストを行いながら、ほとんどの作業を設計、実装、およびメンテナンスで行います。私は、ソフトウェア要件(およびその関連資料、ソフトウェア要件についての詳細)、実践的なソフトウェアアーキテクチャ(私の大学はソフトウェアシステムアーキテクチャ:アーキテクチャコースを受講した後、ビューポイントとパースペクティブを使用して利害関係者と協力し、推奨されています)、およびソフトウェア品質工学のメトリックとモデル。
プロジェクト管理の観点から、プロセスモデルと方法論について学ぶことができます。スクラムやエクストリームプログラミングなどのアジャイルな方法と、ウォーターフォールやスパイラルなどの計画駆動型の方法があります。CMMIやパーソナルソフトウェアプロセス/チームソフトウェアプロセスなどの方法論フレームワークもあります。あなたに関連するものは、産業や会社の観点から、あなたが働く場所によって異なります。さまざまな方法論やフレームワークに関する書籍は多数ありますが、一般的なソフトウェアエンジニアリング管理およびソフトウェアエンジニアリングプロセスのために、Rapid Development:Taming Wild Software Schedulesを強くお勧めします。
教育を継続したい場合は、ビジネス管理トラックよりも技術管理トラックを見ることができます。技術的な管理職が必要な場合は、ソフトウェアエンジニアリング、ソフトウェアエンジニアリング管理、およびエンジニアリング管理プログラムをご覧ください。より多くのビジネス管理トラックについては、MBAプログラム、ビジネス管理、または強力な経済的または財務的要素を持ついくつかのエンジニアリング管理プログラムを検討できます。