Вместе с моей командой мы недавно взяли на себя управление крупной экосистемой Laravel от действующего партнера. Наш клиент обратился к нам, чтобы спасти свой проект, потому что бизнес-команда потеряла доверие к своим разработчикам. Разработчики с трудом обновляли фреймворк, команда QA торопилась с развертыванием без всякой уверенности, а скорость выпуска новых функций просто замирала. Все участники проекта были очень расстроены и потеряли доверие ко всему процессу.
Это не первый подобный случай. Похоже, существует закономерность в том, как управлялись крупные комплексные экосистемы Laravel и как они масштабировались со временем.
Сегодня я расскажу историю о том, как мы вошли в этот процесс, как обнаружили ряд критических ошибок и, что более важно, пять основных уроков, которые вы можете начать применять уже сегодня в своем проекте Laravel, чтобы восстановить доверие между командами, обеспечить эффективный процесс и сохранить вашу платформу Laravel безопасной и масштабируемой.
Обязательно досмотрите до конца, потому что пятая и последняя рекомендация применима не только к вашему проекту по разработке программного обеспечения… Она относится к вашей жизни в целом!
Давайте перейдем к делу.
5 причин, по которым большинство проектов Laravel не приносят отдачи
Как я уже говорил, когда шесть месяцев назад мы взяли на себя исходный код этого крупного приложения Laravel, мы начали с технического аудита кода и проанализировали, как была устроена инфраструктура на хостинге. Как и любая пара свежих глаз, смотрящих на исходный код и кодовую базу, мы выявили множество областей для улучшений, но это не было настоящей проблемой… не было настоящей проблемой, почему проект провалился.
- Результат технического аудита Laravel
- 1. Согласовать бизнес с техническим видением
- 2. Сосредоточьтесь на поставке
- 3. Определите стратегию обновления Laravel
- 4. Обеспечение безопасности экосистемы Laravel
- 5. Постоянно совершенствуйте свое приложение Laravel
- Сохранение счастливой команды вокруг вашей экосистемы Laravel
Результат технического аудита Laravel
Проанализировав весь процесс от начала до конца, мы определили, что не всегда проблема заключается в самих разработчиках. Как правило, это провал команды, с множеством неэффективных действий по всему процессу от начала до конца.
1. Согласовать бизнес с техническим видением
Первое, что мы выделили, — это то, что нужно начинать с самого верха, где необходимо согласовать видение бизнеса с техническим обеспечением. Каждое веб-приложение начинается с хорошей идеи, но ему необходимо четкое видение, как для дорожной карты продукта, так и для команды, создающей продукты. Дорожная карта продукта может быть нарушена множеством внешних факторов, и это нормально. Со временем сложность только возрастает, и это нормально. Однако, не имея четкого видения, вам будет сложно определить приоритетность новых функций. Вы будете торопить события, не задумываясь о долгосрочной перспективе. Это приведет к несоответствию между видением бизнеса и техническим исполнением.
Чтобы решить эту проблему, вам необходимо назначить сильного владельца продукта. Этот человек должен руководить с учетом пользовательского опыта, всегда ставя на первое место конечных пользователей.
Этот человек также должен быть в состоянии обеспечить управление техническими требованиями. Если команда разработчиков будет вовлечена в процесс на ранних стадиях, они смогут поднять технические риски и дать рекомендации до того, как будут приняты ключевые обязательства. Это поможет сотрудничеству и согласует бизнес с тем, что является технически обоснованным решением.
2. Сосредоточьтесь на поставке
Когда у вас есть четкое видение и понимание потребностей пользователей, вы можете начать изучать, как эти требования передаются сверху вниз команде дизайнеров и разработчиков. Как мы видели ранее, бизнесменам и техническим специалистам очень трудно говорить на одном языке, и это часто приводит к конфликту приоритетов. Например, отдел продаж может пообещать новую функцию, чтобы привлечь нового важного клиента. Но что, если техническая команда планирует крупное обновление бэкенда, или что, если им нужно провести рефакторинг, прежде чем эта новая функция будет создана? Именно здесь agile delivery может обеспечить более тесное сотрудничество. Это не серебряная пуля, поверьте мне… Он не подходит для всех компаний, но мы можем использовать прагматичный подход, убедившись, что вы определили процесс определения приоритетности функций, что вы управляете бэклогом совместно со всей командой, что вы уделяете время правильному планированию, тратите достаточно времени на сужение требований… все это обеспечит большую прозрачность и эффективность для всех членов команды.
Да, это может замедлить процесс выпуска нескольких первых релизов, но это повысит общее качество и удовлетворенность всех заинтересованных сторон.
3. Определите стратегию обновления Laravel
Когда у вас есть четкое видение и отлаженный процесс доставки, вы можете начать углубляться в технологию и планировать стратегию обновления вашего фреймворка Laravel.
Как мы знаем, открытый исходный код — это здорово. Мы постоянно пропагандируем его и считаем, что это лучшее решение во многих случаях. Переходя на открытый исходный код, вы экономите на лицензионных отчислениях, однако вам придется потратить некоторое время и бюджет на рефакторинг, исправления и обновления… это становится вашей обязанностью.
Одна из лучших особенностей Laravel заключается в том, что ядро очень стабильно и выпускается предсказуемо, ежегодно. Однако с внешними пакетами могут возникнуть проблемы, и они могут не поддерживаться или не обновляться вовремя.
Когда появляется новая функция, не просто оцените время, необходимое для того, чтобы просто заставить эту новую функцию работать в нескольких строчках кода. Вам нужно подумать обо всех зависимостях и оценить, есть ли возможности для рефакторинга базовых функций и существующего кода, чтобы эта новая функция работала лучше, была более масштабируемой и лучше тестировалась… Вам нужно подумать обо всем этом.
Как только это станет частью вашего процесса, вам нужно будет просто внедрить лучшие практики принципов доставки программного обеспечения: от управления запросами на доработку и проведения обзоров кода до внедрения автоматизации и DevOps… Все это сэкономит вам время и устранит человеческие ошибки.
4. Обеспечение безопасности экосистемы Laravel
Как только вы все это подготовили, пришло время защитить вашу экосистему Laravel. Как мы все знаем, это становится все более актуальной проблемой для всех, и нормативные акты, наконец, настигают нас. Никто не застрахован от этого. Технологии развиваются так быстро, а хакеры, кажется, всегда на шаг впереди. Посмотрите, даже если Twitter и Facebook могут быть взломаны с их разработчиками, которым платят миллионы, как это может не быть риском для нас с обычными «нормальными» командами, мы как миньоны по сравнению с ними. У вас может быть лучшая ИТ-команда или доктор наук в области облачной безопасности, как вы можете гарантировать, что нет слабого звена? Это может быть просто момент, когда разработчик отвлекается, чтобы открыть уязвимость, или когда младший стажер по маркетингу вводит пароль в неправильном месте, это открывает черный ход во всю систему.
Чтобы защитить ваше приложение Laravel, вам нужно потратить время на обучение всех членов команды и создание культуры безопасности, где проблемы и вопросы поднимаются открыто во время каждого весеннего планирования, каждой ретроспективы и каждого обзора кода.
Еще один совет: забудьте о специальных тестах на проникновение. Если проводить их раз в квартал для каждого крупного релиза, они устареют к моменту публикации, как мы убедились.
То, что мы начали делать вместе с нашими партнерами, — это непрерывное тестирование безопасности, когда мы пытаемся проникнуть в системы наших клиентов до того, как плохие игроки смогут туда проникнуть. Это единственный способ опередить настоящих участников киберугроз». Свяжитесь с нами, если хотите узнать больше.
5. Постоянно совершенствуйте свое приложение Laravel
Наконец, как и все в жизни, вы должны постоянно совершенствоваться. К сожалению, даже при наличии неограниченного бюджета, лучших владельцев продукта и замечательных разработчиков, всегда будет оставаться место для улучшений… Никто не совершенен, мотивация команды может колебаться, и это право IT, что-то всегда будет идти не так!
Вам нужно принимать изменения и учиться на ретроспективах спринтов. Вы должны слушать друг друга и постоянно общаться. Вам нужно документировать процесс и ключевые решения, которые принимаются на всех этапах. Это также поможет в адаптации новых членов команды, которые присоединяются к вашей команде.
Вы должны всегда оставаться непредвзятым. В конце концов, вы будете учиться на ошибках, тратить время на то, чтобы делать все правильно, и искать способы предоставления ценности всем заинтересованным сторонам.
Сохранение счастливой команды вокруг вашей экосистемы Laravel
Если вы сосредоточитесь на конечных пользователях/клиентах, заинтересованных сторонах, которые платят по счетам, и, наконец, на ваших коллегах из UX, маркетинга, Dev и QA, если вам удастся сделать так, чтобы все были довольны и работали лучше друг друга, вы сможете решить большинство своих проблем. Именно так вы достигнете большой эффективности в вашей экосистеме Laravel.
Это пять основных уроков, которые мы обнаружили и применяем во всех новых проектах, за которые беремся на фреймворке Laravel.
Но секрет в том, что это применимо не только к Laravel! С теми же проблемами сталкивается большинство команд, работающих над проектами цифровой трансформации, независимо от фреймворка.
На сегодня это все. Если у вас есть вопросы по Laravel или цифровой трансформации в целом, просто свяжитесь с нами. Не забудьте подписаться на мой канал на YouTube и следить за мной в Twitter, чтобы продолжать учиться вместе со мной и развивать свою карьеру в сфере цифровых технологий.
В качестве следующего шага вы можете прочитать эту статью, где я делюсь некоторыми практическими советами и подходом к рефакторингу вашего приложения Laravel, чтобы сделать его более эффективным.
До следующего раза, будьте осторожны и до скорой встречи.