среда, 26 сентября 2012 г.

Контрольный список: новая библиотека

Перед тем как начать, да и когда уже начал разрабатывать библиотеку у меня достаточно часто возникает вопрос : А все ли я правильно делаю? Мне хочется иметь перед собой список вопросов аналогичных тем что в книге Стива Макконела "Совершенный код", которые бы помогали мне правильно организовать процесс разработки библиотеки.

Целесообразность разработки
  1. Какую проблему должна решать библиотека?
  2. Какими другими способами можно решить эту проблему?
  3. Существуют ли аналоги библиотеки? Какие? Чем конкретно они не устраивают?
  4. Сколько времени займет Fork+Improve существующей библиотеки для решения проблемы?
  5. Сколько займет разработка библиотеки с нуля? Когда Дедлайн?
Требования
  1. Под какими операционными системами и платформами будет работать код библиотеки?
  2. На каком языке программирования надо написать?
  3. Какой тип разработки? (ООП, процедурный и др.)
  4. Как будет доступна библиотека? (сорцы, хидер+lib-файл, инклуд+dll,приватная и только для разработчиков)
  5. Должен ли быть сделан обзор проблемы, требований, целей, задач?
  6. Будут ли существовать формальные документы для фабулы проблемы, требований, целей, задач, архитектуры?
  7. Если будут формальные документы, то как они должны быть написаны и именоваться?
Проектирование
  1. Нужно ли спроектировать архитектуру проекта?
  2. Какая должна быть файловая система проекта библиотеки?
  3. Должен ли быть сделан обзор архитектуры и кем?
Сопровождение
  1. Должна ли быть шапка в хидерах, сорцах?
  2. Должна ли быть написана документация для разработчика? (установка, использование, сопровождение, куда слать багрепорты)
  3. Будет ли использоваться Doxygen или другое средство авто-документирования?
  4. Должны ли быть какие-либо тулзы,скрипты и др. упрощающие ее использование?
  5. Как часто должно быть сделано code-review?
  6. Надо ли написать юнит-тесты?

Комментариев нет: