外包软件项目时,要表现得像个专家,而不是处女
外包软件项目时,要表现得像个专家,而不是处女

我将在这篇文章中告诉你:
- 软件外包是多么痛苦
- 为了避免痛苦,你必须遵守某些规则
如果你是客户
所以你想设计一个网站,或者制作一个应用程序,或者制作一些其他的软件。你想把工作外包出去。
你在一个在线市场上发布了一个项目。十几个人想以每小时 10 美元到 100 美元的价格建造你的项目。
你可能会在印度、乌克兰或波兰雇佣一家开发公司,他们有一个漂亮的网站。他们的销售人员承诺他们的开发人员是由星尘组成的,并且有他们以前的客户发自内心的证明。
然而你可能会被烧伤。
你可能会踩到不同颜色的牛粪:
- 支付定金(几千美元)给一些来自遥远国度的人,你从未见过他们,也永远不会。
- 意识到开发公司的工程师英语说得不够好,听不懂你的南方口音。
- 比预期日期晚收到代码,然后与公司争论代码是垃圾。
- 由于不可预见的问题而被要求涨价。
- 最终的结果看起来和你预期的不一样。
- 与团队的所有交流突然停止(再见,10,000 美元+你 3 个月的时间)。
- 突然不得不找别人来为你构建你的项目,并再次经历上述过程。
- 不得不运送一个坏的产品,落后于时间表。
客户也可能是混蛋
不要误解我——开发者也有他们的劣质客户。
示例:
- 客户承诺付款,但延迟付款。
- 你工作做得很好,但是客户指责你做得很差,并说“任何人都可以以更低的价格做这件事。”
- 客户突然提出变更请求,影响了工作范围,但他不明白这有什么困难
- 客户突然消失了(拜拜,90 小时的编码+ 20 小时在 StackOverflow 上的搜索+承诺的 5000 美元)
作为客户你能做什么?
人们建议做各种事情来解决这个问题。我认识一个人,他连续几个月熬夜与印度的一家公司沟通。我认识一位女士,她实际上在她雇佣的中介公司附近住了几个月。
现在,我已经私下和双方都谈过了。根据我的经验,生活可以归结为三条准则:
- 知道自己想要什么。开发人员不是来解决你的问题的。她在那里实施你已经想到的解决方案。
- 在寻找自由职业者时,你不需要“聪明”,你只需要知道常见的陷阱并遵循一个框架。没必要跟着你的直觉走。
- 讲道理,讲人情。最好的公司和自由职业者是那些可以自由选择客户的人。他们不会和 a 洞一起工作。
现在让我们进入细节。
(如果你是 非常 非技术性的人,可能很难判断一个项目的复杂程度。在这种情况下,找一个不感兴趣的人(比如你可能有的一个工程师朋友)来帮助你理解你的想法的所有方面,以及一些你应该留意的重要事情。)
- 寻找好的开发机构和自由职业者
有很多好的开发公司不容易找到工作,因为市场上充斥着蹩脚的公司。以下是你如何过滤掉杂音,找到适合自己的。
- 不要对某个特定的地理区域抱有成见。例如,亚洲公司通常名声不好,但我可以向你保证,那里有一些真正优秀和真诚的开发人员。
- 给自己定预算,但不要太吝啬。把价格定得太低会吸引那些愿意为任何事情工作的公司——恰恰是那些你不想给他们工作的公司。它们会让你付出比你想象中更多的钱。
- 要找到他们,试着通过自由职业者或开发公司的第三方审查网络。为了找到自由职业者,我强烈推荐加入脸书的大型数字游牧群体,并发布你的需求。我也听说过关于 Toptal 和 VenturePact 的好消息。
无论何时收到开发商的投标,请遵循以下清单:
- 他们的个人网站应该看起来不错。
- 他们应该有一个很好的项目组合;至少有几个应该和你的项目差不多。如果你的项目很不寻常,而且他们没有做过太相似的事情,那就寻找好的品种。
- 留意看起来很不一致的信息
- 我不会总是相信客户证明,但有时我会相信,如果他们在他们的脸书网页上,看起来是真实的。
- 当你和他们交谈时,他们应该有兴趣听你说话,并问你一些关于项目的大背景和商业目标的好问题。他们也应该在你不清楚的事情上教育你。如果在你第一次与他们通话后,你觉得他们没有教会你任何东西或问出任何好问题,放弃他们。
- 他们给你的报价既不便宜(除非他们在第三世界国家),也不太高。
- 做一些关于他们的谷歌搜索,并超越搜索结果的第一页。
- 在达成交易之前,问问他们想从你这里得到什么。如果他们提到我将在这篇文章的其余部分提到的事情,他们可能是一家不错的公司。
- 正如我在下面的评论中被约瑟芬提醒的那样(谢谢!),你可能还想看看他们是否会签署一份具有法律约束力的 NDA。如果你时间很紧,试着选择一家和你时区相近的公司。会让沟通更容易。
2。确保要求非常明确。
这对开发者和客户都适用。作为客户,你有责任确保在描述你想要的东西时不留下任何细节。
- 尽可能多地提供模型和线框。
- 创建一套清单,在项目完成后,你可以根据这些清单来评估项目。
- 交流在程序设计、代码架构、代码风格等方面的偏好(如果你有的话)。
- 确保您的最终产品易于与您的技术堆栈/生态系统和基础架构的其余部分集成,并在需要时与其他第三方服务集成。
(如果你是开发人员,你也有责任询问所有这些信息。在你绝望地想要完成交易的时候,不要让客户偷懒,让你自己去解决所有这些问题。一年后,当有人请他推荐优秀的开发公司时,你应该成为他的首选
- 确定一个严格的沟通和付款时间表
这里的关键是里程碑管理。
- 将项目分解成一系列里程碑,您可以用它们来记录项目的进度和质量。
- 告诉他们,你希望他们在每个周末准确地交流他们已经做了什么,他们面临了什么问题,他们下一步计划做什么。
- 尽可能多地进行视频通话—总是更喜欢视频通话,而不是其他任何交流方式(尤其是电话信息)。这将会有很大的不同。投资硬件和软件,如果需要的话,给你更好的声音和视频质量,并期待对方也这样做。
- 如果你对某件事不是 100%顺利感到一丝担忧,那就认真对待这件事,并向他们询问。在沟通中要直截了当(不要粗鲁),如果他们给你含糊不清或没有说服力的答案,就大声说出来。
4.回顾自己每一步的工作进度
在这个行业,你不只是得到你所支付的,你还会得到你所要求的。由你来执行好的实践,这样你才能得到你想要的。
- 请他们在每个里程碑“提交”他们的工作。每当他们提交一段代码,看看它!
- 使用 codeclimate 这样的标准库进行静态代码分析。它会给你一些关于它的复杂性,重复,风格,错误风险等信息。
*5. *不要做混蛋。**
- 要尊重。如果你发现很难再尊重别人,那么恭喜你,狗屎早就砸到你头上了。
- 不要在小问题上发脾气。现在,你可能没有足够的知识去知道一个问题是小的还是大的。这是一个复杂的情况,我没有一个简单的答案。你应该考虑找(或雇佣)一些技术人员来观察项目的各个阶段并给你建议。这样,当你雇佣来构建你的项目的开发人员出错时,他们就不能轻易地欺骗你了。
- 不要每次在他们的工作中发现一个小瑕疵或错误时就威胁不付钱。是软件我的朋友,总有小 bug。甚至谷歌和脸书的软件也有缺陷。
- 不要给他们设定不切实际的时间表。好事需要时间。(而你,软件公司的所有者和销售人员,不应该仅仅因为一个客户要求太高或者是个混蛋,就把不切实际的最后期限强加给你自己的开发人员!你的员工也是人,如果你要求他们在很短的时间内做某件事,那么这件事的质量可能会很差。如果可以的话,与客户交谈。)
就是这样。
如果你做到以上几点,我几乎可以保证你不会损失时间和金钱。
我会教你如何与工程师聪明地交谈,如何更有效地雇佣和管理员工,以及如何成为一名技术战略家。
sanpram.com](https://sanpram.com/teaching)