Как я могу применить Six Sigma в среде разработки программного обеспечения?

14

Я разработчик Java, но меня попросили узнать о применении Six Sigma с целью увеличения прибыли нашей организации. Я читал, что Six Sigma может применяться во всех средах, но меня интересуют нюансы его применения при разработке программного обеспечения.

Какие концепции Six Sigma могут быть применены к среде разработки программного обеспечения и как я могу эффективно применять их?

Насколько я понимаю, Six Sigma фокусируется на:

  • выявление и устранение основных причин дефектов
  • сведение к минимуму изменчивости в применении производственных или бизнес-процессов

Мне кажется, что эти концепции могут быть применены к разработке программного обеспечения, но могут ли они быть эффективно применены к жизненному циклу разработки программного обеспечения (SDLC)?

Динеш Кумар
источник
11
Где вы нашли, что шесть сигм "подходят для всех сред"? Он был разработан специально для массового производства физических объектов, а не программного обеспечения.
Анджело
5
Я вновь открываю этот вопрос, так как нет необходимости перемещать его. Управление проектами программного обеспечения здесь является предметом обсуждения, но Six Sigma более тесно связана с улучшением качества и процессов, которые также обсуждаются здесь. Кроме того, ведется большая работа по обсуждению применения Six Sigma для программных проектов и совершенствования процессов разработки программного обеспечения (включая объединение Six Sigma и CMMI и Six Sigma и гибких методов). Применение Six Sigma к программному обеспечению отличается от применения его в производственной среде, поэтому решение этого вопроса требует опыта разработчика программного обеспечения.
Томас Оуэнс
5
@Angelo Хотя Six Sigma изначально была разработана для производственной среды, была проделана большая работа по ее применению для разработки программного обеспечения. Поиск таких фраз, как «agile six sigma» и «cmmi six sigma», выявляет большую работу в этой области.
Томас Оуэнс
5
Я должен был пройти первые шесть тренировок по сигме, и хотя моя компания заплатила за это, я хотел бы вернуться назад. Преподаватель был невежественен, упражнения были забавными маленькими играми, но в конечном счете бессмысленными. Шесть сигм о статистике, и она применима к тупым, повторяющимся, четко определенным задачам, видам задач, которые часто передаются на аутсорсинг роботам. Написание хорошего программного обеспечения - это творческий процесс. Шесть сигм помогают хорошим инженерам-программистам так же, как лекции Calculus помогли бы Тому Крузу действовать. Тот факт, что вы задали этот вопрос, лишает вас возможности работать со мной или моими коллегами.
Работа
4
@ThomasOwens это NARQ, а не вне темы. Это половина опроса / половина LMGTFU
Джимми Хоффа

Ответы:

15

Основные действия Six Sigma отражены аббревиатурой DMAIC , которая обозначает: Определить, Измерить, Анализировать, Улучшить, Контроль . Вы применяете их к процессу, который хотите улучшить: определите процесс, измерьте его, используйте измерения, чтобы сформировать гипотезы о причинах каких-либо проблем, внедрить улучшения и убедиться, что процесс остается статистически «под контролем».

Что касается программного обеспечения, то процесс - это ваш жизненный цикл разработки программного обеспечения (SDLC) или его часть. Вы, вероятно, не пытаетесь применить принципы Six Sigma ко всему SDLC (или, по крайней мере, не изначально). Вместо этого вы должны искать области, в которых, по вашему мнению, у вас есть проблема (например, у нас слишком высокий уровень дефектов; слишком много регрессий; наш график слишком часто меняется; слишком много недоразумений между разработчиками и заказчиками и т. Д.). Скажем пока, что проблема в том, что слишком много ошибок производится (или, по крайней мере, сообщается) каждую неделю. Таким образом, вы бы определили процесс разработки программного обеспечения / создания ошибки. Затем вы начнете собирать такие показатели, как количество строк кода, написанных каждый день, частота изменений требований, количество часов, которое каждый инженер проводит на совещаниях,

Далее вы смотрите на данные и пытаетесь различить закономерности. Может быть, вы заметили, что команда инженеров А выполняет каждый установленный срок и часто даже заканчивает работу раньше! Первоначально, команда B, кажется, не совсем так на высоте - они пропускают свои сроки на день или два, по крайней мере, в половину времени, и иногда опаздывают на неделю или больше. Руководство рассматривает команду B как проблему и стремится встряхнуть вещи. Тем не менее, более внимательный взгляд на данные показывает, что уровень ошибок команды B намного ниже, чем у команды A, и, более того, команду B часто просят исправить ошибки, относящиеся к команде A, потому что руководство считает, что команда A должна быть полезной, чтобы тратить много времени на обслуживание.

Ну так что ты делаешь? Используя данные, которые вы собрали, и анализ, который вы выполнили, вы предлагаете изменение: команда A и команда B, каждая, исправят свои ошибки. С благословения руководства (и против яростного сопротивления команды А) вы реализуете это изменение. Затем вы продолжаете сбор метрик и продолжаете анализировать данные, чтобы увидеть, изменились ли ваши изменения. Повторяйте этот цикл измерения / анализа / реализации, пока уровень ошибок не будет признан приемлемым. Но вы еще не закончили. На самом деле, вы никогда не закончили ... вам нужно продолжать измерять частоту ошибок и проверять, чтобы частота ошибок оставалась в допустимом диапазоне, то есть статистически "под контролем".

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

Калеб
источник
1
На самом деле методология Six Sigma, больше связанная с разработкой программного обеспечения, - это DMADI (определение, измерение, анализ, проектирование, внедрение), за исключением того, что мы повторяем MADI при разработке программного обеспечения. Люди с этими «поясами» называют это Lean Six Sigma DMADI, но я называю это Agile.
Тае Сунг Шин
Важно проводить различие между улучшением самого процесса разработки и улучшением разрабатываемого программного обеспечения. Я описал первое и упомянул о применении Six Sigma к SDLC. Я думаю, что об этом спрашивал OP; Комментарий @ Tae-SungShin, похоже, больше нацелен на последнее, и я согласен, что процесс улучшения самого программного обеспечения немного отличается. Много было написано о методах разработки программного обеспечения, поэтому я не буду пытаться делать это здесь.
Калеб
-3

Как упомянуто @Peter

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

Я могу дать вам простой сценарий, я работал в аэрокосмической компании. Есть команда, которая разрабатывает схемы для самолетов. Они столкнулись с множеством трудностей при разработке схем для сложных самолетов. Из-за этого они не уложились в сроки, хотя у них были опытные дизайнеры. Я проанализировал их работу и заметил, что они разрабатывают схемы с нуля каждый раз. Поэтому я разработал программное обеспечение, которое будет отслеживать их ранее разработанные схемы, и всякий раз, когда у них появятся новые самолеты, они будут использовать мое программное обеспечение и выбирать ранее разработанные самолеты, которые имеют аналогичные схемы, и использовать их с небольшими изменениями. Поскольку эти схемы были ранее разработаны и испытаны на реальных самолетах, теперь они могут сосредоточиться на новых схемах.

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

rajkumarts
источник
4
Дело не в том, что шесть сигм - это здорово; дело в том, что менеджера, позволившего своим сотрудникам создавать схемы с нуля, следовало уволить.
Работа
2
лол .. но тот же менеджер попросил следовать процедуре шести сигм, когда я предложил это программное обеспечение ..
rajkumarts
-4

Применение шести сигм в разработке программного обеспечения называется программным обеспечением шести сигм. Six Sigma в основном разработана для производства, в процессе производства она помогает компаниям улучшить доставку, качество продукции при низких затратах. Тогда как то же самое можно применить и к разработке программного обеспечения.

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

Тем не менее, программное обеспечение Six Sigma является новой концепцией, вам нужно обучение от правильных людей. Эффективная программа обучения шести сигм может помочь вам здесь. Для онлайн-обучения по шести сигмам по среде разработки программного обеспечения я бы предложил http://www.6sigma.us /. Я предлагаю их на основе рекомендации, которую я получил от другой фирмы.

Питер
источник