【发布时间】:2010-10-23 09:48:44
【问题描述】:
在面试中有哪些好问题可以问出申请人对建筑的了解程度?
【问题讨论】:
-
为什么这是一个社区维基?
标签: architecture
在面试中有哪些好问题可以问出申请人对建筑的了解程度?
【问题讨论】:
标签: architecture
架构不仅仅是一个琐碎的问题(例如,设计模式的使用),而且比其他面试主题更主观。通常没有一个正确的架构,因此评估某人变得更加棘手。你能得到的最多的是对受访者的想法的了解。
我建议您向受访者描述您(面试官)最熟悉的复杂产品或产品的一部分。然后让他思考他将如何构建它并解释他的推理,然后专注于具体的决定并提出问题。
当然,只有在以下情况下才这样做:
另外一个好处是,如果他被聘用,您会看到如何处理分歧。
如果您的产品曾经被重新架构过,另一种方法是描述旧版本的架构,并询问受访者他将如何重新架构它。如果结果接近当前架构,则候选人更有可能非常适合您团队的风格和心态。
【讨论】:
【讨论】:
假设您已经检查过他们的文化/个性契合度和发展技能,我建议您执行以下操作:
要求候选人描述他们实际设计和/或实施的中大型系统的架构。就他们所做的设计权衡提出探索性问题。
为候选人提供具有多个已知缺陷的系统设计。它可以是你编造的,也可以是众所周知的。假设他们没有时间或金钱限制,要求候选人找出缺陷并重新设计系统。
向候选人展示一组重要系统(即用于在医院环境中审查医学图像的分布式系统)的要求对他们从利益相关者(您)那里引出需求并在设计中做出适当权衡的能力感到满意。
这些都不能保证你会选择最好的“建筑师”(我和 Joel 和 Jeff 一样对标题建筑师有同样的问题)。但是,这些绝对是很好的过滤技术,应该可以帮助您为您的团队确定具有有价值特征的人。
【讨论】:
“所以,我不打算在这里扯你的嘴:你能告诉我一些能让我相信你对建筑很了解的事情吗?”
【讨论】:
我有点担心你的问题。乍一看,我建议的内容类似于“请描述中西部草原形式对现代艺术和手工艺设计的影响”。
从脸颊上移开舌头,我建议克里斯在上面做了什么。为候选人提供与您和您的团队就与您的工作相关的架构设计进行互动的机会。如果你觉得没有能力根据看到他们解决问题而不是解决问题来判断他们的能力,那么你需要让其他人参与面试。或者从 Joel 和 Jeff 的书中找一页,从“架构”这个术语开始,开始寻找称职的软件工程师。
在我看来,设计或“架构师”的能力是一种技能,而不是一套知识。问他们一堆问题,比如“使用 J2EE vX 与 J2EE vY 对性能有何影响”或“CORBA 还是 RMI 哪个更好”,只会让你看起来很傻。
【讨论】:
问这样的问题的问题在于没有真正的“正确”答案,所以主要是让候选人开始说话。我会要求他们描述一个他们已经实现并且引以为豪的架构。然后跟进诸如“你最自豪的是什么?”之类的事情。然后你可以问他们过去犯了什么错误,诸如此类。
我对此感到更自在,因为您对这个人有感觉,而不是他们回答预设问题的能力。
【讨论】:
“你读过 McConnell 的 Code Complete 吗?”
【讨论】: