初创公司正在增长,现在你的团队中有5个全职开发人员。 你有一个旧的应用程序正在运行在生产和一个新的Web应用程序几乎准备发布。 你有5个物理服务器(一些新的,一些过时的)和5/10个“云计算机”。 您的应用程序的旧版本运行到一个简单的networking服务器,并演变加class到更“专业”的东西。 另一方面,您的新应用程序利用了云环境,旨在通过使用队列,nosql和其他酷东西来支持“高stream量”…您的销售额在不断增加,function开发和缺陷修复都是需要的。 你的开发人员的能力是他们的110%(并成为真正的“软件瑞士军刀开发者”)开发一个新的应用程序,并支持旧的…当你用尽资源,当涉及到解决具体问题,你通过支付昂贵的账单来呼叫“知道的人”。 你有unix和windows服务器,当你有时间或者当你遇到应用程序错误时,你安装更新并阅读日志查看器。 到目前为止,科技创业的普遍情况…
所以,现在你有了这张照片。 如果这家公司聘用系统pipe理员,或者让“想要的开发人员”有时间对基础设施进行操作,并且对这个解决scheme有疑问,那么他们应该外包?
当工作人员的成本大于工作中断和数据丢失的风险时,工作人员就可以避免。
就这么简单。
我说,只要你能负担得起。
开发人员不是系统人员。 他们不知道如何最好地优化MySQL以获得最佳性能。 在虚拟机上运行时,他们不知道Apache上的Keepalive。
这些是我遇到过的一个开发者创build的web服务器的两个例子,在这个过程中对它进行了讨论。
许多开发者也有这样的态度:“它在我的电脑上工作,因此它必须在服务器上工作!” – 坏消息。
雇用一个系统人,如果你想正确的做。
在这样的规模下,你应该已经在考虑logging足够多的关于当前员工花时间回答问题的细节。 从你的描述中,我会让每个人都跟踪他们花费在哪个产品/站点/服务上,他们正在做什么(pipe理员,分析,预启动开发,bug修复等)。 如果你在pipe理员的东西附近有一个FTE,那么你肯定需要一个pipe理员。
除了接pipe开发者的一些驴工作之外,一个好的pipe理员还应该为服务增加价值 – 特别是在可用性,安全性和性能方面。
但要记住,这是业务增长的一个痛苦阶段 – 不要指望一个人能够永远提供所有的pipe理工作 – 一些工作必须共享,以便其他人有技能(以及访问备份媒体,密码,外部联系人……)在她休假或在别处find工作时为她提供掩护。