toplogo
Sign In

マイクロソフトが優秀なソフトウェアエンジニアを見分ける方法


Core Concepts
優秀なソフトウェアエンジニアは、優れたコーディング能力、状況を最大限に活かす仕事の実践、十分な情報に基づいた意思決定、他者の意思決定を容易にすること、そして絶え間ない学習を備えている。
Abstract
この記事は、マイクロソフトの研究者が行った調査について述べている。研究者らは1,926人のエンジニア、アーキテクト、テクニカルフェローを対象に、優秀なエンジニアの54の属性について調査を行った。 その結果、優秀なエンジニアの特徴は以下の4つのグループに分類されることが明らかになった: パーソナリティ - 情熱や好奇心などの属性 意思決定 - 現状の把握、代替案の特定、確率的な結果の評価などの属性 チームメイトとの相互作用 - 合理性、影響力、効果的なコミュニケーション、信頼構築などの属性 エンジニアの倫理観 - ソフトウェアの美しさへの拘りなどの属性 さらに、優秀なエンジニアの5つの主要な特徴が明らかになった: 優れたコーディング能力 - 複雑性を扱える精神的能力と、コーディングの細部への注意 現在の仕事の価値の最大化 - 状況を考慮し、長期的な需要や費用対効果を分析しながら最適化する 十分な情報に基づいた意思決定 - 適切な手順に従って判断を下す 他者の意思決定を容易にすること - 他者のタスクを簡素化し、より効果的な意思決定を支援する 絶え間ない学習 - 既存の技術の習熟だけでなく、新しい技術の習得も重要 一方で、長時間労働や個人的な好意は、優秀なエンジニアの特徴とは見なされていないことが明らかになった。
Stats
1,926人のエンジニア、アーキテクト、テクニカルフェローを対象に調査を実施 54の属性について調査を行った
Quotes
"Without code, there is no software, so great software engineers must be able to write good code." "Great engineers set themselves apart by considering the context of their software product and optimizing their current activities while accounting for potential future expenses and benefits." "Great engineers set themselves apart by following the appropriate procedures to arrive at well-informed judgments." "Great engineers set themselves apart by simplifying the tasks of others and assisting them in making decisions more effectively — or, at the very least, by preventing them from getting worse." "They discovered that the capacity to acquire new technical abilities can be just as crucial as, if not more so than, mastery of existing ones."

Deeper Inquiries

優秀なエンジニアの特徴は、ソフトウェア開発以外の分野でも当てはまるだろうか?

優秀なエンジニアの特徴は、ソフトウェア開発以外の分野でも当てはまる可能性があります。例えば、個人的な特性やチームメイトとの相互作用、意思決定能力、そして継続的な学習といった属性は、ソフトウェアエンジニアリング以外の分野でも重要な要素となり得ます。たとえば、他の技術分野やプロジェクト管理、ビジネス戦略の立案など、さまざまな分野で優れた成果を上げるためには、これらの属性が役立つ可能性があります。

長時間労働が避けられない場合、どのようにして持続可能な開発体制を構築できるか?

長時間労働が避けられない場合でも、持続可能な開発体制を構築するためにはいくつかのアプローチがあります。まず、適切なプロジェクト管理と計画を行い、効率的な作業フローを確立することが重要です。さらに、チーム全体でのコミュニケーションやタスクの適切な分担、適切なリソースの配分なども重要です。また、定期的な休憩やリフレッシュタイムを設けることで、メンバーの健康とモチベーションを維持することも必要です。

ソフトウェアの美しさを追求することと、ビジネスの要求を満たすことの間にはどのような葛藤が存在するのか?

ソフトウェアの美しさを追求することと、ビジネスの要求を満たすことの間には、時に葛藤が生じることがあります。ソフトウェアの美しさを追求するためには、エレガントで効率的なコードや設計を重視する必要がありますが、一方でビジネスの要求を満たすためには、スケジュールや予算、機能の実装などの観点から優先順位をつける必要があります。このような場合、エンジニアは美しさと実用性のバランスを取る必要があり、時には優先順位を見直すことが求められるかもしれません。
0
visual_icon
generate_icon
translate_icon
scholar_search_icon
star