Отказ от ответственности : взгляды и мнения, выраженные в этой статье, являются исключительно моими собственными и не обязательно отражают точку зрения какого-либо учреждения или организации.
Введение
Сложность программных систем часто требует от инженеров-программистов или менеджеров написания предложений по согласованию изменений между командами, организациями или заинтересованными сторонами (партнерскими командами, зависимыми службами и т. д.). Эти предложения помогают кратко передать мотивацию, рекомендации или основные этапы, одновременно получая обратную связь и согласовывая действия всех заинтересованных сторон.
Такие документы также служат ориентирами прошлого для новых сотрудников, вступающих во владение программными системами и понимающих мыслительный процесс того, как принимались решения в прошлом. В этой статье представлен общий шаблон для написания однопейджеров; хотя это не ограничивается программными системами, оно доказало свою полезность в ведущих организациях по разработке программного обеспечения.
Шаблон
Обзор
Это будет краткое изложение документа, подходящее для отражения мотивации и того, что вы предлагаете читателям, чтобы заинтересовать ваш документ.
Введение
Предоставьте подробную информацию о предпосылках/мотивациях изменения. Могут быть включены показатели/данные, чтобы объяснить проблему и предоставить дополнительную информацию.
Цели
Требования к данному проекту.
Нецели
Назовите любые нецелевые или выходящие за рамки задачи этого проекта. Это может отвлекать вас от решения проблемы, на которой вы хотите сосредоточиться.
Параметры
Составьте список вариантов/альтернатив, которые вы рассматривали для решения проблемы, желательно с указанием плюсов и минусов каждого.
Рекомендация
На основе альтернатив, обсуждавшихся в предыдущем разделе, дайте рекомендации по стратегическим решениям с пояснениями или подтверждающими аргументами.
Тактический подход как вариант. В зависимости от проблем/времени, связанных с достижением рекомендуемого подхода, рассмотрите возможность предоставления тактического решения; потенциально это может быть постепенным шагом к стратегическому решению или минимальным изменениям для решения проблемы в краткосрочной перспективе.
Тестирование
Опишите, как вы будете проверять, что функция работает должным образом; что ты будешь тестировать? Как вы будете это тестировать? Будет ли период гамма-проверки или предпроизводственной проверки? Что это повлечет за собой? Обязательно включите тестовые примеры, подтверждающие, что функция применяется только к тем событиям, к которым она должна применяться.
Вехи
Перечислите высокоуровневые задачи/этапы для рекомендуемых решений с оценками в днях разработки. Чтобы представить этот список помимо функциональных изменений, подумайте о:
- Стратегия тестирования перед выпуском (модульные, интеграционные тесты и т. д.)
- Необходимость/стратегия обратной засыпки
- Любые изменения в метриках/скриптах/инструментах отчетности.
- Новые метрики/этапы проверки после выпуска (canaries, рабочие процессы утверждения конвейера)
- Проверка безопасности
- Мини-проверка оперативной готовности
Рекомендации
Ссылки, по вашему мнению, могут помочь читателям глубже погрузиться в проблемную область или представленные альтернативы.
Часто задаваемые вопросы
Активно отвечайте на любые ожидаемые вопросы или вопросы, которые могли возникнуть в ходе последовательных обсуждений, связанных с этим предложением.
Приложение
Добавьте к предложению любую дополнительную информацию, к которой читатели смогут обратиться при необходимости.
Встречи заметки
Сохраните приведенную ниже сводку для встреч, на которых вы рассматриваете предложение.
Участники
Список людей, присутствовавших на собрании.
Месяц (протокол собрания)
Обобщите протокол собрания для дальнейшего использования.