Какую литературу почитать по проектированию?
1. Стив Макконнелл - Совершенный код.
- почему еще никто не назвал эту очевидную классику? (я аж Ctrl+F-нул по странице, не поверил сначала).
- также рекомендую его "Анализ алгоритмов. Вводный курс" (хоть это и в стороне от сабжа).2. Кент Бек - Экстремальное программирование. Разработка через тестирование.
- многие считают этот подход антипаттерном, но прочесть, безусловно, стоит хотя бы ради того, чтобы иметь возможность самому поискать ошибки в рассуждениях автора (оно того стоит).
Еще несколько очень разных книг, которые для меня стоят в одном ряду с Макконнеллом:3. Фредерик Брукс -  Мифический человеко-месяц.4. Эндрю Хант, Дэвид Томас - Программист-прагматик. Путь от подмастерья к мастеру.5. Том Демарко, Тимоти Листер - Человеческий фактор: успешные проекты и команды.
Далее, у Макконнелла в (1) после каждой главы приведен огромный список литературы по теме, большая часть - признанная классика, можно прямо брать списком и выкладывать в этот тред.
"Agile Software Development: Principles, Patterns, and Practices" Роберта Мартина. И "Чистый Код" за его же авторством.