В качестве нового назначенного менеджера в уже продолжающемся проекте гибкой непрерывной разработки программного обеспечения одна из целей заключается в следующем.
Убедитесь, что качество программного обеспечения соответствует долгосрочным требованиям.
Проект состоит из более чем 50 разработчиков программного обеспечения, распределенных по различным подпродуктам. К настоящему моменту были выявлены следующие проблемы, которые могут быть возможными индикаторами необходимости улучшения качества программного обеспечения.
До сих пор подход к качеству был неявным. Недавно было добавлено следующее.
Кажется, что это не охватывает вышеперечисленные 7 вопросов, поскольку имеет более узкую направленность.
Кажется, что качество трудно целенаправленно измерить, как это предлагается здесь и здесь . Кроме того, кажется трудным ориентироваться после вышеупомянутых 7 вопросов. Это приводит к следующим соображениям. Как определить целенаправленные усилия? Как оценить эффект усилий? Когда достаточно?
У кого-нибудь есть опыт в том, как подходить к управлению долгосрочным качеством программного обеспечения?
Во-первых, управление проектами — это одно, а управление качеством продукта — совсем другое. Большую часть времени вы получаете отзывы от людей, которые покупают программное обеспечение, особенно когда они не удовлетворены. Иногда слишком поздно вносить изменения в программное обеспечение, когда оно уже есть на рынке.
Во-вторых, вы можете включить кружки качества на всех этапах разработки вашего программного обеспечения, чтобы получать отзывы от потенциальных клиентов. Так вы избежите неожиданностей, которые приходят слишком поздно. Одно дело разработать продукт, а другое дело его продать.
Третий. вы должны установить четкие, измеримые и достижимые цели в разработке вашего продукта. Цели, которые легко регулярно проверять. В бизнес-администрировании мы называем это «контролем качества».
Наконец, важно с самого начала знать, кто не согласен с успехом продукта и почему. Иногда некоторые члены команды предпочитают заработать на процессе, чем объявить его мертвым с самого начала. Насколько вы уверены в успехе в управлении продуктом? Все дело в потребностях клиентов. Никто не обязан покупать ваш продукт.
Хотя качество можно измерить объективно, определение элементов качества, специфичных для предметной области, для вашей организации — это не то, где вы можете полагаться на стандартное словарное определение.
На самом деле, большинство проблем, которые вы определили, вообще не являются проблемами качества. Они больше похожи на организационные вопросы. Мы рассмотрим некоторые из них более подробно, а затем рассмотрим некоторые методы разработки и управления проектами, которые могут помочь.
В последнее время не было выпущено никаких больших новых функций
Непрерывное развитие функций не является признаком качества. Когда продукт «достаточно хорош», чтобы продаваться на рынке, и соответствует своему назначению, то особенность часто является признаком того, что компании не хватает видения рынка или обратной связи с клиентами. Например, люди не хотели Clippy или Microsoft Bob; они часто просто хотели меньше ошибок, синих экранов и вирусов.
Разный UX для субпродуктов
Это проблема процесса , а не проблема качества как таковая. Кто стимулирует потребность в объединяющем UX? Если клиенты этого не требуют, а ваш процесс не включает межкомандную интеграцию, то это проблема внешнего вида, а не реальной проблемы качества.
Некоторые программные модули почти не обслуживаются после смены владельца
Это 100% организационная проблема. Без коллективного владения кодом, культуры непрерывного рефакторинга или ИТ-управления, обеспечивающего владение компонентами или процессами, заброшенный код почти всегда становится нелюбимым унаследованным кодом. Ваше руководство должно назначать владельцев компонентов на протяжении всего жизненного цикла продукта, потому что надежда и желание не являются реальными стратегиями.
Команда архитекторов не несет ответственности за качество
Должны ли они быть? Архитектура (часто, но не всегда) отвечает за дизайн высокого уровня. Именно команды инженеров и QA (или, что еще лучше, полностью кросс-функциональные команды) фактически внедряют решения, встраивают и проверяют качество.
Опять же, качество означает то, что ваша организация решает, что оно означает. Определите его, согласуйте его со всей организацией, а затем постоянно проверяйте любые показатели качества, с которыми вы все вместе согласились. Без этого соглашения и тестирования «качество» — просто модное слово.
Разработчики программного обеспечения начали покидать проект
Отток происходит во всех проектах. Однако быстрый полет таланта часто указывает на токсичную культуру работы, тупиковые проекты, марши смерти, сокращение бюджета и другие известные организационные антипаттерны. В то время как команда, безусловно, может провести ретроспективу для выявления потенциальных проблем, бизнес-руководство в конечном итоге несет ответственность за исправление культурных и технологических проблем, ведущих к потере ключевых талантов.
Кажется, слишком много координации между командами для новых инициатив
«Аналитический паралич» — известный антипаттерн. Крупные инициативы, особенно для проектов на старых месторождениях, всегда требуют большего сотрудничества, чем небольшие проекты с нуля. Хотя темп изменений часто замедляется или останавливается по мере того, как проекты становятся больше, более серьезная проблема может заключаться в том, что вам нужна структура, которая масштабируется за пределы одной команды и работает в нескольких командах. Nexus, LeSS и SAFe — примеры из мира agile.
Часто используются обходные пути, отвечающие требованиям заказчика
Хотя это может представлять собой некоторую форму технического долга, по своей сути это не проблема контроля качества. Хотя технический долг может замедлить разработку или представлять собой быстрый и грязный взлом далеко не идеального качества, само наличие обходных путей не обязательно указывает на недостаточное качество продукта.
Есть несколько подходов, которые вы можете использовать для улучшения качества программного обеспечения, но все они, как правило, включают в себя внедрение качества в ваши процессы разработки и организации. Вот некоторые примеры:
Многие из них действительно относятся к лагерю методов разработки, а не к управлению проектами как таковому. На этом фронте ваши лучшие ставки действительно таковы:
Нет серебряной пули. В конце концов, вы должны определить, что для вас значит качество, решить, как вы будете его измерять, а затем проверить и адаптировать средства контроля качества и фактические результаты на протяжении всего жизненного цикла проекта.
Я мог бы сказать что-то о каждом из ваших пунктов, но остановлюсь на одном. Если вы обратитесь к этому, то вы во всем разберетесь (в конце концов).
Спроси почему? Спросите их, почему? Спросите людей, которые остаются, почему?
Проводите регулярные ретроспективы, выясняйте почему, пусть разработчики находят и устраняют проблемы. Дайте им столько поддержки, сколько им нужно/хотят. Будьте осторожны, чтобы не свалить это на них, и будьте осторожны, чтобы не продолжать контролировать, если они захотят это исправить.
Не вини. Не наказывай. Если вам скажут, что они/кто-то накосячили, то не реагируйте: это новая информация, вы бы и не узнали, если бы вам не сказали. Спросите, что мы можем сделать, чтобы этого больше не повторилось (без вины). Спросите их, что бы они сделали, чтобы улучшить ситуацию. Проводите эксперименты, короткие итерации. Улучшайте шаг за шагом. Не пытайтесь исправить все за один раз (вы обанкротитесь, прежде чем закончите).
Кроме того, размер вашей команды слишком велик («В последнее время не было выпущено ни одного крупного нового функционала», «50+ человек»). Однако вы не должны выгонять их из компании. Найдите для них другую независимую работу (другой проект). Получите письменное заверение совета директоров, что увольнений в связи с улучшением процессов не будет. Первое увольнение разрушит сотрудничество.
«Добавление человеческих ресурсов к позднему программному проекту делает его более поздним». - Фред Брукс в своей книге 1975 года «Мифический человеко-месяц». Их удаление может сделать это раньше. Но не зацикливайтесь на этом аспекте. Сосредоточьтесь на том, почему они уходят (люди могут уйти тем временем, и вам нужно выяснить, как сократить штат, не разрушая мотивацию. Вы можете перевести часть команды на тестирование, другие роли поддержки или улучшение процессов. Затем в итоге в другие проекты.
time-to-complete = people-day-of-work ÷ people
прочитайте мифический человеко-месяц Фреда Брукса.Первый вопрос: какие у вас цели в области качества? Типичные цели перечислены здесь .
Если вы определяете ограниченное количество целей, вы можете поместить их в свое определение готовности (DoD) в таких формах, как: «Каждая фиксация должна быть сохранена или улучшена (модульность/безопасность/что угодно)».
Тогда возникает следующий вопрос: как обеспечить и обеспечить соблюдение? Используете ли вы метрики кода? Делать обзоры кода? И вообще кто-нибудь использует DoD? :-)
Рунэго
Тодд А. Джейкобс
Рунэго