Работая над проектом геоКоролёв на протяжении четырёх лет мы постоянно сталкивались с различными проблемами. Изучив книгу "Факты и заблуждения профессионального программирования" Роберта Гласса (издательство "Символ-Плюс" symbol.ru) мы увидели что с подобными проблемами сталкиваются разработчики во всём мире и эти проблемы "удивительно" совпадают с нашими. Именно поэтому мы решили сделать краткую выдержку основных моментов этой книги, чтобы больше не спотыкаться каждый раз об одни и те же грабли и использовать её как памятку в нашей ежедневной работе. Чего и вам желаем ...
ФАКТ №1
Самый важный фактор в разработке программного обеспечения – это не методы и средства, применяемые программистами, а сами программисты.
ФАКТ №2
По результатам исследования персональных отличий лучшие программисты до 28 раз превосходят слабейших. Если учесть, что оплата их труда никогда не бывает соразмерной, то лучший программист и есть самое выгодное приобретение в индустрии разработки программного обеспечения.
ФАКТ №3
Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше.
ФАКТ №4
Изучение нового метода или средства сначала понижает производительность программистов и качество продукта. Пользу из обучения можно извлечь только после того, как пройдена кривая обучения. Поэтому вводить новые методы и средства имеет смысл, только если: видеть их реальную ценность и проявлять терпение в ожидании выигрыша.
ФАКТ №5
Чаще всего, первой из причин неуправляемости проекта является плохая оценка. Второй самой распространенной причиной неуправляемости проектов являются изменчивые требования.
ФАКТ №6
Анализ осуществимости проекта почти всегда дает ответ "ДА".
ФАКТ №7
Модификация повторно используемого кода крайне чревата ошибками. Если надо изменить более 20-25% кода компонента, то лучше переписать его с самого начала.
- Решение модифицировать пакетную программную систему от стороннего производителя практически всегда ошибочно.
ФАКТ №8
Увеличение сложности задачи на 25% приводит к усложнению программного решения на 100%. Это не условие, которое можно попытаться изменить (хотя сложность всегда желательно свести к минимуму), это реальное положение дел.
ФАКТ №9
Исправление ошибок в требованиях обходится дороже всего, если они обнаружены на этапе эксплуатации, и дешевле всего, если это происходит на ранних этапах разработки.
ФАКТ №10
Требования, которых нет, - это такая ошибка, исправить которую труднее всего.
- Самые живучие ошибки в программировании – те, что остаются незамеченными в процессе тестирования и доходят до этапа производства программного обеспечения, - это ошибки пропущенной логики. Отсутствующие требования приводят к пробелам в логике.
ФАКТ №11
Лучшее проектное решение задачи программирования редко бывает единственным.
- Одно из высказываний о программистах звучит так: "Если в комнате сидят несколько классных проектировщиков программного обеспечения и двое из них согласны друг с другом, то они образуют большинство".
ФАКТ №12
Проектирование – это сложный итеративный процесс. Первоначальное проектное решение, скорее всего, окажется неверным и, безусловно, не оптимальным.
ФАКТ №13
Фаза устранения ошибок – самая трудоемкая в жизненном цикле.
- Данные о процентной доле времени, потраченного на устранение ошибок, с годами менялись, но обычные цифры составляют 20-20-20-40. То есть 20% на сбор требований, 20% на проектирование, 20% на кодирование и 40 на устранение ошибок. (В последнее время нагрузку стараются перераспределить на ранние стадии жизненного цикла, уделяя больше внимания сбору требований и проектированию, поэтому цифры, говорят, изменились на примерно такие: 25-25-20-30).
ФАКТ №14
Тщательные инспекции позволяют устранить до 90% ошибок из программного продукта до того, как будет запущен первый эталонный тест.
ФАКТ №15
Стоимость сопровождения обычно составляет от 40 до 80% (в среднем 60%) стоимости программного обеспечения. Следовательно, эта фаза его жизненного цикла, возможно, самая важная.
- Старые компьютеры выходят из употребления, а старые программы вводятся в эксплуатацию каждый день.
ФАКТ №16
Примерно 60% расходов на сопровождение приходится на улучшение кода и около 17% - на исправление ошибок. Таким образом, в основном сопровождение и поддержка программного обеспечения заключается в добавлении в него новых возможностей, а не в его исправлении.
ФАКТ №17
Сопровождение – это решение, а не проблема.
ФАКТ №18
Улучшение качества разработки программного обеспечения приводит к тому, что сопровождения становится больше, а не меньше.
ФАКТ №19
Качество есть совокупность свойств.
Приоритеты для среднестатистического продукта:
- Надежность (если продукт не работает надлежащим образом, то остальные свойства не имеют значения).
- Учет человеческого фактора (огромное внимание, уделяемое графическим интерфейсам пользователя в настоящее время, лучше всяких слов говорит о большом значении удобства работы с продуктом).
- Понятность и модифицируемость (любое программное обеспечение, стоящее затраченного на него труда, вероятно, будет долго сопровождаться и поддерживаться).
- Эффективность (сам удивлен, что поместил это свойство на столь низкую позицию; для некоторых приложений оно будет на первом месте).
- Тестируемость (предпоследнее свойство, но это не уменьшает его важность, поскольку оно может самым прямым путем привести к надежности программного обеспечения).
- Переносимость (для многих приложений это свойство вообще не имеет значения, а для других может иметь первостепенную важность.)
ФАКТ №20
Ошибки имеют тенденцию образовывать скопления.
- Примерно 80% ошибок находятся в 20% модулей, а примерно половина модулей не содержит ошибок.
ФАКТ №21
Эффективность больше зависит от качественного проектирования приложения, чем от качественного программирования.
- Неэффективность интерфейса или логики ничтожна в сравнении с неэффективностью ввода/вывода.
Комментариев нет:
Отправить комментарий