Методология Разработка Программного Обеспечения

Компания попросила меня провести презентацию и рассказать о методологии, по которой мы работаем и разрабатываем наше приложение.

Я сразу сказал: «У нас Scrum» — и сел оформлять презентацию.

Но я остановился на самом первом слайде, и вот почему.

Agile содержит множество методологий — XP, Scrum, Lean, Kanban, ScrumBut (ScrumNO).

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

В целом наш рабочий процесс можно изобразить следующим образом:

Методология Разработка программного обеспечения

Как видите, мы используем множество пунктов из разных методологий, многие — но не все.

Мы адаптировали методологии под наш процесс разработки и нашу команду.

Мы используем множество рекомендаций из практики XP, что-то похожее мы нашли в процессе разработки в методологии Канбан, некоторые моменты были взяты из методологии Scrum. Также я решил выделить отдельную ось и назвал ее «Конференции».

Потому что с конференций было взято много полезных идей.

Могу сказать, что начинающий Project Manager(y), Team Lead(y) должен начинать с конференций, но не просто приходить и слушать, а подходить к спикеру после выступления и пытаться задавать вопросы, которые вас интересуют. Так в моей команде появилась страница релиза, командная и личная цель, мои QA специалисты привезли с конференции такую полезную вещь, как импакт-анализ и понятие «тестировщик-аналитик».

Но не будем отвлекаться от основной темы и вернемся к методологиям разработки программного обеспечения.

Управление проектами основано на концепции спринта и бэклога продукта; любой, кто знаком со Scrum, сразу скажет, что это его основные артефакты.

Но в нашей команде нет владельцев продукта, пользовательская история не имеет приоритета и нет точек истории.

У нас нет Scrum-карт для игры в Planning Poker, и мы не рисуем диаграммы Burndown, но вместо Scrum-доски мы ведем страницу релиза.

И мы всем этим не пользуемся не потому, что нам лень или мы не понимаем как это делать, просто в процессе разработки приложения пропали некоторые артефакты.

Заказчик не хотел расставлять приоритеты, потому что.

для него важны все задачи, мы не заморачивались с Story Point(ами), т.к.

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

Когда во время разработки нас спрашивают, как идут дела, мы показываем страницу релиза, которая выглядит примерно так:

Методология Разработка программного обеспечения

Алексей Лупан однажды посоветовал мне запустить его; он выступал на конференции и показал нечто подобное для своего проекта.

Я внедрил это в свой проект и это оказалось удобно.

На этой странице вы можете увидеть, сколько функций мы включили в релиз, кто отвечает за каждую функцию и в каком состоянии она находится.

Также указан срок подачи на тестирование и производство.

Самое главное здесь — это список всех критических и очень важных ошибок, на которые нужно обратить внимание перед выпуском новой версии продукта.

Мне нравится эта страница тем, что если в проекте больше одного тестировщика, то я всем говорю — «Тестируйте важные ошибки, и не важно, что они зарегистрированы на кого-то другого, лучше пройтись свежим взглядом.

Так вы сможете найти что-то новое».

И это работает. Сколько раз у меня были такие ситуации, когда один тестировщик находил ошибки у другого тестера.

Это действительно помогает. Конечно, не всегда возможно провести двойное тестирование, но я стараюсь практиковать это при любой возможности.

Здесь хорошо работает поговорка, что одна голова хорошо, а две лучше.

Итак, я рассказал вам, что мы не используем в Scrum. Ах да, чуть не забыл, мы не проводим ежедневные стендапы.

Мы сидим рядом, на расстоянии вытянутой руки, все, что обсуждается, обсуждается рядом с командой, а значит, все слышат. Поэтому митинги проводятся по мере необходимости.

В основном, когда этого требует клиент. Затем распечатываем страницу релиза, и распечатываем задачи, разделенные на подзадачи, со статусом напротив каждой подзадачи и с комментариями в графе «Проблемы», если они есть.

В общем, в процессе работы я усвоил две истины: 1. заказчику все равно, какую методологию вы используете; на самом деле его интересует конечный результат; 2. если дать клиенту больше, чем он ожидает, он станет счастливее.

Это тоже проверено не раз, особенно первая правда, потому что при обнаружении ошибок в конце релиза заказчик забывает, что вы работаете, например, по Scrum. В голове крутятся вопросы: «Когда это исправятЭ», «Кто виноватЭ», «Почему это произошлоЭ» И заметьте, именно в таком порядке.

Вряд ли в этот момент клиент ожидает, что вы начнете играть в Planning Poker, назначать Story Points и планировать спринт. И его не интересует скорость, даже если она выросла вдвое по сравнению с предыдущим спринтом.

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

Главное, чтобы ваша команда продолжала двигаться вперед и была гибкой к изменениям.

Scrum — это своего рода фреймворк, состоящий из отдельных частей.

Вы можете использовать все его части, можете соединять постепенно, а можете что-то менять под свои нужды.

В этом, мне кажется, и есть смысл гибкой методологии, когда не ты подчиняешься методологии, а методология подчиняется тебе.

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

Вероятно, вторая часть предыдущего предложения является основной.

Я всегда позволяю своим тестировщикам опробовать сырую версию приложения.

За что? Для того, чтобы они начали критиковать, сказали, что что-то не удобно, внесли идеи, начали писать тесты, чтобы проверить, что будет, начали продумывать узкие места в логике и интерфейсе.

Это немного раздражает, но все равно приносит свои плоды.

Главное – не совершить ни одной ошибки, о которой я слышал во многих проектах.

Ошибка в том, что тестировщики и программисты сидят отдельно, а главное, не общаются напрямую.

Те.

образуются два вражеских лагеря.

Это не правильно, помните, вы — команда, вы работаете над одним продуктом, ваши цели одни и те же.

Помогайте друг другу, сидите вместе, задавайте вопросы, общайтесь.

Теги: #Методика Scrum ИТ-программное обеспечение XP #Управление проектами

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.