文档手册与清单文档清单


17

过去,我曾与部门中的其他人讨论过文档,尤其是详细程度和要求。在他们看来,文档是X出问题时要执行的Y事情的简单清单。

我不同意。我认为这是假定IT中的所有问题都可以轻松归结为恢复过程的简单清单。我认为这完全忽略了情况的复杂性,并且由于该部门的其他人员并不总是对此问题有深入的了解(这就是为什么我要编写文档的原因-因此他们需要参考一些内容),文档应包括一些基本的背景材料,例如:

  • 所讨论的(子系统)的目的
  • 为什么以这种方式配置
  • 实施设置/过程时发生的事件期望
  • 可能导致程序失败的潜在问题

但是,我对此颇为不满,因此需要将我的文档重新编写为一种形式,该形式为“应用ABC的步骤才能解决问题X”。 我经常听到它需要放在一张纸上的哀叹。 尝试通过单页文档以这种方式向某人解释Squid ACL的配置,包括故障排除。那只是恢复等待清单中“等待写入”的六个文档之一。

我倡导的方法真的过分吗?还是他们说的对,我应该在这里管我的事,然后给他们写一个简单的清单?我担心的是,无论您编写过程清单的质量如何,它都无法真正解决需要SysAdmin仔细考虑的问题。如果您花时间做一份恢复程序清单,最终导致无法解决问题(由于文档的关注范围狭窄由于文档中没有其他因素),并且您需要文档的目的是避免再次重新阅读手册页,Wiki和网站,那我为什么要进行这些动议呢?我是不是太担心了,还是这是一个真正的问题?

编辑:

当前部门中没有服务台职位。文档的读者将是其他管理员或部门负责人。


1
关于您的编辑:如果您的部门负责人想了解所有信息,他可能正在做大量的微观管理。您应该与他讨论简化流程,以确保现场至少有一个人可以随时处理给定的文档。并非他了解所有这些。
serverhorror

Answers:


11

在写我的书时,我总是专注于写两个三集。完成检查清单,以及有关系统体系结构的更长篇幅的附录,包括为何按原样完成事情,上线时可能遇到的问题以及抽象的设计假设。其次是可能的问题及其解决方案的列表,其后是较长的部分,其中包含有关系统工作方式,为什么这样做的信息,以及在某些独特情况发生时可以为人们指明正确方向的其他信息。

在我的上一份工作中,我们被要求编写文档,以便甚至1级帮助台人员都可以恢复工作。这需要清单,通常在撰写本文后的三个月内就已过时。我们强烈建议我们尽可能地编写故障排除指南,但是当偶然性树中包含三个以上的分支时,您就不能在不经过抽象的情况下编写该文档。

离开上一份工作时,我在离开之前上了100页的“如何完成工作”手册。它包含抽象的内容,设计理念以及集成点。由于我大概是为另一个要代替我的系统管理员而写的,所以我将其目标对准可以采用抽象概念并将其转变为具体操作的人员。


五年过去了,我发现我对此有一些看法。这两个文件的手册文件的清单在文件的层次,并都需要制作非常有价值的地方。他们针对的受众非常不同。

文件作为清单

此类文档的目标市场是想要如何做某事的同事。它们有两种类型:

  • 只是想知道如何做事而又没有时间仔细阅读十五页手册并为自己弄清楚步骤的同事。
  • 这些过程分步相当复杂,但只需要偶尔运行一次即可。

不耐烦是第一类的驱动力。也许您的同事实际上并不想知道为什么必须将输出通过90个字符的perl regex进行管道传输,而只是为了关闭故障单而已。对于确实想知道原因的人,请在清单中明确包含这样的语句:“有关此工作流为何如此的详细说明,请单击此链接”。

第二点是针对不经常运行但包含陷阱的过程。该清单充当地图的角色,以避免“确定的末日”只附加翅膀。如果清单保存在文档存储库中,则省去了在老管理员发送HOWTO的时间内搜索电子邮件的麻烦。

在我看来,良好的清单清单文档还包括有关可能的故障点以及对这些故障的响应的部分。这可能会使文档变得很大,并在同事中触发TL; DR响应,因此我发现将故障模式及其响应链接到清单中而不是页面本身上成为链接,这使清单变得不那么糟糕。拥抱超文本性。

手册文件

这类文档的目标市场是想进一步了解系统工作原理的人们。操作方法样式文档应该可以从该文档中获取,但是更常见的是,我将其视为清单样式文档的补充,以备份工作流中做出的决策。

这是文档,其中包含诸如以下这样的耐嚼片段:

  • 解释为什么以这种方式配置。
    • 本部分可能包含非技术性问题,例如围绕如何购买和安装整个物品的政治。
  • 解释常见的故障模式及其响应。
  • 解释任何书面和事实上的服务水平协议。
    • 实际上:“如果在决赛周失败,那就是一个万有的难题。如果在暑假期间,请回到睡眠状态,并在早晨处理它。”
  • 制定升级和重构目标。
    • 以后的政治可能会有所不同,为什么我们不解决开始时引入的一些坏主意呢?

这对于全面了解整个系统非常有用。您不需要全面的了解即可运行简单的人工自动化任务,而是需要它弄清楚为什么某些事情会破坏它的工作方式,并且知道如何使其不再执行该任务。


您还提到了灾难恢复文档,该文档必须是清单。

我了解,您对此表示同情。

是的,灾难恢复文档确实需要尽可能与清单类似。
是的,由于事情发生的方式有多种,因此灾难恢复文档最难以检查清单。

如果您的灾难恢复清单如下所示:

  1. 致电Dustin或Karen。
  2. 解释问题。
  3. 退后。

你有问题。那不是清单,而是承认该系统的恢复非常复杂,需要架构师来弄清楚。有时候,这就是您所能做的,但是请尽可能避免使用它。

理想情况下,灾难恢复文档中包含有关以下几件事的过程清单:

  • 分诊程序,以找出什么地方出了错,这将有助于确定...
  • 某些故障案例的恢复过程。由...支持
  • 事先编写好的恢复脚本有助于最大程度地减少恢复过程中的人为错误。
  • 有关失败案例,发生原因及其含义的手动样式文档。

分诊程序有时是您可以为某些系统制作的所有DR文档。但是有了它,意味着凌晨4点的呼出将更加清晰,并且进行恢复的高级工程师将能够更快地解决实际问题。

一些故障案例具有直接的恢复过程。记录下来。在记录它们时,您可能会发现以特定顺序输入命令列表的情况,这是脚本编写的一个很好的用例。它可以将96点恢复过程变成20点恢复过程。在逐个映射恢复过程之前,您永远都不会弄清楚是否可以编写脚本。

故障案例的手动样式文档是没有恢复过程或恢复过程失败时要使用的最后一个渠道支持。它提供了可能需要找到其他人的Google提示以及他们为解决该问题所做的工作。


这听起来与我所处的环境非常相似(减去服务台)。+1表示“我为什么
艾利·佩恩

@ sysadmin1138,您说“当我离开上一份工作时,我在离开之前上交了100页的“如何完成工作”手册”。你为什么这么做?这真的需要吗?否则,既然您已经离开了,为什么还要花100页呢?
Pacerier,2015年

1
@Pacerier那是... 12年前。我是负责某些事情的唯一管理员。另外,我喜欢那家公司,所以想要干净的交接。其他公司已经将我锁定在两个星期的“知识共享会议”中,这些会议旨在做同样的事情。由于人的记忆力确实很差,因此可靠性较低。
sysadmin1138

don't have time可能是don't have time。总体而言,可重复使用的经验!
n611x007

14

实际上两者都不是,我们使用文档作为测试用例

话虽这么说,我们已经编写了随文档手册一起提供的文档。我们有清单,但是随着清单的增加,我们发现它们容易出错,并且整个系统实际上都存在故障。

但是,我们确实安装了一种 “文档检查清单”,也就是说-如上所述-我们广泛监视我们的服务。俗话说:

如果您不监视它,那么您就无法对其进行管理

这是完全正确的,但另一个应该是:

如果您不监视它,则不会对其进行记录

每当我们需要迁移服务时,我们只要保持适用的“服务组”,“主机组”(我们使用Nagios,您可以从词汇中猜测)的状态打开,只要有一个红点,就不会迁移在任何服务上。

这些测试提供了比任何手写检查表都更好的检查表。它实际上是自我记录,一旦我们有一些未被监控的故障,但至少将对Nagios进行测试,我们将免费获得2件东西:

  • 我们知道什么时候失败
  • 清单上的另一点

“真实的”文档保存在Wiki中,其中提到了特定服务或测试的零头。如果缺少它,人们将在我们需要进行一些迁移或需要对其进行一些处理时立即添加它,到目前为止,这种方法非常有效。

同样,错误的文档也可以快速消除,每当出现故障时,人们就会开始查找文档,并尝试解决其中的HowTo问题,如果发现错误,只需使用您的发现进行更新。

只要想一想,可能会因遵循一个清单而没有安装任何测试而产生错误,这些测试在应用它们后将为您提供绿色复选框。我认为将文档与监视分开是不可能的。


2
+1为另一种观点。
艾利·佩恩

2
我看了整齐的youtube视频,演示了一个进行集成/验收测试并记录截屏视频的系统。youtube.com/watch?v=78mts_sKNGs
jldugger,2009年

5

它取决于您的文档的目标读者。

对于帮助台(级别1)类型,检查清单是正确的选择;当然,这是假定您所描述的更深的知识可以为您提供更高水平的支持。

如果文档是针对系统组的,我总是会在更多文档方面犯错。如果某人(您自己)想要编写具有必要背景信息的更广泛的文档,那么就很难获得足够的文档以备不时之需-任何理智的人都不会妨碍您!


+1文档的编写应始终牢记目标受众。他们正在阅读文档以从文档中受益匪浅...是该知识还是该如何做某事。如果要执行某项操作可能需要一些额外的知识,我发现将这些额外的知识放在附录中是一个不错的方法。
保罗罗兰

5

我个人试图使文档尽可能简单。它往往包括:

  • [X]应该做什么(要求)。
  • [X]的高层结构(设计)。
  • 为什么以我的方式实现[X](实现注意事项)。
  • [X]的实现方式是非标准的(解决方法)。
  • [X]的常见问题以及解决方法(问题)。

因此,诚然,我的常见问题部分可能是对已发生的事情的简要说明,以及如何解决该问题的点指南。

我通常假设有问题的系统读者有一些知识(除非特别神秘)。我没有时间使我的技术文档第1层或管理层的大部分内容可读-但是有一点头绪的3层就可以了。


4

我认为这显然取决于主题。并非所有内容都可以简化为简单的清单,也不是所有内容都需要详细的用户手册。

听起来好像您在谈论内部文档,根据我的经验,您不能仅给出步骤列表,因为选择太多了。即使创建用户帐户(在我们的环境中)也有一些选项,因此我们的“新帐户”文档按顺序列出了基本步骤,但每个步骤都说明了变化。

另一方面,我们从来没有写过很多关于“如何在办公室打补丁”的文档,但是我们的草稿文档也不是清单,它提到了用于电缆颜色的惯例,强调您必须更新列出了连接的电子表格,仅此而已。

因此,既然我已经写了这篇文章,我完全同意:分步清单不会减少很多过程。


3

我对此非常赞同(支持详尽的文档),部分原因是我已经习惯了对文档完全没有兴趣的前任。如相关文章所述,将其写出来不仅对他人有益,而且可以帮助您更充分地了解自己的环境并在自己的头脑中巩固自己的环境。这本身就是目的。

顺便说一句,我发现很多回退来自一个奇怪的想法,即糟糕的文档/不存在的文档=工作安全。这种想法似乎是不诚实和可耻的。

感谢您反抗现状。


3

我记录了很多文档,甚至有一个文档优先级检查表:-),但是我不会记录那些可以被视为通用知识的东西(即,对问题的合理良好描述会在google第一页中给出答案)。

对于任何对此感兴趣的人都是我的doc prio核对清单(对我有用,可能不适合您,评论和建议非常受赞赏):

  1. 创建个人日志/日记,您可以写下自己所做的一切/对知识的了解
  2. 服务,在哪里提供服务,为谁服务以及为谁完成(任何SLA协议?应创建一个?)
  3. 服务器,什么服务器在哪里,多长时间以及何时写入
  4. 如上所述,但对于网络设备,UPS等
  5. 如上所述,但适用于所有用户计算机
  6. 物理网络的布局(哪条电缆去哪儿,多长时间以及测得的质量是多少)
  7. 服务器软件和许可证的配置概述
  8. 用户计算机的软件和许可证的配置概述
  9. 交换机,路由器和其他专用硬件的配置概述
  10. 我的服务直接依赖的所有外部方的合同和SLA(ISP,域等)
  11. 设置带有集成Wiki的票务系统,以将上述所有内容放入其中。
  12. 对于每个事件,创建一张票证(即使您仅将其用于自己)。
  13. 创建一个脚本,该脚本在周日收集票证并将其按问题类型分组。
  14. 在星期一创建一个自动解决方案或最终用户如何记录最常见的问题
  15. 如果时间允许,请进行下一个。
  16. 如果没有其他事情要做,请寻找一份新工作,并给替换您的人日志;-)

1

只要不假装没有完整的文档清单就可以。我写的最后几份文档分为两个部分:XYZ for Users,其中包括有关如何使用它的漂亮屏幕截图;和XYZ for System Administrators(系统管理员),其中包括设置方式,原因(可能甚至包括存在该要求的业务要求),应避免的陷阱以及有关故障排除的部分。故障排除是我希望在其中找到清单的地方。也许将清单作为XYZ编写以获取技术支持可能会有所帮助。

现在,在两句之间阅读时,只关注清单,对我来说,我缺乏以下人期望的“大图”思维和长期计划:或刚开始的初级管理员;或工作如此忙碌,以至于没有时间考虑它;或从未被考虑过;或只是普通不在乎。我不知道其中哪一种适用于您的情况。


替代主要来自部门主管。但是其他人也同意。我仍然坚持我的枪法,在一天中剩下的很少时间里尽可能多地打字。
艾利·佩恩

1

我在文档方面相当大。我现在工作的公司认为文档很重要,但是公司中有些人觉得他们没有时间编写文档。这可能会使除最初从事这项工作的人之外的任何人生活困难。

对于某些事情,我已经编写了分步说明。您可以根据需要将此清单称为检查清单,但实际上并不是要进行实际检查。我将我的文档样式称为“幼儿园步骤”。它是根据我为一门Windows 2000考试准备的MCSE练习册而设计的。这些步骤非常详细,但是使用粗体/斜体/字体可以很容易地蒙上阴影,并挑选出重要的部分,因此在学习了这些步骤之后,您无需阅读所有内容。

有些事情不适合分步说明,因此我尝试提供尽可能多的配置数据。某些最终会坚持不懈地追求技术的人会更好地了解自己所面对的问题,并希望当出现问题时,这会使他们的生活更加轻松。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.