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