Правильная ссылка на эту страницу
http://az-design.ru/Support/SoftWare/l/GlassRob/04h1010.shtml

Глава 1. Дисциплина и гибкость

       Введение
       1.1. Генри Форд от программирования, пожалуйста, встаньте!
       1.2. Автоматизация программирования — факт или фикция?
       1.3. Правда ли, что программистами “невозможно управлять”?
       1.4. Дисциплина — неприличное слово: рассказ о жизненном цикле разработки программного продукта
       1.5. Имитация программной разработки
       1.6. Гибкое программирование (Agile): гибкость достигла зрелости
       1.7. Странный случай с карандашом корректора
       1.8. Индекс сложности
       1.9. “Странная парочка” — дисциплина и творчество

Введение

Наука — не просто любознательность и творчество, это их
дисциплинированная форма,.. Именно странный на первый
взгляд союз дисциплины и любознательности обеспечивает
научный прогресс. Любознательность творческого ума,
заставляющая непрерывно задавать вопросы “как?”
и “почему”, и дисциплина, чтобы понять, что наука -
это часть мира, и она оказывает на него влияние.
Дженни Гроэн

“The Discipline of Curiosity”, Elsevier Science, 1990;
Janny Groen, Eefke Smit, Juurd Eijsvoogel

       Работая над этой книгой, я с трудом подобрал понятие, противоположное “дисциплине”. Очевидный кандидат “недисциплинированность” был отвергнут из-за негативного оттенка. При том, что никто и не собирается предлагать полный отказ от дисциплины при разработке программного обеспечения. Всякий раз, возвращаясь к этой теме в надежде на озарение, я вновь оказываюсь у пустого колодца. Я бы хотел различать управляемое поведение в едином русле (дисциплинированное) и целенаправленное, но не связанное ограничениями поведение (творческое).
       Я не придумал ничего лучше, чем “гибкость”. Имея в виду такие аспекты дисциплины, как подчинение и контроль, я выбрал “гибкость” в противоположность им. В моем словаре “гибкий” (flexible) означает “способный легко гнуться, не ломаясь; приспосабливающийся, способный меняться в зависимости от обстоятельств”.
       Меня устраивает это определение, хотя я не вполне уверен, что правильно противопоставил его дисциплине. То есть этот вариант меня не совсем удовлетворяет, но, думаю, сгодится и он. Если найдете более удачное слово, мысленно подставьте его в заголовок этой главы!
       Закончим на этом игры со словами. Почему в книге о творчестве в программировании появилась глава о дисциплине и (...э-э...) гибкости? Потому что одно из древнейших противостояний в нашей профессии связано именно с этим вопросом: какой должна быть команда разработчиков программного обеспечения — дисциплинированной, как на заводе, или гибкой и с высокой личной мотивацией?
       Разумеется, это противостояние старше программирования. Когда мир перешел от кустарного производства к фабричному, стало совершенно ясно — по крайней мере, на тот момент, — что будущее принадлежит дисциплинированным, а не гибким способам организации. Век автомобилей, конечно, не настал бы без Генри Форда с его идеей неквалифицированной, но дисциплинированной рабочей силы.
       Но это было давно, а сейчас времена переменились. Многие согласятся, что эру фабричных труб сменила эра информации. Общество, которое раньше зависело от умения что-то производить из дорогого сырья на огромных фабриках, теперь зависит от информации, обрабатываемой с помощью дешевого кремния. Будущее принадлежит работникам сферы знаний, а не заводским рабочим. Вопрос в том, как найти оптимальные способы организации и управления командами работников сферы знаний.
       Несомненно, разработка программного обеспечения — это вершина обработки информации. Если вы согласны хотя бы отчасти поверить заявлениям Дэвида Парнаса и Фреда Брукса, что “программировать тяжело” и что “это самый сложный вид деятельности, которым когда-либо занимались люди”, то нетрудно предположить, что прежние модели организации труда на фабрике оказываются непригодными в эпоху информации.
       Любопытно отметить, что сегодня успешные компании-производители программного обеспечения финансируют разработку программ по бюджетной статье “Исследования и разработки”, то есть рассматривают создание программ не как вид промышленного производства, а как деятельность, более близкую к интеллектуальному труду исследователя.
       А теперь задумаемся об исследованиях и разработках. Характерны ли для них “подчинение” и “контролируемое поведение”? Разумеется, нет. Дисциплина может иметь значение для исследований и разработок (мы глубже изучим эту тему в последующих разделах), но гораздо важнее здесь гибкость — или другое слово, которое вы подберете для этого понятия.
       В таком случае соотношение ролей дисциплины и гибкости должно задаваться моделью наших представлений о разработке программного обеспечения. Что правильнее: модель фабричного типа, когда рабочие целый день штампуют детали и собирают из них программу на конвейере, или что-то вроде мастерской или лаборатории, когда разработчики целый день решают интеллектуальные проблемы?
       Этой проблемой мы и займемся в данном разделе. Вопрос не нов: чтобы показать это, я включил в книгу (на нашем профессиональном языке можно сказать “повторно использовал”!) статью “Генри Форд от программирования, пожалуйста, встаньте!” примерно тридцатилетней давности, но, как мне кажется, хорошо описывающую проблему. А заключительный раздел “"Странная парочка" — дисциплина и творчество” отражает мое личное разрешение данного противоречия. Вперед! И заодно подумайте о том, как бы вы сами разрешили противоречие между дисциплиной и гибкостью.




<<< Пред. Оглавление
Начало раздела
След. >>>

Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:55 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/SoftWare/l/GlassRob/04h1010.shtml