您如何创建一个可扩展的技术团队,能够解决和构建您未经检验的成千上万的线路?如果你面对这个问题,你就知道它是多么令人慢 - 所以我想从自己的体验中分享一些教训。

在高中,我的朋友尼尔和我一起开始了一家公司。最初是他和我的编码,但很快我们分手了我们的职责:他宣传了我们的网站,我继续技术开发。这次努力工作;我们可以一起运行我们启动的所有方面。我们不需要任何人帮助我们,我们也没有支付昂贵的开发人员或外包公司以建造我们的产品。

七年后,我们决定以同样的自给自足的方式全职追求公司。有一段时间,它运作良好。除了几个雇员之外,我们维持了对我们的发展的控制,可以快速移动。驳回,我们决定提高我们的目标 - 更高的收入,新产品和更多功能。为此,我们将雇用更多的开发人员。这将是令人兴奋的,对吧?

除了它不是。

皱眉,我看着我写的所有代码。成千上万的未经测试的代码线,只有我知道的,只有我知道的,甚至是最伟大的开发人员的风格。我俯视着深渊。我建造的那些混乱的人将如何建立?

被迫满足我们的目标,我开始提取长期的过程。现在,年后,我们终于克服了一个科技联合创始人的并发症。这是我学到的东西:

1.在右脚开始新的东西

第一个规则是不提高您的技术债务。技术债务是您在需要重构的多年内建立的代码Cruft。但是,您的目标不应该立即减少您的债务 - 这将需要时间,并且您有更重要的事情要做,例如创建收入的功能。就像个人融资一样,减少债务是一个长期目标。您的短期目标只是不提高您的技术债务。

这意味着对于新功能,从正确的方式开始。对于您创建的每个新类,添加测试;如果需要,请添加DocBlocks;遵循标准化的编码样式。这样,它会使未来的重构不那么痛苦。

2.继续前往老但容易的东西

最终,您将想要解决技术债务。不要立刻去整个猪。如果要构建依赖某些较旧代码的新功能,请仅改善您需要触摸的位置。随着时间的推移,你会减少你的长期债务而不会变得不堪重负。

3.找到合适的第一次租用并从那里建造

每个人都告诉你雇用合适的人很重要。如果您的目标是让您的脏代码重构,请找一个了解您使用的工具和代码并具有真正可容许的个性。工程人才在这里很重要,但有耐心和良好的幽默感也是至关重要的。找到这个人需要很长时间,但没关系 - 你只需要一个。在该角色之后,高科技导向的中级工程师将能够依赖这个人。

4.随着时间的时间慷慨

当您雇用时,您需要花两倍的时间解释并重新解释同样的事情。对于人们了解了与您将其编码到申请中的“有趣”方式结合使用的细微域名知识,您将感到惊讶。或许你不会感到惊讶。无论哪种方式,过度顺从。

5.最终,所有剩下的都是核心。等待合适的机会杀死它。

一旦你有一个团队到位,他们就会开始帮助你。超过一两年,您将开始看出您的代码库已从您的团队建造的一个构建的代码库转换。但是,你仍然会发现人们已经害怕触摸的核心组成部分 - 他们太深嵌入了系统中。也许人们试图在过去改变这个,但遇到了困难,并且再次恢复了不愿意的感觉。

你如何解决这个问题?好吧,事实证明,这里最好的解决方案是等待。保持产品嗡嗡声,你会发现会有机会呈现自己,这将让你绕过一些旧代码。也许你的身份验证系统是那个核心 - 突然你的产品团队建议切换到Facebook登录,你可以抛弃一些你的旧工作。或者您的产品枢轴和旧代码不再相关。

从作为科技团队经理的唯一技术联合创始人并不容易,但希望这些指导方针将帮助您沿途。

Darshan Sunashekar毕业于B.A.从布朗大学公共政策。他曾在贝恩&公司担任副顾问,并共同创立了公司Drop.io.他是想象一下的联合创始人之一,并管理开发团队。