Я разработчик Java, но меня попросили узнать о применении Six Sigma с целью увеличения прибыли нашей организации. Я читал, что Six Sigma может применяться во всех средах, но меня интересуют нюансы его применения при разработке программного обеспечения.
Какие концепции Six Sigma могут быть применены к среде разработки программного обеспечения и как я могу эффективно применять их?
Насколько я понимаю, Six Sigma фокусируется на:
- выявление и устранение основных причин дефектов
- сведение к минимуму изменчивости в применении производственных или бизнес-процессов
Мне кажется, что эти концепции могут быть применены к разработке программного обеспечения, но могут ли они быть эффективно применены к жизненному циклу разработки программного обеспечения (SDLC)?
quality
process-improvement
Динеш Кумар
источник
источник
Ответы:
Основные действия Six Sigma отражены аббревиатурой DMAIC , которая обозначает: Определить, Измерить, Анализировать, Улучшить, Контроль . Вы применяете их к процессу, который хотите улучшить: определите процесс, измерьте его, используйте измерения, чтобы сформировать гипотезы о причинах каких-либо проблем, внедрить улучшения и убедиться, что процесс остается статистически «под контролем».
Что касается программного обеспечения, то процесс - это ваш жизненный цикл разработки программного обеспечения (SDLC) или его часть. Вы, вероятно, не пытаетесь применить принципы Six Sigma ко всему SDLC (или, по крайней мере, не изначально). Вместо этого вы должны искать области, в которых, по вашему мнению, у вас есть проблема (например, у нас слишком высокий уровень дефектов; слишком много регрессий; наш график слишком часто меняется; слишком много недоразумений между разработчиками и заказчиками и т. Д.). Скажем пока, что проблема в том, что слишком много ошибок производится (или, по крайней мере, сообщается) каждую неделю. Таким образом, вы бы определили процесс разработки программного обеспечения / создания ошибки. Затем вы начнете собирать такие показатели, как количество строк кода, написанных каждый день, частота изменений требований, количество часов, которое каждый инженер проводит на совещаниях,
Далее вы смотрите на данные и пытаетесь различить закономерности. Может быть, вы заметили, что команда инженеров А выполняет каждый установленный срок и часто даже заканчивает работу раньше! Первоначально, команда B, кажется, не совсем так на высоте - они пропускают свои сроки на день или два, по крайней мере, в половину времени, и иногда опаздывают на неделю или больше. Руководство рассматривает команду B как проблему и стремится встряхнуть вещи. Тем не менее, более внимательный взгляд на данные показывает, что уровень ошибок команды B намного ниже, чем у команды A, и, более того, команду B часто просят исправить ошибки, относящиеся к команде A, потому что руководство считает, что команда A должна быть полезной, чтобы тратить много времени на обслуживание.
Ну так что ты делаешь? Используя данные, которые вы собрали, и анализ, который вы выполнили, вы предлагаете изменение: команда A и команда B, каждая, исправят свои ошибки. С благословения руководства (и против яростного сопротивления команды А) вы реализуете это изменение. Затем вы продолжаете сбор метрик и продолжаете анализировать данные, чтобы увидеть, изменились ли ваши изменения. Повторяйте этот цикл измерения / анализа / реализации, пока уровень ошибок не будет признан приемлемым. Но вы еще не закончили. На самом деле, вы никогда не закончили ... вам нужно продолжать измерять частоту ошибок и проверять, чтобы частота ошибок оставалась в допустимом диапазоне, то есть статистически "под контролем".
Обратите внимание, что здесь нет ничего конкретного для разработки программного обеспечения, кроме специфики процесса, который вы улучшаете, типов метрик, которые вы собираете, и т. Д. Действия, которые вы используете для улучшения процесса разработки программного обеспечения, такие же, как у вас ». d использовать для процесса производства виджетов, хотя разработка программного обеспечения сильно отличается от производства виджетов. Все это означает, что вам нужно применять здравый смысл в тех целях, которые вы ставите перед собой.
источник
Как упомянуто @Peter
Я могу дать вам простой сценарий, я работал в аэрокосмической компании. Есть команда, которая разрабатывает схемы для самолетов. Они столкнулись с множеством трудностей при разработке схем для сложных самолетов. Из-за этого они не уложились в сроки, хотя у них были опытные дизайнеры. Я проанализировал их работу и заметил, что они разрабатывают схемы с нуля каждый раз. Поэтому я разработал программное обеспечение, которое будет отслеживать их ранее разработанные схемы, и всякий раз, когда у них появятся новые самолеты, они будут использовать мое программное обеспечение и выбирать ранее разработанные самолеты, которые имеют аналогичные схемы, и использовать их с небольшими изменениями. Поскольку эти схемы были ранее разработаны и испытаны на реальных самолетах, теперь они могут сосредоточиться на новых схемах.
Это всего лишь сценарий, в котором я следовал процессу SIX Sigma, чтобы собрать все данные об их ошибках и проанализировать, каковы причины этого. Затем улучшите их с помощью моего программного обеспечения.
источник
Применение шести сигм в разработке программного обеспечения называется программным обеспечением шести сигм. Six Sigma в основном разработана для производства, в процессе производства она помогает компаниям улучшить доставку, качество продукции при низких затратах. Тогда как то же самое можно применить и к разработке программного обеспечения.
Применение шести сигм в разработке программного обеспечения создает устойчивое улучшение в разработке программного обеспечения. Применение шести сигм в разработке программного обеспечения приводит к быстрой интеграции и тестированию программного обеспечения, помогает создавать программное обеспечение без ошибок и способствует более эффективному управлению программами.
Тем не менее, программное обеспечение Six Sigma является новой концепцией, вам нужно обучение от правильных людей. Эффективная программа обучения шести сигм может помочь вам здесь. Для онлайн-обучения по шести сигмам по среде разработки программного обеспечения я бы предложил http://www.6sigma.us /. Я предлагаю их на основе рекомендации, которую я получил от другой фирмы.
источник