初创公司正在发展,现在您的团队中有 5 名全职开发人员。您有一个较旧的应用程序,该应用程序已投入生产并运行,还有一个即将发布的新 Web 应用程序。您有 5 台物理服务器(一些是新的,一些是过时的)和 5/10 台“云机器”。您的旧版应用程序运行在一个简单的 Web 服务器上,随着时间的推移,它逐渐发展为更“专业”的服务器。另一方面,您的新应用程序利用云环境,并通过使用队列、nosql 和其他很酷的东西来支持“高流量”……您的销售额在增加,需要开发功能和修复错误。您的开发人员通过开发新应用程序和支持旧应用程序,发挥了 110% 的能力(并成为真正的“软件瑞士军刀开发人员”)……当您的资源耗尽时,当需要解决具体问题时,您会通过支付昂贵的账单来寻求“一位知道的人”。您有 unix 和 windows 服务器,当您有时间或遇到应用程序错误时,您会安装更新并阅读日志查看器。到目前为止,对于一家科技初创公司来说,这是一个常见的情况……
现在您已经了解了情况。这家公司是否应该聘请系统管理员,或者让“需要时间的开发人员”来运营基础设施,并在他们对解决方案有疑问时进行外包?
答案1
我说,只要你买得起。
开发人员不是系统专家。他们不知道如何优化 MySQL 以获得最佳性能。他们不知道在 VM 上运行时 Apache 上的 Keepalive。
这是我遇到的两个例子,一个开发人员设置了一家初创公司的网络服务器,并在过程中搞砸了它。
许多开发人员也有这样的态度“它在我的 PC 上运行良好,因此它也一定在服务器上运行良好!” - 坏消息。
如果您想把事情做好,请聘请一名系统人员。
答案2
当员工成本超过员工可以避免的业务中断和数据丢失的风险时。
就这么简单。
答案3
在这个规模下,您应该已经考虑记录足够多的有关当前员工花时间做什么的详细信息,以回答这个问题。根据您的描述,我会让每个人都跟踪他们花时间在哪个产品/网站/服务上,他们在做什么(管理、分析、发布前开发、错误修复等)。如果您在管理方面有近一个全职员工,那么您肯定需要一名管理员。
除了从开发人员手中接过一些繁重的工作之外,优秀的管理员还应该为服务增加价值 - 特别是在可用性、安全性和性能方面。
但请记住,这是业务增长过程中的一个痛苦阶段 - 不要指望一个人能够永远全天候提供所有管理工作 - 某些工作必须共享,以便其他人拥有技能(以及访问备份媒体、密码、外部联系人....)在她度假或在其他地方找到工作时为她打工。