応募者が建築についてどれだけ知っているかを知るために、インタビューで尋ねるべき良い質問は何ですか?
アーキテクチャは、単純な質問(たとえば、デザインパターンの使用)ではなく、他のインタビュートピックよりもはるかに主観的なものの1つです。単一の正しいアーキテクチャが存在しないことが多いため、誰かを評価するのが難しくなります。最も多く得られるのは、インタビュー対象者の考え方です。
面接対象者に、あなた(インタビュアー)が最もよく知っている複雑な製品または製品の一部を説明することをお勧めします。次に、彼にそれをどのように設計し、彼の推論を説明するかを考え、次に特定の決定に焦点を合わせて質問するように頼みます。
もちろん、これを行うのは次の場合のみです。
追加のボーナスは、彼が雇用された場合に意見の相違をどのように処理できるかを見ることができるということです。
製品が再設計された場合の代替アプローチは、古いバージョンのアーキテクチャを説明し、インタビュー対象者に再設計方法を尋ねることです。結果が現在のアーキテクチャに近い場合、候補者がグループのスタイルと考え方にぴったりである可能性が高くなります。
文化/人格の適合性と開発スキルについて既にチェックアウトしていると仮定して、次のことを行うことをお勧めします。
候補者に、実際に設計および/または実装した中規模から大規模のシステムのアーキテクチャを説明するよう依頼します。彼らが行った設計のトレードオフについて調査する質問をします。
少数の既知の欠陥があるシステムの設計を候補者に提供します。それはあなたが作ったものでも、よく知られているものでも構いません。時間やお金の制約がないと仮定して、候補者に欠陥を特定し、システムを再設計するよう依頼します。
非自明なシステム(病院環境で医用画像をレビューするための分散システム)の一連の要件を候補者に提示します。利害関係者(あなた)からの要件を満たし、その設計において適切なトレードオフを行います。
これらのいずれも、最高の「アーキテクト」を選択することを保証するものではありません(ジョエルやジェフと同じようにタイトルアーキテクトにも同じ問題があります)。ただし、これらは間違いなく優れたフィルタリング手法であり、チームにとって価値のある特性を持つ人物を特定するのに役立ちます。
「それで、私はあなたをここでぐちゃぐちゃにするつもりはありません。あなたは、建築について多くを知っていると私に確信させる何かを教えてもらえますか?」
私はあなたの質問に少し心配しています。一見したところ、「中西部の草原の形態が現代美術や工芸品のデザインに与えた影響について説明してください」という言葉に沿ったものを提案したいと思います。
頬から舌を取り除いて、私はクリスが上記したことを提案します。あなたの仕事に関連するアーキテクチャの設計について、あなたとあなたのチームと交流する機会を候補者に提供します。缶詰の問題の代わりに問題を解決するのを見て彼らの能力を判断する準備ができていないと感じたら、他の誰かをインタビューに参加させる必要があります。または、JoelとJeffの本から1ページを取り上げ、「アーキテクチャ」という用語に触れて、有能なソフトウェアエンジニアを探し始めます。
私の意見では、設計または「アーキテクト」する能力はスキルであり、知識のセットではありません。 「J2EE vXとJ2EE vYを使用した場合のパフォーマンスの影響」や「CORBAまたはRMIのどちらが優れているか」などの質問を投げかけるだけで、あなたは馬鹿げているように見えます。
このような質問をすることの問題は、実際には「正しい」答えがないため、主なことは候補者に話し始めることです。私は彼らに、彼らが誇りに思って実装したアーキテクチャを説明するように頼みます。そして、「あなたが最も誇りに思っていることは何ですか?」そして、あなたは彼らに過去にどんな過ちを犯したか、そのようなことを彼らに尋ねることができます。
固定質問に答える能力ではなく、その人の感覚をつかむので、私はそれについてより快適に感じます。
「McConnellのCode Completeを読みましたか?」