Как только я работал в компании по разработке программного обеспечения. Это была обычная компания: ничего неплохо, но ничего не нравится. У него были те же проблемы, что и другие подобные компании:
- Низкокачественный код
- Неудовлетворенные сроки
- Бюджет переполнен
И разочарованные клиентов в качестве окончательного результата.
Конечно, все в управлении стремились знать, что (или «кто») был причиной. В течение нашего рабочего дня было вполне нормально услышать что-то вроде: «Проект не удался, потому что вы написали некачественный код, теперь клиент уходит от нас».
Это помогло в любом случае? Нет. Было ли там приятно работать? Нет. Итак, как только я проснулся и решил, что я больше не хочу работать в этой компании.
Уродлистые Часть заключается в том, что я был основателем этой компании.
Можем ли мы все согласиться, что обвинение не работает?
Прежде чем идти дальше и описывать, как нам удалось изменить нашу среду и как она повлияла на наши результаты, я хотел бы указать ему прямо: обвинять кого-то для чего-либо не работает. Почему?
- Он указывает на разбитые процессы существуют внутри рабочего процесса компании, но вместо того, чтобы исправить их, просто указывают пальцы и полностью скрывают проблему. Итак, это никогда не будет исправлено
- Это демотивирует людей. Вы можете потерять лучших инженеров из-за этого. Есть компании, где люди ведут себя по-разному. А также Мы, инженеры, можем выбрать
Что мы можем сделать вместо этого? Мы можем построить Наши процессы другой способ Действительно
Улучшить свой проект вместо того, чтобы обвинять кого-либо
Можете ли вы представить ситуацию, когда что-то пойдет не так? Когда ваша продукция перестала работать, потому что произошла несоответствие версии зависимостей. Или потому что вы сделали глупое опечатка в вашем Строка Переменная.
Это происходит довольно часто, это не сюрприз.
Итак, мы должны быть готовы справиться с этим. Мы должны создать рабочий набор правил и практики для уклонения возможных ошибок и обрабатывать те, которые мы не смогли обнаружить рано.
Но как?
Небольшие задачи и прозрачные области
Обычно это трудно определить большие задачи, которые занимают дни и недели. Такие задачи не имеют четкого охвата и «выполненные» критерии.
Итак, вот где все могут пойти не так. Два человека поймут эти задачи по-разному из-за этой более широкой массы. Они будут расставлять приоритеты различных частей задач по-разному. И в конце концов, будет легко сказать: «Вы проделали плохую работу, вы не получили задачу».
Более того, будет трудно рассмотреть и контролировать качество кода. Мы все знаем, как тяжело просмотреть 1000+ строк кода.
Я настаиваю на том, что задача должна быть маленькой (не более 4 часов) и должна иметь четкую область. Лучше иметь пять небольших и четко определенных задач, чем одна большая задача.
Это уменьшает возможность неправильного интерпретации. И позволяет обе стороны легко отслеживать прогресс, контролировать сроки и почувствовать импульс проекта.
Сделать свой CI как можно более строгими
Чем раньше вы найдете ошибки в вашем коде, тем лучше он для проекта. Этот график иллюстрирует, насколько дорогим (с точки зрения времени и денег), чтобы позволить ошибку течь в производство.
Плохой код не должен достигать Мастер ветвь и даже человеческий рецензент. И мы можем автоматизировать это! Существует статический анализ, проживание, разные тесты и другие метрики, которые должны пройти раньше. Если что-то сломано — ваш код просто не пройдет до Мастер Филиал и рецензент не будут рассмотреть его до тех пор, пока все не пройдут проверки.
Таким образом создает четкие и прозрачные правила качества, которые должны быть выполнены. Это стало законом.
Добро пожаловать все ошибки
Но ошибки все еще произойдут! Это грустная реальность. Но это ваш выбор, как к ним лечить. Вы можете злиться и подавлены из-за них, или вы можете учиться у них.
Я предпочитаю учиться у своих ошибок и других ошибок. Как это возможно?
Всякий раз, когда в производстве, когда что-то плохое происходит в производстве, вам нужно отслеживать, как ваши качественные ворота позволили этому случиться. Что мы пропустили?
После того, как ваша команда найдет ответ — вы должны автоматизировать эту проверку, чтобы убедиться, что в следующий раз это не произойдет снова. Создайте плавание льминания или напишите регрессионный тест Отказ
Вот некоторые Реальный мир Примеры того, как мы это делаем.
Всякий раз, когда что-то плохое происходит для нашего Python / Джанго Проект мы добавляем новое правило на CI Process или написать новое правило для льминания для Наш корпоративный Линтер Отказ Таким образом, мы гарантируем, что это не повторится снова.
И те же произведения для Наш интернет JavaScript / Vue проекты.
Сделайте свой клиент частью процесса
Есть случаи, когда вы можете потерять свой клиент, потому что ваш код плохой, но поскольку вы не смогли создать четкое канал связи с вашим клиентом. И тогда вы будете обвинять все плохие вещи!
У нас было много проблем с этим в прошлом. Длительные итерации и длительные циклы обратной связи убивали нас. Мы не смогли решить ошибки и новые требования достаточно быстро.
Ответ на эту проблему просто:
- Сделайте свой клиент частью вашего процесса разработки
- Сделать ваши итерации как можно маленькие
- Продемонстрировать свой прогресс как можно чаще
Мы достигаем всех этих целей несколькими полезными практиками:
- Мы приглашаем наших клиентов в репозиторий с первого дня
- MicroTasking позволяет нам сделать несколько итераций в один рабочий день
- Gitlab и k8s Позвольте нам сделать демонстрацию каждой отдельной функции при необходимости
Мы собираем обратную связь от клиента, как только сможем. Клиент всегда понимает, что происходит в проекте: что делается и что такое прогресс.
Таким образом, это сложно и бессмысленно обвинять кого-то, сотрудничать и строить потрясающие продукты вместе. В конце концов, это цель, которую мы преследуем, не так ли?
Заключение
«Нет обвинения, но исправления» метода резко изменилось, как мы работаем в хорошем состоянии.
Так как мы практикуем эти вещи, мы не провалили один проект. И мы не потеряли одного инженера из-за конфликта.
Конечно, эта статья не охватывает все функции и трюки, которые мы используем в нашей повседневной жизни, но вы можете прочитать больше о том, как мы работаем на RSDP (Повторяемый процесс разработки программного обеспечения) Главная страница Отказ И ты можешь Следуй за мной на Github Быть проинформированным о каких инструментах мы строим.
Оригинал: «https://dev.to/sobolevn/building-blameless-working-environment—17hl»