构建于杰夫的博客文章标题为吸血鬼(程序员)与狼人(系统管理员)
从我的角度来看,公司的全部意义在于谈论我们在做什么。当然,把事情做好很重要,但我们必须偶尔停下来写下我们在做什么、我们如何做以及我们为什么要这样做——包括我们所有的怀疑、疑虑和担忧。
那么,当软件开发人员请求服务器时,您会问他们哪些问题?
答案1
一般来说,我问软件开发人员的问题和问其他人的问题是一样的:“你来这里想做什么?”和我能帮上什么忙?。
进一步分解一下,并给你一些开始的想法:
理想情况下,你应该从最高层次的概述开始:
公司的目的是什么?接下来的问题是与系统管理员相关的:
技术如何帮助实现这一目标?和将使用什么技术?现在你可以开始谈论细节了。细节问题因技术而异,但常见的问题有:
我们需要运行什么操作系统?(很多也取决于此)
除了基本操作系统之外,还需要哪些附加软件?
该系统必须有多可靠?(正常运行时间和冗余考虑)
您将有多少个用户?以及其他与工作量相关的问题然后是流程问题:
我们多久会部署一次该软件的新版本?
我们将如何得到那些新版本?(要构建的源代码?预构建的包?商业的?)
有哪些类型的测试套件可用?
我们如何监控软件?(关键指标、可自动化检查等)最后是生产维护问题:
该软件需要什么样的日常维护?(如果这个问题的答案不是“无”,您需要确定需要多少人力)
可能会出现什么样的问题?和我们怎样才能解决这些问题?
答案2
Voretaq7 的两大要点是理想情况下公司中的每个人都应该考虑的。IT 人员(无论是开发人员、系统管理员、帮助台、桌边部署团队等)必须对第一个答案有一定的了解,并且应该能够互相讨论他们所做的一切如何解决第二个问题。
这就是宏观概览。
除此之外,还有平台要求(这是“双向”的事情——部署当天双方都不应该有意外,因为应该事先讨论)。如果您的应用程序需要 .net 4 框架,请提前通知我。如果生产服务器暂时无法升级到 .net 4 是有原因的,那么当我在部署当天说“不,抱歉”时,您不应该第一次听到这种说法。
您应该就正常运行时间要求、支持路线(双向)、应用程序依赖关系、测试用例等内容达成一致,以确保一切正常运行。
我想强调的一件事是同意.这应该是三双向对话。系统管理员、开发人员、帮助台(他们做也需要参与其中,因为他们会接到有关此事的电话,如果他们能给愤怒的用户的唯一答案是“什么$foobar应用程序?那些@£$%£$%!!!! 的开发人员和系统管理员一直在更改东西,却没有再告诉我们”然后猜猜怎么着,你全部看起来很糟糕)所有人都需要在事情发生之前就达成共识。