Любопытное дело – среди людей, которые попробовали работать в true agile компаниях типа FogCreek, не остается равнодушных – и загадочным образом всем нравится! Но есть другой лагерь – тех, кто однозначно уверен, что аджайл – это сакс, новое модное слово которое прикрывает все те же старые добрые приколы – овертайм, выходы в субботу, меняющиеся требования, “давай-давай!” менеджеров. Ну то есть это тот же бегемот – просто раньше показывали только морду, а теперь открыли вид сзади-сбоку и его узаконили. И этих людей – почему то не в разы, а на порядки больше. Как это получается? Ответ простой: благодаря тому что аджайл – это фрэймворк, а не методология. Как это наносит предательский удар по аджайлу? Почитайте вот эти рассуждения, и затем давайте пройдемся по рассуждениям автора и разберемся, как очередные благие намерения становятся дорогой в ад.
Методология и фрэймворк довольно сильно отличаются, что бы не говорила по этому поводу википедия (на нее вообще лучше не ссылаться - сам принцип “вики” для системы такого размера не очень хорош: ввиду очевидной дурости множества писателей и википедии и частой однобокости подачи информациии она например запрещена к цитированию в американских университетах. Почему? Сам суди - вот тебе выдержка из статьи про МГУ: “Правит Университетом - наимудрейший и наиблагочестивейший старец - ректор Садовничий. Дивные покои его располагаются внутри преогромной звезды из чистейшего золота, богато украшенной яхонтами, алмазами, аметистами, изумрудами, рубинами, топазами, сердоликами, хризолитами и высокочастотными передатчиками”.)
Если ты возьмешь в руки более толковые источники, типа толкового или энциклопедического словаря, ты легко увидишь различия:
- Методология – это учение об организации деятельности; учение о структуре, логической организации, методах и средствах деятельности (CЭС).
- Framework (слово буржуйское, поэтому толкование из буржуйского словаря) is a real or conceptual structure intended to serve as a support or guide for the building or construction\system (SETD).
Таким образом, методология - она тебе тебе дает принципы + описание методов и средств деятельности, объединенные в логическую структуру. Если ты вспомнишь структуру RUPа, то сразу поймешь почему это методология - там есть четкие описания шагов с разделами (методы) и кучей шаблонов + Rational Enterprise Suite (средства).
Фрэймворк - это такая куцая методология - чисто направлющие принципы, практически ничего об их реализации. То есть принципы ты должен реализовать, но вот методы реализации - на твое полное усмотрение.
Если RUP тебе говорит - “должен быть написан юзкейс, вот правила его написания, вот шаблон для заполнения”, то agile говорит - “чувак, надо получить требования от пользователя - суть вот такая, вот можно на бумажке, вот можно в экселе, вот можно в онтайме, тээфэсе и акуноте, а можешь придумать свой способ.” Но реализация принципов - она обязательная, понимаешь?
В чем же прорыв аджайл-фрэймворков? В том, что методологии эволюционировали и разрослись до неприемлемых размеров, там уже не разобраться без поллитры. Именно формат записи этих инструкций “на входе то, сначала должны быть выполнены те и те действия, на выходе вот это” - приводит к тому, что для конечных пользователей RUP выглядит как водопад. Соответственно аджайл просто обнулил эти тонны инструкций - сказал “ребята, давайте вспомним про то, зачем это все делалось - про принципы!”
Сила аджайла заключается в наборе принципов, который обеспечивает гибкость. Именно реализация этих принципов - обеспечивает гибкость, а не произвольный отказ от принципов - это гибкость.
Набор принципов и сложность их реализации - накладывает определенные ограничения на применение. Жадность - накладывает кучу ограничений на применение. Тупость - делает его невозможным.
Тогда возникает необходимость в “тэйлоринге”. Например. “Команда состоит из людей, которым начхать на проект? Давайте затейлорим - поставим парня с плетью, который будет трахать по утрам на скрам митинге! Чтобы получить больше прибыли надо поставить на проект людей, которые подешевле? Давайте затейлорим - вместо профессионалов поставим на проект людей без опыта и начхать что они ничерта не смыслят в OOD! Говнокод задизайнен так, что он в принципе не testable? Давайте затейлорим - выкинем к едрене фене юнит тесты! Ой, смотрите какой у нас славный аджайл получился! И затейлорен в полном соответствии с реальностью! Кто тут будет спорить?!! У меня мега-аргумент - ведь это работает!!!”
Да, чувак, это работает, но это - не аджайл. Понятно, что у тебя такие люди, что их надо трахать по утрам чтоб работали, и висеть на телефоне по 2 часа объясняя что надо сделать и что ты с ними сделаешь если они не сделают - твой рецепт работает, но не называй ты блин это аджайлом!!! Оттого что утренний трах у тебя называется “daily scrum”, а adhoc полуexploratory тестирование - agile testing, слепленная тобой поделка на станет аджайлом! Потому что суть у тебя - совсем другая.
Если хочешь назвать это красивым словом - выбери другое. Например, девелоперы в “классическом” RUP делятся на Designer (думает и трахает реализущих) и Implementer (трахаем и реализует). Это будет гораздо ближе к сути.
Хочешь сделать аджайл? Тогда будь добр, выпиши основные принципы, и придумай модель разработки для своего проекта, реализующую эти принципы, и претвори ее в жизнь. Не можешь это сделать, посколько это сложно? Ну так учись! Да, у тебя где-то получится лучше, где-то хуже, что-то ты сразу не сможешь – но даже минимальная реализация принципов даст тебе такое заглядение, что ты себе не поверишь!
Почему меня так заботят твои ошибки, дружище?
Потому что после твоего “аджайла” людей надо в санаторий отправлять, и еще долго они потом будут пугать твоим “аджайлом” джуниор девелоперов - как чертом маленьких детей. Кто-то из этих людей мог бы впоследствии работать у меня – но испугается и убежит узнав про аджайл, он ведь судит по затейлоренным вариантам.
Потому что твои рассуждения о аэродинамике самолетов на материалах богатого опыта езды на телегах - они сами по себе смешны, но с предложением “практических способов” которые кто-то по неопытности попробует - просто вредны.
Поэтому лучше пусть люди лучше пилят лес двуручными пилами, затем придумают распилочную яму, лесопилку с водяным приводом, наконец эволюционируют к бензопилам, циркуляркам и каттерам - чем затэйлорят технику безопасности, личную жизнь и наловят в лесу рабов - чтоб значит производительность повысить…
А мы в сообществе им поможем - дадим хорошие модели, научим ими пользоваться, снабдим хинтами (хинтами - в последнюю, а не в первую очередь). Глядишь, и не понадобится сотен лес лесопильной эволюции - обойдемся десятками.













Agile is a mindset.