前段时间我才意识到,到目前为止,我所做的几乎所有客户项目都忽略了一组重要的利益相关者:系统管理员.
这些沉默的英雄通常只涉及项目的最后阶段,并留下一个可执行的黑盒子,他们必须在未来几年内安装,支持和维护.每当这个黑匣子出现问题时,他们必须找到一种方法来解决它,使用黑匣子或底层平台提供的任何随机信息和工具支持,如果这还不够,那么他们必须即兴发挥作用.
如果他们从一开始就作为项目的利益相关者参与其中,他们就有机会预测潜在的问题,并告知项目团队.但现实是不同的,即使我作为开发人员愿意让系统管理员作为额外的利益相关者参与,外部因素可能会阻止这种情况发生.
在这些情况下,我想尽我所能帮助我们的无声英雄.所以我的问题是:
当我们开发他们必须维护的系统时,系统管理员希望我们的开发人员做什么?
如果您是系统管理员,请讲一个关于您曾经遇到过的难题以及开发人员可以做些什么来让您更容易解决问题的战争故事.
各种各样的东西,包括(但不一定限于)这些,不是优先顺序:
无需使用特权安装
选项以使用特权安装
分布式安装选项(因此可以安装在服务器上并在其他机器上使用)
清理卸载
明智的升级模式
选择安装位置的选项
对其他软件的依赖性最小
系统周围数据的最小散布(不要将内容转储到/ etc,/ usr/lib,/ var/adm,......)
没有不断增长的日志
无提示安装
脚本安装
在线文档(在机器上 - 以及在互联网上)
也许是手册页
易于配置
易于最终用户访问
没有安全隐患
没有特殊用户或组(或有限数量 - 最多一个特殊用户,一个特殊组是目标,但并不总是可以获得)
没有"电话回家"功能或仅在明确配置时(不得为默认值)
出现问题时,可以很好地记录诊断信息
如果出现问题,可以提供良好的技术支持
无需在安装期间获取激活码
安装后无需重启机器
能够并行运行旧版本和新版本
很大程度上取决于软件是什么以及如何使用它.适用于Windows,Linux和MacOS X的GUI程序的要求与网络守护程序的要求完全不同 - 但目标应该仍然是稳定,可靠,易于管理的软件.
请记住,内部部门在一家公司内部使用的软件与为开发软件的公司外部客户准备的软件之间存在很大差异.
当不可避免地发生问题时,请注意sysadmin所说的并相信他。如果它与您的最初评估不符,不要立即将其解散。
战争故事:大约6年前,我当时是一家小型制造公司的系统管理员,他们决定购买一些软件来安排其设备的预防性维护计划。它的功能之一是从电子邮件中导入维护请求,但是在此过程中,我们有时会遇到与邮件服务器通信时出错的问题,最终我被邀请来与开发人员进行电话通话。对话涉及的多次迭代
开发人员:我从未听说过有人在与邮件服务器通话时遇到这种麻烦。它必须是防火墙问题。
我:我已登录防火墙,运行数据包嗅探器,并观察应用程序的流量通过没有任何问题。通过防火墙就可以了。
开发人员:不,不-必须是防火墙问题。
(最后,问题是应用程序打开了POP3连接,读取了所有邮件,等待用户安排任务,然后在安排了所有请求之后发送了POP命令删除邮件。如果用户花费了超过15分钟的时间进行排定,则POP连接超时并且该应用无法恢复,因此该应用终止了,然后用户不得不重复排定,这可能会花费足够长的时间再次超时...)