Роберт Гласс исследует важный, но часто упускаемый из виду вопрос о роли творчества в программном инжиниринге и программировании. Почти полувековой личный опыт как разработчика, преподавателя и исследователя помогают автору охватить множество проблем. Что важнее – процесс или продукт? Каково соотношение между «интеллектуальным» и «канцелярским» трудом, а также между теорией и практикой в программировании и как сделать их взаимодействие более эффективным? В каких ситуациях полезнее подход со строгим контролем, а когда лучше свободное экспериментирование?
Первое издание, вышедшее в 1995 году, стало бестселлером. Второе издание подверглось значительной доработке. Том Демарко в своем предисловии сравнивает его со знаменитым «Мифическим человеко-месяцем» Фредерика Брукса. Первоначальный текст был дополнен результатами более чем десятилетних поисков недостающего звена между творчеством и программированием. Со свойственным автору мягким юмором и эрудированностью он дает читателю советы и рекомендации огромной важности, проливает свет на историю становления индустрии разработки ПО, исподволь подводя к мысли о том, что настоящий программист – это не оператор, не наборщик кода, а настоящий Творец.
Author(s): Гласс Роберт
Publisher: Символ-Плюс
Year: 2009
Language: Russian
Pages: 351
City: Санкт-Петербург
Предисловие Тома Демарко
Предисловие к первому изданию
Предисловие ко второму изданию
Почему «Креативное программирование»?
Часть I. Два типа мышления: исследование творчества в области программирования
Введение
Глава 1. Дисциплина и гибкость
Введение
1.1. Генри Форд от программирования, пожалуйста, встаньте!
1.2. Автоматизация программирования – факт или фикция?.
1.3. Правда ли, что программистами «невозможно управлять»?
1.4. Дисциплина – неприличное слово: рассказ о жизненном цикле разработки программного продукта
1.5. Имитация программной разработки.
1.6. Гибкое программирование (Agile): гибкость достигла зрелости
1.7. Странный случай с карандашом корректора.
1.8. Индекс сложности
1.9. «Странная парочка» – дисциплина и творчество
Глава 2. Формальные методы и эвристики.
Введение
2.1. По поводу одной дискуссии
2.2. Программирование без комплекса вины
2.3. Формальные методы: драма (успех, провал)
2.4. За границами формальных методов
2.5. Письма читателей: размышления о формальных методах
Глава 3. Оптимизация и разумная достаточность
Введение
3.1. Принцип «лучшее – враг хорошего» и решение задач
3.2. Достаточно хорошее программное обеспечение
3.3. В защиту методов ad hoc
3.4. Михаил Горбачев и продуктивность программирования (!?)
Глава 4. Количественный и качественный подходы
Введение
4.1. «Нельзя управлять тем, что нельзя измерить» – так ли это?.
4.2. Математика и компьютерные науки.
4.3. Роль интуиции в принятии решений
4.4. Тьма ловушек: числа бывают разные
Глава 5. Процесс или продукт?
Введение
5.1. Приводит ли хороший процесс к лучшему продукту?
5.2. Приводит ли хороший процесс к лучшему продукту? Другая точка зрения
5.3. В шаге от славы
5.4. Разные мысли по поводу процесса программирования
5.5. Процессы и люди: путь к хорошему продукту
5.6. Оценка результатов применения модели зрелости процесса (CMM)
5.7. Когда лучше ориентироваться на продукт, а когда – на процесс?
Глава 6. Интеллектуальные и канцелярские задачи
Введение
6.1. Программы: трудно или легко их делать?
6.2. Задачи программирования: интеллектуальные, канцелярские или... творческие?
6.3. Почему люди «покупаются» на революционные идеи
Глава 7. Теория и практика.
Введение
7.1. Временное соотношение теории и практики
7.2. Теория против практики – новый взгляд.
7.3. Теория и практика: тревожный пример
7.4. Полет шмеля
7.5. Теория и практика: разные жалобы
7.6. Области программирования, где практика опережает теорию
Глава 8. Наука и производство
Введение
8.1. Дихотомия интересного/полезного.
8.2. Дихотомия индивидуального/группового
8.3. Две фразы из поп культуры
8.4. О понимании, согласии... и формальных методах
8.5. Структурированное исследование? (Немного лукавое предложение)
8.6. Плавающее соотношение передача/прием
8.7. Заседание комиссии, не ориентированной на цель
8.8. Точность и актуальность
Глава 9. Забавность и серьезность
Введение
9.1. Разрываясь между забавностью и скукой
9.2. Open Source: возвращение забавности
9.3. Путешествие по странному проекту
9.4. Помогите найти!
Часть II. Как стимулировать творчество
Введение
Глава 10. Творчество в программирующей организации.
Введение
10.1. Греция и Рим: две очень разные культуры программирования
10.2. Контроль и корпоративная культура
10.3. Управление и новаторство
10.4. Творчество и стратегические информационные системы
10.5. Творчество против закона.
Глава 11. Творчество в программных технологиях
Введение
11.1. Примеры творческого подхода к реализации информационных систем
11.2. Творчество и разработка ПО: недостающее звено.
11.3. Творчество и реальность: конкретный случай
Глава 12. Исторические даты творчества в программировании
Введение
12.1. Первая историческая дата
12.2. Следующие «серебряные пули».
12.3. Творчество и стремление к упрощенности.
Часть III. Краткий обзор творчества в других областях
Введение
Глава 13. Организационное творчество
Глава 14. Творческая личность
Глава 15. Помощь компьютера в творчестве
Глава 16. Парадоксы творчества.
Глава 17. Так было всегда
Часть IV. Итоги и выводы
Введение
Глава 18. Синергическое заключение
Глава 19. Еще несколько выводов
Алфавитный указатель