Ao escrever o meu, sempre me dediquei a escrever dois três conjuntos. A lista de verificação de execução, com um apêndice MUITO MAIS LONGO sobre a arquitetura do sistema, incluindo por que as coisas são feitas do jeito que são, pontos de discórdia prováveis ao entrar na Internet e suposições de design abstratas. seguido por uma lista de problemas prováveis e suas resoluções, seguida por uma seção mais longa com informações sobre como um sistema funciona, por que o faz dessa maneira e outras informações úteis para apontar as pessoas na direção certa, caso algo único aconteça.
No meu último trabalho, fomos obrigados a escrever documentos para que mesmo as pessoas do nível 1 do serviço de assistência pudessem trazer as coisas de volta. Isso exigia listas de verificação, que geralmente ficavam desatualizadas em três meses após a redação. É altamente recomendável escrever guias de solução de problemas sempre que possível, mas quando a árvore de contingência tiver mais de três ramificações, você não poderá escrever esse documento sem precisar abstrair.
Ao sair do meu último emprego, entreguei um manual de 100 páginas 'como fazer o meu trabalho' antes de sair. Tinha o material abstrato, filosofia de design e pontos de integração. Como eu provavelmente estava escrevendo para outro administrador de sistemas que iria me substituir, eu o direcionei a alguém que pudesse pegar noções abstratas e transformá-las em ações concretas.
Cinco anos se passaram e acho que minha opinião mudou um pouco. Ambos documento como manual e Documento como Checklist tem lugares muito valiosos na hierarquia de documentação e ambos precisam ser produzido. Eles visam públicos muito diferentes, no entanto.
Documento como lista de verificação
O mercado-alvo desse tipo de documentação são os colegas de trabalho que desejam saber como fazer uma coisa. Eles vêm em dois tipos:
- Colegas de trabalho que só querem saber como fazer algo e não têm tempo para folhear um manual de quinze páginas e descobrir os passos por si mesmos.
- Procedimentos bastante complexos em etapas, mas precisam ser executados de vez em quando.
A impaciência é a causa do primeiro tipo. Talvez o seu colega de trabalho não queira realmente saber por que a saída deve ser canalizada através de um regex perl de 90 caracteres, apenas que deve ser para fechar o ticket. Definitivamente, inclua uma declaração como "Para obter uma explicação detalhada sobre por que esse fluxo de trabalho se parece com isso, siga este link" na lista de verificação para aqueles que desejam saber o porquê.
O segundo ponto é para procedimentos que não são executados com frequência, mas contêm armadilhas. A lista de verificação funciona como um mapa para evitar que a Certa Perdição acabe de voar. Se a lista de verificação for mantida em um repositório de documentação, será necessário pesquisar e-mails durante o tempo em que o administrador antigo enviou um HOWTO.
Na minha opinião, uma boa documentação de lista de verificação também inclui seções sobre possíveis pontos de falha e respostas a essas falhas. Isso pode tornar o documento um tanto grande e desencadear respostas TL; DR em colegas de trabalho; portanto, acho que tornar os modos de falha e suas respostas um link da lista de verificação, e não na página propriamente dita, cria uma lista de verificação desagradável. Abrace a hipertextualidade.
Documento como manual
O mercado-alvo para esse tipo de documentação são pessoas que desejam aprender mais sobre como um sistema funciona. A documentação do estilo "como fazer algo" deve poder ser derivada dessa documentação, mas mais comumente a vejo como um complemento à documentação no estilo de lista de verificação para fazer backup das decisões tomadas no fluxo de trabalho.
Esta é a documentação em que incluímos peças em borracha como:
- Explicando por que está configurado dessa maneira.
- Esta seção pode incluir questões não técnicas, como a política em torno de como tudo foi comprado e instalado.
- Explicando modos de falha comuns e suas respostas.
- Explicar qualquer contrato de nível de serviço, escrito e de fato.
- De fato: "se isso falhar durante a semana das finais, é um problema de tudo. Se durante as férias de verão, volte a dormir e lide com isso de manhã".
- Definir metas de atualização e refatoração.
- A política pode ser diferente mais tarde, por que não corrigimos algumas das más idéias que foram introduzidas no começo?
Tudo isso é muito útil para obter uma compreensão abrangente de todo o sistema. Você não precisa de um entendimento abrangente para executar tarefas simples de automação humana, precisa descobrir por que algo quebrou do jeito que aconteceu e ter uma idéia de onde fazê-lo não fazer isso novamente.
Você também mencionou a documentação da Recuperação de falhas que precisa ser uma lista de verificação.
Eu entendo, você tem minhas simpatias.
Sim, a documentação de DR precisa ser o mais parecida com a lista de verificação possível.
Sim, a documentação de DR é a mais resistente à lista de verificação devido a quantas maneiras as coisas podem quebrar.
Se sua lista de verificação de DR se parecer com:
- Ligue para Dustin ou Karen.
- Explique o problema.
- Afaste-se.
Você tem um problema. Isso não é uma lista de verificação, é uma admissão de que a recuperação desse sistema é tão complexa que é preciso um arquiteto para descobrir. Às vezes, é tudo o que você pode fazer, mas tente evitá-lo, se possível.
Idealmente, a documentação de DR contém listas de verificação de procedimentos para algumas coisas diferentes:
- Procedimentos de triagem para descobrir o que deu errado, o que ajudará a identificar ...
- Procedimentos de recuperação para certos casos de falha. O que é suportado por ...
- Scripts de recuperação escritos com bastante antecedência para ajudar a minimizar erros humanos durante a recuperação.
- Documentação em estilo manual sobre os casos de falha, por que eles ocorrem e o que eles significam.
Às vezes, os procedimentos de triagem são toda a documentação de DR que você pode criar para alguns sistemas. Mas, com isso, significa que a chamada às 4h será mais inteligível e o engenheiro sênior que estiver fazendo a recuperação poderá resolver o problema real mais rapidamente.
Alguns casos de falha têm procedimentos simples de recuperação. Documente-os. Ao documentá-los, você pode encontrar casos em que as listas de comandos estão sendo inseridas em uma ordem específica, o que é um ótimo caso de uso para scripts; ele pode transformar um procedimento de recuperação de 96 pontos em um de 20 pontos. Você nunca descobrirá se pode criar um script até mapear a ação do procedimento de recuperação por ação.
A documentação em estilo manual para casos de falha é a última barreira a ser usada quando não há procedimentos de recuperação ou falha nos procedimentos de recuperação. Ele fornece as dicas do google necessárias para talvez encontrar alguém que tenha esse problema e o que eles fizeram para corrigi-lo.