2 августа 2009 г.

Agile в университете

Случайно наткнулся на интересный документ - Программа дисциплины: Разработка интернет-приложений для электронного бизнеса. Один из вопросов на очном экзамене: «Что фиксирует документ, названный Agile Manifesto, для разработчиков программных проектов и какие принципы он провозглашает?». Могу только порадоваться за будущие поколения программистов, которым эти знания даются в университетах. Мы выскребали их сами из интернета и книг ;-)

На сколько я знаю, модульное тестирование, итеративный процесс разработки и многое другое уже преподают. Например, в ЮУрГУ преподают тестирование. Тесты пишут под NUnit.

Я сам выступал в ЧелГУ на тему «Экстремальное программирование. Опыт внедрения». По ходу выступления мне задавали интересные вопросы, слушатели проявили большой интерес к этой теме.

Если так дальше пойдет, то гибкие методологии будут восприниматься как обыденное. Не к этому ли мы все стремились?

11 комментариев:

  1. И все было бы круто, если бы прививалась Agile идеалогия, а не формальные техники. Agile уже стал мейнстримом, для многих теряя всю идеологическую соль попути. Вот эта статья мне показалась очень уместной:
    http://agilesoftwaredevelopment.com/blog/janusz-gorycki/agile-dead

    ОтветитьУдалить
  2. @Dmitry
    В чем-то ты прав.
    Это мне напомнило обучение TDD. Студентам показали как писать тесты, показали программу, которая их запускает, но не рассказали зачем все это надо. Вспоминая свои студенческие годы, могу точно сказать, что тесты они писали для зачета =)

    ОтветитьУдалить
  3. Приветствую Александр!
    Приятно читать ваши материалы и исследования в области процесса разработки и гибких методологий в частности. Но добавлю ложку дегтя. Agile хорошо подходит в небольших кристаллизованных командах. В нашей российской действительности сейчас - это скорее всего небольшие фирмы или небольшие отделы. В более-менее крупных командах (> 10 чел), сидящих на нескольких проектах сразу, такая штука почти нигде не используется. Даже в софтверных фирмах. Кроме того, при реальных заказчиках вам врятли кто-то даст использовать все фишки agile. Мышление не то. Да и деньги горят - лишний час - лишние деньги.
    Так что agile - это все по молодости...

    ОтветитьУдалить
  4. Слышали про Luxoft? Scrum используют =)
    А там целые ангары программистов сидят. Так что не отчаивайтесь ;)

    ОтветитьУдалить
  5. Для крупных и горящих проектов самое то, к тому же agile очень хорошо соответствует менталитету русских разработчиков, поэтому прижился здесь естественным образом. Мы именно так и работали всегда, но не знали, что это agile/XP.

    ОтветитьУдалить
  6. Да, да... Это тоже самое что и шаблоны проектирования, мы так и делали только не знали как они называются.

    ОтветитьУдалить
  7. Александр, рад за ваши вузы. Надеюсь, в наших уже тоже подвижки есть, но не могу сказать точно - давно не общался с преподавателями и студентами.

    Но я соглашусь с первым анонимным комментатором. Agile-подходы применяются на небольшом проценте проектов, а тех, кто применяет их правильно, а не просто называет анархию на проекте новым модным словом - и того меньше. Agile классно работает при разработке собственных продуктов, стартапах, когда еще не до конца ясно, что мы строим и как, и реально плохо работает в каком-то более обычном аутсорсинге, бОльшая часть которого идет по fixed cost схемам. Luxoft и некоторых другие крупные компании пробуют тот же Scrum, но насколько там велик процент проектов, которые реально по нему реботают?

    >> Для крупных и горящих проектов самое то

    Для горящих проектов, возможно, да, так как там хаос, а переход к тому же XP/Scrum'у менее болезненен, чем к любому другому процессу. А вот что считать большими проектами? Количество людей, длительность? Скорее, тут важна специфика. Есть проекты, на которых четко известны почти все требования - зачем там Scrum? Можно и другими итеративными подходами обойтись.

    >> к тому же agile очень хорошо соответствует менталитету русских разработчиков, поэтому прижился здесь естественным образом

    А где он соответствует менталитету именно русских разработчиков? :) Я так понимаю, здесь намек на то, что тем же индусам нужен контроль, а нам, мол, нет?

    ОтветитьУдалить
  8. @Александр Кондуфоров
    В любом случае, мне нравится то, что стали преподавать гибкие методологии разработки в университетах.

    Во-первых, расширяют кругозор студентов и дают несколько инструментов не просто программирования, а способа разработки проектов.

    Во-вторых, их приучают к очень полезным практикам, например, разработка через тестирование и рефакторинг.

    ОтветитьУдалить
  9. Абсолютно согласен :) Хорошо, что университеты не стоят на месте. Тем более, что инженерные практики пригодятся при использовании _любого_ подхода/методологии. Хотелось бы только пожелать еще, чтобы давали больше понимания и показывали, что есть и другие варианты. А то получится, как в вашем примере с TDD :)

    ОтветитьУдалить
  10. Мой первый анонимный коммент.

    Помню, как-то работал в одной небольшой команде на госзаказчиков из министерства. Ваяли им Win GUI + SQL. Ездили после каждой итерации, ставили очередной билд. Да и про бумажки необходимые на подписать не забывали. Ведь отчитываться-то надо. Нам за них собственно деньги и платили.
    Ну что сказать. Кое что из ХП мы внедрили. Простой код, равномерное распределение знаний в команде, смелость, карточки, итерации, местами даже парное программирование (на совсем узких кругах) И инициатором всего этого был я :)

    Но человеческий фактор господ из министерства да и наших самых главных боссов перечеркивал многие наши усилия. Проект плавал и был откровенно провальным (по Йордону, кстати, если не читали, то очень советую почитать). А почему? Да потому что для министерских теток в погонах это был очередной пиллинг.

    Другой пример. Реальный бизнес. Никакого пиллинга. Деньги считаются за каждый чих. Задачи идут валом. Утром - утренние задачи. Вечером - большие по плану. Запарка - сил нет:)
    Где уж тут agile?! С трудом выбили немного времени и покрыли юнит-тестами самые узкие куски, да и то не все. А если тебе не нравится - увольняйся. Другого найдут, да и подешевле тебя.

    Вот она жизнь. А вы - Scrum...:)
    Успехов! И вам не отчаиваться тоже когда сильно припрет, а припрет обязательно.

    ОтветитьУдалить
  11. Да, интересно!

    Вообще и у нас припирает с завидным постоянством, но код все равно весь покрыт тестами, потому что без них мы просто изначально не коммитим код. Нам не надо париться отдельно о тестировании кода. =)

    ОтветитьУдалить