Должна быть реалистичная оценка технологии и план разработки еще до включения компьютера.
Исключить добавление новых функций в планировании, которые изначально не планировались.
Чем больше деталей будет обнаружено в ПО и продумано до начала кодирования, тем меньше будет ошибок.
Нарисовать пользовательский интерфейс и полностью проработать каждый сценарий использования.
Коридорное тестирование.
Инженеры должны проявлять желание изучать предметную область.
Лучшие инженеры – это не те, кто умеет жонглировать битами, а те, кто качественно решает проблему пользователя.
Разработчики должны знать достаточно хорошо операционную систему, язык, технологию, которые используются в проектах.
Эффективно использовать выделяемые на обучение средства, проанализировав сильные и слабые стороны команды.
Лучший способ узнать что-то о технологии – сделать что-либо с применением этой технологии.
Все, о чем в действительности заботится ваш менеджер, – это возможность ежедневно сообщать своему боссу, чем вы занимаетесь день за днем.
Настоящие инженеры проникнуты глубокой гордостью за то, что они производят, и хотят тратить время и усилия на всех этапах разработки.
Компании и люди с реальной приверженностью качеству демонстрируют множество общих черт: тщательное предварительное планирование, личную ответственность, жесткий контроль качества и отличные коммуникационные навыки.
Только те, кто уделяет внимание деталям, выпускают продукты вовремя и с отличным качеством.
Проводить ревизии эффективности работы ежемесячно.
Регистрировать число ошибок в продукте ежемесячно (общее число обнаруженных за месяц).
«Software reliability: measurement, prediction, application» Джон Мьюз.
В среднем коде содержится одна ошибка на каждые 10 строк.
«Code complete» МакКоннелл.
По мере того как продукт создается, цена исправления ошибки растет экспоненциально, как и цена отладки.
Ускорять отладку и тестирование на этапе планирования.
Хороший отладчик = хороший разработчик.
Самая важная черта отладчика – интуиция.
Чтобы превратиться в отличного отладчика, необходимо быть специалистом в следующих областях: ваш проект, ваш язык, ваша технология/инструменты, ваша операционная система/среда.
Должна быть хорошая документация или объяснение на 15 мин от разработчиков, чтобы лучше узнать проект.
Нужно знать, что используемый язык делает за сценой.
Необходимо четко представлять себе, где можно найти более подробную информацию на случай, если она понадобится.
Писать утилиты.
Показывать свой код интервьюерам – сразу попадаем в первые 20%.
Изучение кода других инженеров и добавление новых функций – хорошая практика.
Читать код framework.
Друзья и коллеги-инженеры – лучшие источники знаний о разработке и отладке.
Подход к отладке:
Воспроизведите ошибку.
Опишите ошибку.
Всегда предполагайте, что это ваша ошибка.
Разделяйте и властвуйте.
Думайте творчески.
Используйте инструменты.
Начните тяжелую отладку.
Убедитесь, что ошибка исправлена.
Извлеките урок и поделитесь им с другими.
Полезные высказывания из книги «Надежный код» Бруно
В разделе приведены цитаты из [5].
Более высокий уровень абстрагирования позволяет больше времени уделять важным элементам любого проекта.
Нет единого мнения по вопросу, что именно должны знать и уметь все разработчики.
Разработка ПО – это не инженерия.
Настройка производительности и безопасности не должна откладываться на конец проекта.
После прочтения советов необходимо выработать привычку их применения.
На практике методология водопада работает не очень хорошо, поскольку многие важные особенности программы проявляются лишь на этапе реализации.