• Культуры программных проектов: часть 10

    Posted on January 28th, 2010 Александр Орлов No comments

    (все выложенные на текущий момент части – здесь)

    Тем не менее, приверженность конкретной предписанной методологии не гарантирует уверенности. Часто разражаются споры о том, что на практике означают конкретные правила. Что имеется ввиду в некоторых запутанных инструкциях? Если два правила конфликтуют, то какому отдать предпочтение? Можно ли изменить или даже отбросить какое-нибудь правило, если оно не подходит конкретным обстоятельствам, но продолжать считать себя сторонниками той же методологии? Частенько я замечал, что такие разговоры перерастают в горячие споры вокруг довольно простых вещей.

    На одной конференции я встретил тимлида. Его команда использовала RUP и его унифицированный язык моделирования UML. Они использовали коллаборационные диаграмы UML как часть своей работы над дизайном, но заспорили о том, не являются ли последовательные UML диграмы лучше. Они беспокоились, правильный ли путь они выбрали, и спросили меня, не надо ли им переключиться.

    Вместо того, чтобы начать подробное обсуждение небольших различий двух типов диаграмм, я спросил, а работает ли для них RUP вообще. Тимлид признался, что создание всяких диаграмм на самом деле замедляет проекты, а потому лучшие из его программистов старались использовать инструменты, которые генерировали диаграмы автоматически прямо из приложения, когда оно уже было написано.

    Покопавшись в ситуации мы поняли, что главная выгода, почерпнутая из RUP, состояла в том, что ребята научились мыслить объектно-ориентировано, и тимлид был уверен, что это улучшило дизайн их приложений. Все остальные требования RUP были второстепенными на этом фоне, а его беспокойства о переключении с одного типа диаграмм на другой мало повлияют на результаты проекта.

    Эта потребность в уверенности, хоть и оправдывает, скрывает более существенную проблему, с которой в конце концов сталкиваются начинающие. Они ожидают, что методология ответит на каждый вопрос, с каким они столкнутся. Когда это не срабатывает на практике, новички начинают сильно нервничать. Они вложили большую веру в выбраную методологию, потому что они верят, что её авторы знают больше их самих. Обнаружение дыр в предписаниях бросает тень сомнения на методологию и её авторов и подрывает веру новичков.

    В прошлом я пытался объяснить начинающим программистам, что нет ничего зазорного в том, чтобы искать в методологии руководства, даже на довольно детализированном уровне, но нельзя ожидать, что она будет ответом на все вопросы. Игра «разработка приложений» существенно сложнее монополии, шахмат и футбола. В ответ на это я обычно вижу кивок головы, но я уверен, что люди редко воспринимали мою теорию. Чаще меня спрашивали: «Ну, и какую же методологию мы тогда должны использовать?» Начинающим трудно отбросить комфорт абсолютной уверенности.

    Многие методологи очень восприимчивы к таким дырам, и, когда им их показывают, они стараются заполнить их в следующих версиях книг с правилами. В результате предписанные правила становятся ещё более сложными, а методологии со временем становятся более догматичными. Разумеется, это делает методологии менее субъективными, что может помочь разрешить некоторые споры, но создаёт опасность того, что методология станет менее гибкой и слишком громоздкой для применения. Кроме того, невозможно заткнуть все дыры, а потому, стремление к совершенству просто бесконечно.

    В конце девяностых я провёл некоторое время с Дереком Колманом, одним из авторов популярной в то время методологии Fusion. Он признался, что текущая версия была на сотни страниц длиннее оригинала и содержала столько заковыристых правил, что он уже сам не мог увидеть лес за деревьями, а потому был захлёстнут сложностью собственной методологии. Дерек сильно беспокоился, что методология Fusion разваливалась под собственным весом, и решил не развивать её дальше.

    Продолжение следует …

    Leave a reply

    You must be logged in to post a comment.