Дорогие читатели, я видела, что на Хабр уже есть статья посвященная SDLC (и не одна), однако, этой статьей я хочу привлечь внимание ИТ-менеджеров, ничего об этом не знающих или знающих поверхностно. Напишу немного по-своему, так как я объясняла джунам, админам проекта и нетехническим специалистам, работающим непосредственно с разработкой программных продуктов. Было, что и на весь проектный офис рассказывала…
Да, такое встречается и нередко, что менеджер проекта, именно посвященного разработке ПО, не знает, что такое цикл разработки программного продукта (=SDLC), не понимает, зачем это знать, как с этим работать и к чему применять. К сожалению, это не только Джуны, мне встречались менеджеры уровнем и повыше, которые работают в командах разработки и не понимают их процессов. «Зачем, от этого же ничего не зависит
» – говорили мне они…да ещё как зависит вообще-то.
Без этого понимания вы делаете то, не знаю что и команду ведете туда, не знаю куда. Просто вот 1 случай: мой коллега, находимся на одинаковых позициях, взял и запланировал значит проект вот так: аналитика-тестирование-разработка-выкатка в прод. Никого ничего не смущает?) Это не какой-то там мем, это случай из жизни. Ну, что получилось? Тестировщик пришел, а тестировать нечего…ведь даже ничего ещё не разработано, протестировал бизнес-требования и ТЗ и был таков, а в прод выкатили поставку с критическими ошибками, все встало. Был конфузец.
В моем понимании, это знание относится к категории базовых. Вот у каждой профессии есть своя база. Большая проблема, что считается, что спокойно можно зайти без этой базы в проектный менеджмент и вести свои проекты. Но, незнание базы, элементарных основных вещей, взаимосвязей, схем работы, методов и методологий, приводит вот к таким смешным ошибкам.
SDLC (software development lifecycle)
SDLC (software development lifecycle) – это набор шагов, которые вся команда разработки проходит от идеи до выпуска продукта на рынок и передачи в сопровождение.
Как оно в жизни бывает? Вот от бизнеса поступила какая-то инициатива. Допустим, нужно доработать API по процессу возобновления договоров партнерами со своей стороны. Я знаю, что это очень маленькая задачка, не проект, взяла её как пример специально.
Что дальше делать?
Можно подойти к этому вопросу рандомно. И просто начать что-то делать) задачка поступила на менеджера, вот он может начать копошиться, что-то считать, какие-то графики рисовать, проводить бесконечные собрания и тд., что ему в голову взбредает.
Но добьется ли менеджер неупорядоченными действиями «от балды» итоговой цели – рабочий продукт, отвечающий требованиям заказчика и переданный в сопровод (=рабочий и поддерживаемый процесс пролонгации в существующем апи: методы работают, мы получаем/отправляем нужную инфо, партнер тоже её получает/отправляет)? Возможно, добьется. Но, что называется, сделав кучу ненужных, лишних, а может быть даже и вообще неправильных действий и потратив зря неоправданно много времени.
Чтобы такое не сотворить, есть, например, SDLC. Имея о нем представление, мы можем заложить работы безошибочно так, чтобы итоговая цель была выполнена. Для этого он и придуман).
Итак, если мы знаем SDLC, то как только к нам приходит инициатива от бизнеса, касаемая ИТ-разработки, мы точно знаем, что нужно делать и в каком порядке. А именно:
Порядок |
Этап SDLC |
Что надо сделать? |
Кто исполнитель |
Какой артефакт в итоге получается |
1 |
Планирование |
Определить цель проекта, сроки, бюджет, риски и ресурсы |
ПМ |
План проекта, Роадмэп, Бюджет, План реагирования на риски, Матрица ответственности |
2 |
Анализ |
Сбор требований, анализ и утверждение |
БА, СА, ПМ |
Протоколы требований от бизнеса, БТ, ТЗ |
3 |
Проектирование |
Создать архитектуру, выбрать стек технологий и средства разработки |
Архитектор, команда |
ТЗ, Спецификации |
4 |
Разработка |
Непосредственное написание кода, смоук тесты |
Разработчики |
Рабочий код |
5 |
Тестирование |
Проверить на соответствие требованиям, выявить и исправить ошибки (отдать на исправление в разработку) |
Тестировщик, ПМ |
Тест план, тест кейсы, баг репорт, протокол ПСИ, пользовательские инструкции |
6 |
Внедрение |
Запустить на продуктовой среде и обучить пользователей |
Девопсеры, ПМ |
Работающий функционал при эксплуатации пользователей |
7 |
Сопровождение |
Регулярно обновлять, исправлять ошибки в процессе эксплуатации, поддерживать пользователей |
Команда поддержки |
Закрытые обращения в SD |
Важно, что каждая стадия ЖЦ разработки опирается на артефакт предыдущей стадии.
Этапность SDLC можно использовать и в рамках всевозможных проектных методологий: Waterfall, Agile (Scrum, Kanban, Lean, ….).
В Waterfall SDLC завершается в точке «Сопровождение», процесс линейный. В Agile – SDLC идет по кругу до тех пор, пока не будет собран весь продукт: после разработки 1ой готовой части продукта и передачи её в сопровод, снова начинается планирование (следующей части) и тд по процессу. Всевозможные методологии и фреймворки в рамках SDLC расписывать не буду, их >50 вроде бы, можно самостоятельно погуглить.
Как можно улучшить доску Jira с помощью SDLC
Я расскажу случай из своей практики, который оказался удобным и полезным для всех.
Под каждый свой проект я адаптирую SDLC.
Раньше доска в Jira у моих команд делилась только на TO DO-IN PROGRESS-DONE. Но от этого не было никакой прозрачности, тяжело было понять, на каком этапе тикет, кто должен его брать следующий по процессу и постоянно приходилось управлять этим на планерках, следить, чтоб все как надо пошло.
Я решила поменять доску Jira и сформулировать её столбцы по этапам SDLC (добавив бэклог в 1 столбец, перед планирование). А to do-in progress-done выведя как метки к тикетам. Также в данном БП Jira по SDLC я заложила 2 точки входа непосредственно для заказчиков: отжатие кнопочки «согласование» на этапе проектирования (значит, что все доки прочитал, со всем согласен, отпираться не буду), без него тикеты не уходили в разработку; отжатие кнопочки «протестировано заказчиком» на этапе тестирования (значит, что мне все ок, жду в проде) – без нее тикеты не уходили на внедрение.
Что мы получили от этого?
Избавились от километровых эксель-отчетов и долгих статус-собраний перед бизнесом, чтоб отчитаться: что? Где? В каком статусе? Почему так долго? Кто это делает?
Увеличили эффективность работы команды: избавились от простоев из-за непонимания и необходимости выяснения, что щас с тикетом, куда его и тд.
Увеличили лояльность заказчиков, потому как наладили прозрачность и заказчику понравилось участвовать самому в процессе, отжимая кнопочки и оставляя комменты там, где мы ему позволили)
Может быть я, конечно, не изобрела ноу-хау и вы давно все так и делаете) но, глядя на доски коллег, никто такое не сделал почему-то до меня в рамках 1 большой организации…
Вот, немного поделилась своим опытом и рассказала про SDLC. Надеюсь, кому-нибудь это будет полезно. Во всяком случае, вспоминая себя в начале своей работы с проектами разработки ПО, я б хотела такой материал нагуглить и узнать, как все притворить в жизнь, а не только на собеседовании в теории отвечать на вопрос: «расскажите, что такое SDLC?».