mff开发者访谈
There are many checklists to assess developer’s hard skills, design patterns, data structures and programming language syntax.
有很多清单可以评估开发人员的艰苦技能,设计模式,数据结构和编程语言语法。
However, being able to write efficient, readable and structured code is not enough for software engineers today. They should be capable of understanding problems that needs to be solved, product owners, business stakeholders and their customers.
但是,对于当今的软件工程师而言,仅能编写高效,可读和结构化的代码还不够。 他们应该能够理解需要解决的问题,产品所有者,业务利益相关者及其客户。
As a CEO of a software development company, over the past couple years I’ve conducted hundreds of different interviews, technical and behavioral, and was surprised to learn that even candidates that are applying for Senior Engineer level, often fail to understand business contexts. I should note here, that I saw this being more of a problem for developers from Eastern Europe, where product companies employ only like 5% of all IT folks, and less of an issue for North Americans, who tend to dive deeper to the roots of the problem. As a result, we added couple more benchmarks to our interview process:
作为一家软件开发公司的首席执行官,在过去的几年中,我进行了数百次不同的面试,包括技术和行为方面的采访,并且令我惊讶的是,即使是申请高级工程师级别的候选人也常常无法理解业务环境。 我在这里应该指出,对于东欧的开发人员来说,这是一个更大的问题,因为东欧的产品公司只雇用了5%的IT人员,而对于北美的人来说,这却是一个小问题问题。 结果,我们在面试过程中增加了一些基准:
- Are candidates capable of understanding business model, monetization, how does specific product contribute to making business successful, i.e their abilities to understand business owners. 候选人是否能够理解业务模型,获利能力,特定产品如何有助于使企业成功,即他们了解企业所有者的能力?
- Can they select most useful features of the product, see future of the product, come up with ideas, i.e their abilities to understand product owners. 他们能否选择产品最有用的功能,查看产品的未来,提出想法,即他们了解产品所有者的能力。
- Can they propose alternative ways of achieving the same goal, i.e their abilities to understand end users. 他们能否提出实现同一目标的替代方法,即他们了解最终用户的能力。
- Can candidates ask the right questions to get to the right answer. 候选人可以提出正确的问题以获得正确的答案。
And don’t get me wrong, I’m not expecting candidates to take product owner responsibility if the company does not have one, or show excellent entrepreneurship skills and grow business instead of business devs or owners. What I’m looking for is the ability to put themselves on the other side of software engineering and understand that:
而且请不要误会我的意思,我不希望候选人在公司没有责任的情况下承担产品所有者的责任,或者表现出卓越的企业家技能并发展业务,而不是业务开发人员或所有者。 我正在寻找的是将自己置身于软件工程另一面并能够理解这一点的能力:
- the code they are writing is needed for a reason. 他们正在编写的代码是有原因的。
- it does not matter when the code is great, but it’s an overkill for a task. 好的代码什么时候都没关系,但这对于一项任务来说是太过分了。
To test those capabilities, I’ve come up with few case-based questions. Usually I use one or two of them at a single interview, spending 7–10 minutes on average. I’ve also included some possible answers, but there are no right answers here since questions are open-ended and conversation can drive them to totally different results.
为了测试这些功能,我提出了一些基于案例的问题。 通常,我在一次采访中会使用其中的一两个,平均花费7-10分钟。 我还提供了一些可能的答案,但是这里没有正确的答案,因为问题是开放性的,对话可以使他们得出完全不同的结果。
案例1-适用于移动/前端/全栈开发人员 (Case 1 — for mobile/front-end/full-stack devs)
Imagine an app that gives users the ability to find restaurants nearby, see the menu, opening hours and etc.
想象一下一个应用程序,它使用户能够在附近找到餐馆,查看菜单,营业时间等。
Q: how would MVP for such a product look like? A: users should be able to open the app, be auto-located or provide their zip code, then see the list of restaurants on the screen, be able to see details of the restaurant and get transferred to Maps for directions.
问:此类产品的MVP看起来如何? 答:用户应该能够打开应用程序,自动定位或提供其邮政编码,然后在屏幕上查看餐厅列表,能够查看餐厅的详细信息并转移到地图上以获得指导。
Q: to show restaurants on UI, would you choose list or map view?A: from a user perspective, a map is better than a list, but a list is cheaper to build. But at some point we will likely have both.
问:要在UI上显示餐厅,您会选择列表视图还是地图视图? 答:从用户的角度来看,地图比列表要好,但是列表的构建成本较低。 但是到某个时候,我们可能会两者兼而有之。
Q: how or where can we gather restaurant data for this app? Would it be better to use open databases, or build your own system to gather this info from restaurants owners? A: 3rd party data can be used for MVP or long-term if the business model is not about the restaurant data but something else (booking, reviews etc.) If the business model is about having relevant, up-to-date restaurant data, then it’s better to start with limited locations but build relationships with restaurant owners, create sign up flow etc.
问:我们如何或在哪里可以收集此应用程序的餐厅数据? 使用开放数据库还是构建自己的系统来从餐馆老板那里收集这些信息会更好吗? 答:如果商业模式不是关于餐厅数据,而是其他(预订,评论等),则第三方数据可用于MVP或长期使用。如果商业模型是关于拥有相关的最新餐厅数据,那么最好从有限的位置开始,但要与餐厅老板建立关系,建立注册流程等。
案例2-适用于全栈/后端开发人员 (Case 2 — for full-stack/backend devs)
Imagine a SAAS product: SMS campaign management tool, where the operator has to add recipients into the system, then build up a sequence of messages and schedule execution of the campaign.
想象一下SAAS产品:SMS广告系列管理工具,操作员必须在其中将收件人添加到系统中,然后建立一系列消息并安排广告系列的执行。
Q: What would be the easiest way to input recipients into the system? What functionality is needed to allow input of thousands of recipients into the system?A: Creating them one-by-one will be problematic. We can start from simple CSV upload, using third-party libraries to ease the mapping and data validation. Later we may need to integrate with customer’s CRM systems or build API so they can push data to our system.
问:将收件人输入系统的最简单方法是什么? 需要什么功能才能允许成千上万的接收者输入系统? 答:一个一个地创建它们是有问题的。 我们可以从简单的CSV上传开始,使用第三方库来简化映射和数据验证。 稍后,我们可能需要与客户的CRM系统集成或构建API,以便他们可以将数据推送到我们的系统。
Q: What monetization could we have for such a product?A: It can be a fixed fee per SMS, added on top of cost of SMS. The more SMS are sent, the bigger would be the profit of the company. The company could also provide additional services, like business intelligence and insights, charge for custom integrations etc.
问:我们可以通过这种产品获利吗? 答:除了SMS费用外,它可以是每个SMS的固定费用。 发送的短信越多,公司的利润就越大。 该公司还可以提供其他服务,例如商业智能和见解,自定义集成等费用。
案例3-适用于前端/全栈开发人员 (Case 3 — for front-end/full-stack devs)
Imagine a platform that gives some operation teams the functionality to create text-based, image or video content, that their company will use for advertising. The app has functionality to upload text or media and put them on a template. These units can be previewed and pushed to the server for processing.
想象一下一个平台,该平台为一些运营团队提供了创建基于文本的图像或视频内容的功能,这些功能将被他们的公司用于广告。 该应用程序具有上传文本或媒体并将其放在模板上的功能。 这些单元可以预览并推送到服务器进行处理。
Q: is designer needed to create mocks for such a system? A: any front-end developer would love to have professional mocks built, but for systems that are used internally, it is not always the case. Moreover, there should be an understanding that main requirements for internal systems are to be effective, robust and performant. UX in this case is more important than UI.
问:是否需要设计师为此类系统创建模拟? 答:任何前端开发人员都希望构建专业的模拟程序,但是对于内部使用的系统,情况并非总是如此。 此外,应该理解内部系统的主要要求是有效,健壮和高性能。 在这种情况下,UX比UI更重要。
Q: a product owner asks you to build an image editor, but you know that it will take months of work. Can you think of an alternative? A: think about the use cases for this editor and make sure that product understands the effort to be put into it. Maybe, using something as simple as Paint and having the upload functionality would do the job.
问:产品负责人要求您构建图像编辑器,但您知道这将需要数月的工作。 你能想到一个替代方案吗? 答:考虑一下此编辑器的用例,并确保产品了解要投入其中的工作。 也许,使用像Paint这样简单的方法并具有上载功能就可以完成这项工作。
Q: you’re asked to add the functionality of changing the font family on the template, but once you start working on this task, it appears that the only existing font is hard-coded and you’ll need to refactor a large piece of code to make it configurable. What would you do?A: it is important to understand that when developers can’t hit their original estimates or their changes require broad testing and impose risks, they should raise this to their managers and make sure that the business value of the feature is worth the effort/risk.
问:要求您在模板上添加更改字体系列的功能,但是一旦开始执行此任务,似乎唯一的现有字体是硬编码的,因此您需要重构很大一部分字体。代码以使其可配置。 你会怎么做? 答:重要的是要了解,当开发人员无法达到其最初的估计或他们的更改需要进行广泛的测试并施加风险时,他们应该向管理人员提出这一建议,并确保该功能的商业价值值得努力/承担风险。 。
mff开发者访谈