如何评估和聘请软件开发机构
寻找 5 个信号:直接联系编写代码的工程师、每周在临时环境中进行工作演示、从第一天开始就在存储库中拥有代码所有权、基于里程碑的计费以及可验证的实时产品案例研究。 隐藏在项目经理背后且时间表模糊的机构有 60-70% 的合作失败。
我经营一家软件开发机构。 我已经参加过数百次招聘谈话的另一方:最初的电话、提案、谈判、启动。 我还亲眼目睹创始人因那些表面上看起来很棒但项目中期却崩溃的机构而被烧伤。
代理市场存在诚信问题。 太多的商店会对任何事情说“是”,在了解问题之前引用一个数字,并在第一个里程碑检查清除后消失。 找到一个有能力的团队是可能的,但您需要知道要寻找什么以及哪些问题可以贯穿销售宣传。
本指南适用于首次聘请开发机构的创始人、企业主和营销主管。 它涵盖了警告信号、积极信号以及将有能力的团队与那些会浪费你钱的团队区分开来的具体问题。
预测项目失败的危险信号
大多数失败的代理项目都遵循一种模式。 这些警告信号在合同签署之前就出现了,但客户却错过了它们,因为他们不知道要寻找什么。
他们在询问您的产品之前会报出固定价格
如果代理机构在第一次致电时就给您提供了号码,那么他们就是在猜测。 在不了解问题、用户、集成和约束的情况下,没有人可以对软件进行定价。 一家在询问有关您的业务的深入问题之前报价 15,000 或 50,000 美元的机构要么已经构建了一个他们计划强制您的项目进入的模板,要么他们计划在工作开始后向您发出变更指令。
优秀的机构在提出提案之前会提出数十个问题。 他们想要了解您的用户、您的收入模式、您现有的系统以及成功是什么样的。 范围界定过程本身告诉您很多关于他们将如何对待您的项目的信息。
没有可验证结果的案例研究
机构的投资组合应包括具体成果:启动日期、绩效指标、业务成果。 “我们构建了一个漂亮的应用程序”什么也没有告诉你。 “我们在 8 周内交付了一个带有基于位置的交付区域的定制电子商务平台”告诉您他们可以交付。
请求实时产品的链接。 检查这些产品是否仍在运行。 如果可以的话,与过去的客户交谈。 无法向您提供可用软件的机构应该引起关注。
“我们可以建造任何东西”,没有专业化
那些声称在 iOS、Android、网络、区块链、人工智能、AR/VR 和物联网方面拥有专业知识的机构都过于分散,无法在其中任何一个方面表现出色。 最好的机构拥有核心能力:全栈网络应用程序、移动应用程序、数据平台或医疗保健或金融科技等特定垂直领域。
您想要一个能够解决与您之前类似问题的团队。 这种体验可以转化为更快的交付、更少的架构错误和现实的时间表。
您和工程师之间的客户经理
如果你的启动电话会议上的人是一位项目经理,他不会编写一行代码,那么你的反馈将通过电话游戏进行过滤。 您说“结帐流程感觉很慢”。 客户经理写道“客户希望提高绩效”。 三天后,开发人员看到了该说明,但不知道您的意思。
最好的代理机构可以让您直接与构建您的产品的人员交谈。 在萨维,从第一次通话到发布,您都与工程师进行交流。 您和编写代码的团队之间没有销售层。
没有暂存环境或每周演示
如果一家机构计划工作六周然后向您展示结果,那么您就是在赌博。 六周内可能会出现很多问题:误解需求、糟糕的架构决策,或者团队在与未预料到的问题作斗争时变得安静。
每周演示环境强制问责制。 你会看到进步。 你很早就发现了误解。 在错误的决定复杂化之前,你有机会重新调整方向。 拒绝这种节奏的机构是在告诉你他们不想要监督。
他们拥有代码或基础设施
一些机构将您的应用程序托管在他们的服务器上并保留代码库的所有权。 这会产生一种需要付出昂贵代价才能摆脱的依赖。 如果关系恶化,你们就要从头开始。
代码所有权应该从第一天起就转移给您。 该存储库应位于您的 GitHub 或 GitLab 组织下。 基础设施应在您的云帐户上运行。 您应该可以随时带着您所支付的一切离开。
预示着良好合作伙伴关系的绿旗
值得雇用的机构都有一套降低风险和建立信任的做法。 这是要寻找的内容。
您与工程师交谈,而不是销售人员
当解释技术方法的人和构建技术方法的人是同一个人时,对话会更加诚实。 工程师会告诉您什么时候遇到困难,什么时候某个功能需要比您预期的时间更长,以及什么时候您的想法需要重新考虑。 销售人员会告诉您您想听的话。
每周工作演示
优秀的机构每周都会将工作软件发送到暂存环境。 不是幻灯片。 不是线框图(那些是在发现过程中出现的)。 您可以点击、测试并做出反应的工作软件。 这是团队可以传递的最强烈的信号,因为它是最难伪造的。
我们建造了Frootex 的定制电子商务平台每周向创始团队进行演示。 他们在每件商品落地时测试了送货区逻辑、实时库存同步和移动店面。 到发布当天,并没有出现任何意外。
从第一天起就拥有代码所有权
该存储库位于您的帐户中。 云基础设施根据您的计费运行。 如果您明天分道扬镳,您将拥有一切:源代码、部署配置、文档。 一个好的代理机构会在你的财产上构建你的产品,而不是他们的财产。
CI/CD 管道在第一周内建立
持续集成和持续部署是专业团队交付软件的方式。 对每个拉取请求运行自动化测试。 每次合并时代码都会部署到暂存区。 该基础设施需要一天的时间来设置,并节省了项目后期数周的调试时间。
如果机构通过手动将文件复制到服务器来部署登台,则表明他们的工程实践落后于行业。
透明的预算和基于里程碑的计费
你应该知道你的钱去哪儿了。 优秀的机构会将项目分解为多个里程碑,并明确每个里程碑的可交付成果和成本。 您在里程碑交付时付款,而不是在时间表显示已记录工时时付款。
这会产生一致性:代理机构有动力去发货,而您为结果而不是座位时间付费。
测试覆盖率作为可交付成果
测试不是可选的。 它们是您了解软件工作原理的方式,也是您了解未来更改不会破坏已发布内容的方式。 如果一个机构没有在他们的可交付成果中包含测试覆盖范围,他们就会偷工减料,当错误在生产中出现时,这会让你付出代价。
第一次通话时要问的问题
与代理机构的第一次通话是将营销与现实分开的最佳机会。 这五个问题比任何投资组合都能告诉你更多信息。
“我可以和负责编写代码的工程师谈谈吗?”
这个问题揭示了该机构的结构。 如果答案是“他们没有空”或“我们的项目经理负责处理客户沟通”,那么您将通过整个项目的电话链进行工作。 如果答案是“你现在正在与他们交谈”或“让我向他们介绍一下”,那么这就是一个重视直接沟通的团队。
“你的第一周是什么样的?”
答案应该是具体的。 一个好的机构会在第一周进行发现:了解您的用户,制定技术要求,设置存储库和 CI/CD,以及生成您可以查看的产品需求文档或技术规范。
如果答案是“我们开始编码”,那就是在他们理解问题之前进行团队建设。 如果答案含糊,他们就没有可重复的流程。
“你如何处理范围变更?”
每个项目都会发生范围变更。 问题是该机构是否有处理这些问题的系统。 好的答案包括:“我们记录变更,估计对时间表和预算的影响,并在继续之前获得您的批准。” 不好的答案包括:“我们很灵活”(这意味着不可预测)或无线电静默,然后是意外的发票。
“如果我们想在项目中途退出怎么办?”
这个问题让各机构感到不舒服,这就是它有用的原因。 答案揭示了他们的合同条款和他们对自己工作的信心。 一个好的机构会说:“你拥有代码。我们转移一切。你为迄今为止完成的工作付费。” 一个糟糕的机构会摸索出一个暴露锁定条款或代码所有权限制的答案。
“向我展示过去项目的暂存环境”
这是最难伪造的请求。 暂存环境是该机构构建的软件的实时工作版本。 如果他们能拿出一个并引导您完成它,那么他们就已经发货了真正的产品。 如果他们重定向到带有屏幕截图的投资组合页面,请深入挖掘。
当我们交付时Fenado 的人工智能合规平台,登台环境是客户在上线之前测试每个功能的地方。 该环境成为整个项目的证明点。
定价模型如何运作
软件开发中的三种定价模型各自具有不同的风险。 了解它们有助于您为项目选择正确的结构。
定价
该机构预先报价了总成本。 无论工作需要多长时间,您都需要支付该金额。 这听起来很吸引人,因为它限制了你的风险,但它产生了一个不同的问题:该机构的激励转向最大限度地减少他们的努力。 如果项目结果比预计的更难,他们就会走捷径、缩小范围,或者开始提交变更单。
固定定价适用于具有明确要求的明确定义的项目:营销网站、登陆页面或具有严格功能集的小型 MVP。 对于在开发过程中需求不断变化的复杂产品来说,它会崩溃。
时间和材料
您按照约定的每小时或每日费率支付工作时间的费用。 这使您可以随着项目的进展灵活地调整方向。 风险在于,如果团队速度缓慢、范围在没有检查点的情况下蔓延,或者没有高效交付的动力,则成本可能会激增。
当您身边有一位能够保持项目重点的强大产品经理时,时间和材料就会发挥作用。 它需要信任并了解团队每周所做的事情。
基于里程碑的计费
该项目分为具有具体可交付成果和成本的里程碑。 当里程碑发货并满足验收标准时,您需要付款。 该模型将固定定价的预算可预测性与时间和材料的灵活性结合起来。
基于里程碑是我们为大多数定制软件项目推荐的模型。 它调整了激励措施:代理机构获得运输费用,并且您在每次付款前获得工作软件。 如果项目脱轨,您可以在任何具有工作产品的里程碑之后停止。
良好的代理关系是什么样的
运行良好的机构参与遵循可降低每个阶段风险的结构。 方法如下我们在 Savi 运行项目,分为四个阶段。
联系我们
第一次对话是与工程师的 30 分钟通话。 没有推销。 目标是了解您的问题、您的时间表、您的预算范围以及我们是否合适。 我们接到的电话中,有一半最终会建议采用不同的方法或不同的团队,因为该项目不在我们的掌控范围内。 没关系。 一个能让你避免糟糕的约定的电话比一份签署的合同更有价值。
发现与 PRD
在编写代码之前,我们花时间了解产品。 此阶段生成产品需求文档,其中列出了用户流程、技术架构、数据模型和集成点。 您查看此文档。 你反击。 你问问题。 PRD 成为所建项目的合同。
这是大多数项目失败的根源; 不是在代码中,而是在跳过应该在代码之前进行的思考。 直接进行开发的机构是建立在假设之上,而不是理解之上。
每周构建并发货
开发以每周为周期进行。 每周都会以临时环境中的工作演示结束。 你测试一下。 你给予反馈。 我们调整。 代码库位于您的存储库中,从一开始就具有自动化测试和 CI/CD。
这种节奏意味着您只需五个工作日即可看到资金产生的效果。 如果感觉有什么问题,您可以在问题复杂化之前进行纠正。
启动和支持
发射并不是结束。 我们部署到生产环境,监控问题,并提供错误修复和调整的支持窗口。 移交包括完整的文档、部署运行手册和代码库,如果您选择稍后进行内部开发,其他团队可以获取这些代码库。 签字前询问任何机构有关其维护费用的信息;软件维护成本每年运行 15-20% 的构建成本,您想知道谁负责这项工作。
该决定取决于信任和证据
雇用软件开发机构是一个高风险的决定。 一个好的代理机构将使您的业务加速数月。 一款糟糕的软件会消耗您的预算,并让您拥有无法使用的软件。
本指南中的危险信号和绿色信号归结为一个原则:主管机构以透明的方式运作,因为他们对自己的工作充满信心。 他们向您展示代码、暂存环境和工程师。 他们从第一天起就赋予您所有权。 他们以可预测的节奏发布工作软件。 隐藏在销售团队、模糊的时间表和锁定代码背后的机构是在保护自己,而不是你。
提出棘手的问题。 检查参考文献。 坚持每周演示。 值得雇用的机构将欢迎审查。
常见问题
我如何知道软件开发机构是否合法?
要求查看过去项目的实时登台环境。 检查他们的产品组合是否包括仍然在线的工作产品。 请求直接联系将为您编写代码的工程师。 隐藏在产品经理背后并仅显示屏幕截图的机构掩盖了能力差距。 具有发布日期和指标的可验证案例研究将真正的团队与幻灯片商店区分开来。
在第一次致电开发机构时我应该问什么?
五个贯穿销售宣传的问题:“我可以和编写代码的工程师谈谈吗?” “你的第一周是什么样的?” “你如何处理范围变更?” “如果我们想在项目中途退出怎么办?” 和“向我展示过去项目的暂存环境”。 这些揭示了他们工作的结构、透明度和信心。
我应该选择固定价格还是按小时计费的代理机构?
对于大多数项目来说,基于里程碑的计费是最强的选择。 当里程碑交付并满足验收标准时,您即可付款,将预算的可预测性与灵活性结合起来。 固定价格适用于小型、明确的项目。 当你有一个强大的产品经理时,每小时(时间和材料)就可以了。 避免无上限的开放式小时合同。
雇用开发机构时我应该注意哪些危险信号?
在了解您的产品之前先报价,没有可验证的实际产品案例研究,声称拥有 10 多种技术的专业知识,在您和工程师之间安排客户经理,没有临时环境或每周演示,并保留代码或基础设施的所有权。 其中任何一项都预示着项目失败。
与代理机构合作时,谁应该拥有代码?
从第一天起你就应该拥有一切。 该存储库位于您的 GitHub 或 GitLab 组织中。 基础设施在您的云帐户上运行。 您应该能够随时获取所有源代码、部署配置和文档。 保留代码所有权的机构会造成昂贵的锁定。
相关阅读
自由职业者、代理机构与内部团队:如何决定
自由职业者的费用为 50 美元/小时。 代理费用为 100 美元/小时。 一名内部工程师的费用为 15 万美元/年。 但每小时成本是错误的衡量标准。 以下是如何为您的舞台选择合适的型号。
离岸、近岸、陆上开发:成本和质量权衡
离岸费率起价为 25 美元/小时,但隐性成本将实际价格推至 50-75 美元/小时。 近岸则平分秋色。 以下是每个模型与实际数据的完整比较。
您需要首席技术官吗? 部分技术领先的案例
全职 CTO 的成本为 180-25 万美元/年,另加股权。 部分 CTO 的费用为 2-5,000 美元/月。 以下是如何在不雇用全职员工的情况下获得初创公司所需的技术领导力。