Блог компании Admaer об обслуживании зданий и их инженерных системг

Служба эксплуатации

Waterfall

Впрочем, при таком подходе и службы эксплуатации обычно нет, только команда разработки, периодически отвлекающаяся на ремонт и (иногда) на «технический долг». Но никто из-за этого не переживает, так как планы не срываются. Сложно сорвать то, чего нет.

Разумеется, это только самая общая часть функциональных и эксплуатационных требований.

— Вася, ты меня понимаешь?
— Ну, типа да, брат.

В результате постоянной переприоритезации фича в готовом виде может весьма нескоро попасть в продуктив. К тому же, на этапе написания UserStory крайне сложно оценивать влияние планируемого функционала на конечную систему, так как заранее неизвестно её состояние в тот момент, когда таки появится этот функционал.

Kanban представляет из себя IT-реализацию японской методологии бережливого производства. Но есть нюанс: в Toyota с помощью Kanban машины собирают из заранее спроектированных частей, между тем как разработка — это в первую очередь проектирование. В программировании части-функции просто копируются, их не надо постоянно «производить».

● Люди и взаимодействие важнее процессов и инструментов.
Трудно с этим поспорить. Конечно, люди важнее. Но о процессах тоже не стоит забывать. Именно процессы стандартизируют и регулируют взаимодействие. К тому же, только на людях далеко не уедешь. Как минимум, человеки любят болеть, отдыхать и иногда увольняться.

Чем это грозит эксплуатации? Не всегда понятно, что должно работать, что не должно, а если заработает, то когда. Соответственно, происходит подмена тестирования системы на тестирование функции, так как нормальный регресс займет много времени. Это добавляет ошибок в продуктив и затягивает их решение.

У стандартного заказчика нет задачи что-то создать, написать или, прости, господи, внедрить. Заказчик хочет решить бизнес-проблему с помощью волшебной кнопки «Сделать всё хорошо», в то время как IT навязывает предлагает ему конкретное решение.

SCRUM

Как это и закладывалось авторами оригинального процесса, Kanban идеален для операционной деятельности, в которой планирование заменено реакцией на раздражители. Например, так выглядит работа с инцидентами — что сломалось, то и починим. В большинстве случаев, по известной процедуре. Однако Kanban совершенно не подходит для разработки, так как слабо подразумевает конечный результат. Выбор этой методологии обречет вас на бесконечный процесс — «мы строили, строили и до сих пор строим». Не надо так!

Но нельзя забывать и про заказчика, ведь он, хоть и косвенно, также является участником конфликта. Как правило, ему нужно получить установленный и стабильно работающий сервис. «Голый» код, даже самый хороший, вне системы для заказчика совершенно бесполезен. У него в принципе другая картина мира:

● Работающий продукт важнее исчерпывающей документации.
Это тоже верно. Но есть другой вопрос: а как хорошо и как долго будет работать продукт без документации? Вероятнее всего, не очень долго. А хорошо или нет — разобраться не получится ввиду отсутствия первоисточника. И дальше придется следовать полюбившейся многим тактике «не смог разобраться — перепиши с нуля». Но это всегда долго, дорого, и вообще не факт, что результат получится лучше.

Scrum — это одна из первых попыток подогнать Waterfall под идеологию Agile манифеста.
Основные черты скрама:

Kanban обычно идет рука об руку с процессами CI/CD. Спринтов здесь уже нет, задачи доставляются непрерывно по мере готовности, существуют жесткие ограничения на размеры таких задач. Из-за этого сложный функционал в целостном виде не доставляется почти никогда, так как не укладывается в размер задачи.

Несмотря на всё это, с точки зрения эксплуатации, Waterfall — наиболее равномерный и предсказуемый методологический процесс, в который можно встроиться. В целом, ни продолжительность цикла, ни стабилизация эксплуатацию особенно не волнуют. Чем больше времени пройдет между релизами, тем дольше удастся спокойно поработать — а это всегда плюс. Кроме того, когда есть уверенность в том, что еще полгода ничего не поменяется, гораздо проще вписывать в процесс свои работы.

Результат слепого следования этому манифесту — в энтерпрайз-архитектора вынужден превратиться сам бизнес-заказчик (но чаще всего от такого он превращается в тыкву). Мало того, что это не свойственный ему «функционал», так еще и в IT придется разобраться.

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

Agile

В теории, DevOps — это набор практик, нацеленных на активное взаимодействие специалистов по разработке со специалистами по информационно-технологическому обслуживанию и взаимную интеграцию их рабочих процессов друг в друга.

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

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

● Готовность к изменениям важнее следования первоначальному плану.
А вот это верно только в одном случае: если первоначальный план — полное бревно и то, что собирались построить, оказалось никому не нужно. Даёшь энтерпрайз-архитектора в каждые руки!

В таких условиях документация на систему действительно устаревает раньше, чем пишется, и теряет всякий смысл, так как нельзя зафиксировать какое-то состояние производимой (именно производимой, а не разрабатываемой) системы, в котором она была бы верна.

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

Для нормальной работы эксплуатация должна:

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

В итоге DevOps становится средством сделать команду разработки независимой от службы эксплуатации с помощью достраивания необходимого разработке звена. Очевидно, что само по себе это решение однобоко и решает проблему только для одной из сторон — разработки. Часто это лишь усугубляет конфликт, давая возможность разработке полностью игнорировать службу эксплуатации.

Наверняка, у вас уже есть подозрения по поводу точек трения разработчиков и поддержки, ведь где возникают пересечения задач, там появляются конфликты. Но не спешите с выводами. Извечные споры разработчиков и админов — это далеко не эпицентр «боёв».

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

● Сотрудничество с заказчиком важнее согласования условий контракта.
И снова да, важнее. Но как без согласования условий контракта мы поймем, что и как нужно сделать? Как еще преодолевать взаимное недопонимание, кроме как общаться и договариваться посредством четко прописанного документа? Конечно, контракт — тоже не панацея, но он гораздо надёжнее, чем метод из девяностых:

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

Waterfall ориентирован на доставку законченных и проработанных функциональностей. Релизная модель — циклическая. Цикл занимает от нескольких недель (крайне редко) до кварталов и полугодий. Практически всегда происходит последовательный сбор требований, их анализ, выработка архитектуры решения, оценка его длительности, планирование, полноценное регрессионное тестирование в конце.

Как вы поняли, Waterfall — это очень долго, формально и влечет за собой тонны документации, на которой все и всегда халтурят. А заказчик требует всего и сразу. Как ответ на эти проблемы программисты придумали Agile манифест:

Основная задача службы эксплуатации — это управление уровнем сервисов, то есть поддержание работы IT-системы в рамках SLA.
Эксплуатация должна обеспечивать постоянный доступ к сервису и его корректное функционирование в рамках соглашения с заказчиком — как правило, с бизнесом.

На практике я чаще всего встречаю две реализации:

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

Начнем с классики: модели Waterfall.

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

Конечно, DevOps — это не методология разработки как таковая, но я не могу не вставить свои 5 копеек и не рассказать про самую распространенную попытку решить конфликт эксплуатации и разработки.

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

Следующий шаг в эволюции методологий разработки — это Kanban. И без того короткие циклы SCRUM тоже показались бизнесу слишком долгими. Заказчика можно понять: всегда хочется первым получить самую крутую фишку. Да и менять планы неэффективно, получается многовато «накладных расходов».
Так что, как говорят строители, проще «лепить по месту».

Слаженная работа этих служб — залог успешного запуска и ровного «полёта» создаваемого сервиса. Но, как показывает мой (и не только) опыт, практически ни один проект не обходится без конфликтов и разногласий, жертвой которых становится ни в чем не повинный сервис.

Наверняка все вы так или иначе участвовали в описанных выше ситуациях и процессах. Поделитесь своим опытом в комментариях!

Проблема заключена в приоритетах и мотивации этих самых служб. В самом общем виде это можно описать так:

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

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

Базируется DevOps на идее тесной взаимозависимости разработки и эксплуатации программного обеспечения и нацелен на то, чтобы помогать организациям быстрее создавать и обновлять программные продукты и услуги. Снова про быстрое создание и обновление. Но для эксплуатации этих проблем вообще не существует.

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

Но мы уже знаем, что обе службы не самодостаточны. Они разделены «служебной» баррикадой и при этом должны не только взаимодействовать между собой на поле передачи ответственности сообразно стадиям жизни продукта, но и активно участвовать в решении проблем друг друга.

Бизнесу: разрабатывать внятную стратегию развития своего продукта и управлять конъюнктурой рынка, а не спешно реагировать на изменения.
Разработке: не превращать заказчика в энтерпрайз-архитектора. Построение инженерных или ИТ-систем — не его профиль, он специалист в какой-то локальной области бизнеса.
Всем вместе: попытки избавиться от службы эксплуатации вполне могут оказаться успешными, но вряд ли вы сможете отказаться от самого процесса эксплуатации, доступность должна оставаться под контролем. Либо этим будут управлять выделенные профессионалы, либо это будет дополнительной нагрузкой для разработчиков, решать вам.

DevOps — отличная и полезная штука для повышения качества, но по описанным выше причинам также не позволит ничего гарантировать и не заменит полноценную эксплуатационную службу. Этот подход не решит конфликт разработки, эксплуатации и бизнеса, но поможет обеспечить процесс непрерывной приёмки и снизит общее напряжение.

В этой статье я постараюсь ответить на следующие вопросы:

Получите полный доступ к системе ГАРАНТ бесплатно на 3 дня!

РЕКЛАМА erid 4CQwVszH9pWwojUA9Q3

Наконец-то мы почти добрались до того, ради чего всё затевалось. Что имеет ключевое значение для службы эксплуатации?

Другой аспект влияния заказчика — его стратегия и методология развития бизнеса. В данном случае я говорю о непонимании, как выглядит процесс разработки конкретного IT-решения. Не обладая таким пониманием, заказчик часто требует сделать из кота кита, а потом приделать ему крылья. И всегда всё срочно. Иногда это оправдано ситуацией и новаторством идеи, иногда это следствие гонки за лидером рынка и спешное копирование. Причины могут быть самые разные, но итог один.

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

Так что же делать и как быть?

Все предусмотреть и всё проверить невозможно — тестирование не гарантирует отсутствие аварий. Оборудование может износиться, система может выйти из строя в ходе эксплуатации в неожиданных условиях. Наконец, есть человеческий фактор.
Поэтому даже с командой DevOps без процесса эксплуатации не обойтись, и, как ни крути, документация понадобится. Когда что-то сломается, придется разбираться, как оно вообще работало.

Для заказа бесплатной демонстрации возможностей информационно-правового обеспечения ГАРАНТ перейдите по ссылке

Если Вы попали на эту страницу, перейдя по ссылке внутри нашего сайта, пожалуйста, сообщите нам неверный адрес.

Вот из чего складывается решение этой задачи:

Если даже вернуться к исходной идее, что DevOps — это, скорее, про тестирование, и он должен гарантировать оперативный перенос гарантированно качественных изменений, то снова окажется, что исключать из процесса или заменять эксплуатацию нельзя. Фокус самой идеи именно в обеспечении качества процесса изменений и гарантии качества этих изменений. Заметьте, нигде не говорится про соблюдение SLA и управление доступностью. Да и высокое качество изменений (компонент) вообще не гарантирует высокую эффективность работы системы в целом.

Давайте взглянем на все стороны конфликта:

Ссылка не верна или страница была удалена

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

Источники:

https://raum.services/&rut=c7321aff0abd52b4389a0e69ad51288243095cac6bfbd14d79891752ff4f9c3c
https://admaer.ru/blog/articles/tekhnicheskaya-ekspluatatsiya-zdaniy-s-kakimi-problemami-chashche-vsego-prikhoditsya-stalkivatsya/&rut=a09e2686cc51e8ed0f69bcea1c4184dbc2f99f9ff244661dca8adbcf8747b6c9
https://base.garant.ru/71502776/&rut=205186535194a336d0ce3589cccc6022bfa58d8ec5646187c3f0536c5fc6ade7
https://ohranatruda.ru/ot_biblio/norma/529079/&rut=57751f96f05667d9aa1179061a893515bb3f1b871cc8ef2a655401173b23362c
https://techdepartment.ru/&rut=03c225dd8a77ba68b4dad499d31358984e961db3040ce5f7fa2df95f1acd0163
https://habr.com/ru/companies/dataline/articles/428401/&rut=964634023196147f78522485a1289e2e52d355b615fc63df442c3067d6dd281d
https://rup.by/company/structure/sluzhba-ekspluatatsii/&rut=5e9733a272c452013ca94a8f985f6c684bc7faa4c24244c3a62df370d8fdd2f0
https://techdepartment.ru/tekhnicheskaya-ekspluataciya/ehkspluataciya-zdanij-i-sooruzhenie-eto/&rut=f917fc4a04764ce1f2be68553c0383a63084e05383636f9e5e6d97dc60e07a53
https://artecofm.ru/service_types/maintenance/&rut=ffae940967bde9f76eb143bb8fa0b1a3002e8495416113a32f69138b3fffd3f7