Краудсорсинговая разработка программного обеспечения - Crowdsourcing software development

Краудсорсинговая разработка программного обеспечения или же краудсорсинг программного обеспечения это новая область программная инженерия. Это открытый призыв к участию в любой задаче разработка программного обеспечения, включая документация, дизайн, кодирование и тестирование. Эти задачи обычно выполняются либо членами программного предприятия, либо людьми, нанятыми предприятием. Но в программном обеспечении краудсорсинг, все задачи могут быть поручены или решены представителями общественности. В краудсорсинге также могут участвовать отдельные лица и команды. конкурсы.[1]

Цели

Краудсорсинг программного обеспечения может преследовать несколько целей.[2][3]

Качественное программное обеспечение: Организаторам краудсорсинга необходимо определить конкретные цели качества программного обеспечения и критерии их оценки. Качественное программное обеспечение часто предоставляется компетентными участниками, которые могут представить хорошие решения для тщательной оценки.

Быстрое приобретение: Вместо того, чтобы ждать разработки программного обеспечения, организаторы краудсорсинга могут объявить конкурс, надеясь, что что-то подобное или подобное уже разработано. Это сделано для сокращения времени приобретения программного обеспечения.

Выявление талантов: Организатор краудсорсинга может быть в основном заинтересован в выявлении талантов, продемонстрированных их выступлениями на конкурсе.

Снижение цены: Организатор краудсорсинга может приобрести программное обеспечение по низкой цене, заплатив небольшую часть стоимости разработки, так как цена награды может включать награды за признание.

Разнообразие решений: Поскольку команды будут использовать разные решения одной и той же проблемы, разнообразие этих решений будет полезно для отказоустойчивых вычислений.

Создание идей: Одна цель - получить от участников новые идеи, и эти идеи могут привести к новым направлениям.

Расширение участия: Одна цель - привлечь как можно больше участников, чтобы найти лучшее решение или распространить соответствующие знания.

Обучение участников: Организаторы заинтересованы в обучении участников новым знаниям. Одним из примеров является nonamesite.com, спонсируемый DARPA научить STEM Наука, технологии, инженерия и математика.

Привлечение средств: Цель состоит в том, чтобы стимулировать другие организации спонсировать аналогичные проекты для привлечения средств.

Маркетинг: Краудсорсинговые проекты можно использовать для узнаваемости бренда среди участников.

Экосистема

Поддержка архитектуры

Система поддержки краудсорсинга должна включать 1) инструменты разработки программного обеспечения: инструменты требований, инструменты проектирования, инструменты кодирования, компиляторы, отладчики, IDE, инструменты анализа производительности, инструменты тестирования и инструменты обслуживания. 2) Инструменты управления проектами: системы ранжирования, репутации и награды для продуктов и участников. 3) Инструменты социальных сетей: позволяют участникам общаться и поддерживать друг друга. 4) Инструменты для совместной работы: например, платформа на доске, на которой участники могут видеть общую область и предлагать идеи по улучшению решений, представленных в общей области.

Социальные сети

Социальные сети могут предоставлять сообщения, документацию, блоги, твиттеры, вики, комментарии, отзывы и индексацию.

Организация

Процессы

Любая фаза разработки программного обеспечения может быть привлечена с помощью краудсорсинга, и этой фазой могут быть требования (функциональность, пользовательский интерфейс, производительность), дизайн (алгоритм, архитектура), кодирование (модули и компоненты), тестирование (включая тестирование безопасности, тестирование пользовательского интерфейса, взаимодействие с пользователем. тестирование), обслуживания, взаимодействия с пользователем или любой их комбинации.[4]

Существующие процессы разработки программного обеспечения могут быть изменены, чтобы включать краудсорсинг: 1) модель водопада; 2) Agile-процессы; 3) модельно-ориентированный подход; 4) Открытый исходный код; 5) подход «программное обеспечение как услуга» (SaaS), при котором компоненты услуг могут быть опубликованы, обнаружены, составлены, настроены, смоделированы и протестированы; 6) формальные методы: формальные методы могут быть привлечены краудсорсингом.

Краудсорсинг может быть конкурентным или неконкурентным. В конкурентном краудсорсинге победят только избранные участники, а в высококонкурентных проектах многие участники будут соревноваться, но немногие выиграют. На неконкурентной основе либо отдельные лица будут участвовать в краудсорсинге, либо несколько человек могут сотрудничать для создания программного обеспечения. Производимые продукты могут быть подвергнуты перекрестной оценке, чтобы обеспечить согласованность и качество продуктов и выявить таланты, а перекрестная оценка может быть оценена с помощью краудсорсинга.

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

Известные процессы краудсорсинга включают AppStori и Топкодер процессы.

Предварительный отбор участников важен для качественного краудсорсинга программного обеспечения. В конкурентном краудсорсинге участник с низким рейтингом не должен соревноваться с участником с высоким рейтингом.

Платформы

Платформы для краудсорсинга программного обеспечения, включая Apple Inc. с Магазин приложений, Топкодер, и uTest продемонстрировать преимущества краудсорсинга с точки зрения расширения экосистемы программного обеспечения и повышения качества продукции. Apple App Store - это онлайн iOS рынок приложений, где разработчики могут напрямую предлагать свои творческие проекты и продукты покупателям смартфонов. Эти разработчики заинтересованы в создании инновационных дизайнов как для репутации, так и для оплаты с помощью механизма микроплатежей в App Store. Менее чем за четыре года Apple App Store превратилась в огромную экосистему мобильных приложений, насчитывающую 150 000 активных издателей и создавшую более 700 000 приложений IOS. В App Store существует множество платформ для совместной работы на базе сообществ для инкубаторов приложений для смартфонов. Например, AppStori представляет подход краудфандинга для создания онлайн-сообщества для разработки многообещающих идей о новых приложениях для iPhone. IdeaScale - еще одна платформа для краудсорсинга программного обеспечения.[5]

Еще один пример краудсорсинга -Топкодер - создает модель конкурса программного обеспечения, в которой задачи по программированию публикуются как конкурсы, а разработчик лучшего решения получает главный приз. Следуя этой модели, Topcoder создал онлайн-платформу для поддержки своей экосистемы и собрал виртуальную глобальную рабочую силу, насчитывающую более 1 миллиона зарегистрированных участников и почти 50 000 активных участников. Все участники Topcoder соревнуются друг с другом в задачах разработки программного обеспечения, таких как анализ требований, разработка алгоритмов, кодирование и тестирование.

Примеры процессов

В Топкодер Процесс разработки программного обеспечения состоит из нескольких этапов, и на каждом этапе могут быть разные типы соревнований:[нужна цитата ]

  1. Архитектура;
  2. Производство компонентов;
  3. Сборка приложения;
  1. Развертывание
Топкодер виды и этапы соревнований

Каждый шаг может быть краудсорсинговым соревнованием.

Процесс тестирования BugFinders:[6]

  1. Привлечь BugFinders;
  2. Определить проекты;
  3. Управляется BugFinders;
  4. Обзор ошибок;
  5. Исправьте ошибки; и
  6. Выпуск программного обеспечения.

Теоретические вопросы

Теория игры использовался при анализе различных программных краудсорсинговых проектов.[2]

Теория информации может быть основой для метрик.

Экономические модели может стать стимулом для участия в краудсорсинге.

Эталонная архитектура

При разработке программного обеспечения краудсорсинга могут использоваться разные методологии разработки программного обеспечения с использованием различных моделей процессов, методов и инструментов. У него также есть особые процессы краудсорсинга, включающие уникальные виды деятельности, такие как конкурсные торги, назначение экспертов, оценка качества и интеграция программного обеспечения.[нужна цитата ] Для поддержки процесса аутсорсинга и облегчения сотрудничества сообщества обычно создается платформа для предоставления необходимых ресурсов и услуг. Например, Топкодер следует традиционному процессу разработки программного обеспечения со встроенными правилами конкуренции, а AppStori допускает гибкие процессы, и толпа может участвовать практически во всех аспектах разработки программного обеспечения, включая финансирование, концепции проектов, дизайн, кодирование, тестирование и оценку.

В эталонная архитектура Таким образом, определяется зонтичная деятельность и структура для коллективной разработки программного обеспечения путем объединения передового опыта и достижений исследований. Как правило, эталонная архитектура удовлетворяет следующие потребности:[нужна цитата ]

  1. Возможность настройки для поддержки типовых моделей процессов;
  2. Возможность настройки для составления различных функциональных компонентов;
  3. Масштабируемость для облегчения решения проблем различного размера.

В частности, краудсорсинг используется для разработки большого и сложного программного обеспечения виртуализированным, децентрализованным образом. Облачные вычисления является разговорным выражением, используемым для описания множества различных типов вычислительных концепций, которые включают большое количество компьютеров, подключенных через сеть связи в реальном времени (обычно Интернет). При переносе краудсорсинговых приложений в облако можно найти множество преимуществ: сосредоточиться на разработке проекта, а не на инфраструктуре, которая поддерживает этот процесс, способствовать сотрудничеству между географически распределенными командами, масштабировать ресурсы до размера проектов, работать в виртуализированном, распределенная и совместная среда.

Эталонная архитектура для краудсорсинга программного обеспечения

Требования к системам краудсорсинга программного обеспечения постоянно развиваются по мере того, как новые философии разработки и технологии получают все большее распространение. Представленная выше эталонная архитектура предназначена для охвата универсальности во многих измерениях, включая, например, различные методологии разработки программного обеспечения, схемы стимулирования и подходы к конкуренции / сотрудничеству. Существует несколько четких направлений исследований, которые можно исследовать для улучшения архитектуры, таких как аналитика данных, предоставление услуг и обобщение инфраструктуры. По мере того, как системы растут, понимание использования платформы становится важным соображением, данные о пользователях, проектах и ​​взаимодействии между ними могут быть изучены для исследования производительности. Эти данные также могут дать полезную информацию при разработке задач или выборе участников. Многие из компонентов, разработанных в архитектуре, являются универсальными и могут быть предоставлены как размещенные службы. Благодаря размещению этих услуг барьеры для входа будут значительно уменьшены. Наконец, благодаря развертыванию этой архитектуры есть потенциал для создания структуры общего назначения, которая может использоваться для различных краудсорсинговых проектов разработки программного обеспечения или, в более широком смысле, для других краудсорсинговых приложений. Создание таких фреймворков имело трансформирующий эффект в других областях, например, преобладающее использование BOINC в волонтерских вычислениях.

Аспекты и метрики

Краудсорсинг в целом - тема многогранного исследования. Использование краудсорсинга при разработке программного обеспечения связано с рядом ключевых моментов или аспектов, которые следует учитывать (см. Рисунок ниже). В то же время исследование может проводиться с точки зрения трех ключевых игроков в краудсорсинге: клиента, работника и платформы.[7]

Рамки исследований для краудсорсинговой разработки программного обеспечения

Декомпозиция задачи:

Координация и общение:

Планирование и составление графиков:

Гарантия качества: Процесс краудсорсинга программного обеспечения можно описать как игровой процесс, в котором одна сторона пытается минимизировать целевую функцию, а другая сторона пытается максимизировать ту же целевую функцию, как если бы обе стороны конкурировали друг с другом в игре. Например, Технические характеристики команде необходимо разработать спецификации качества, чтобы команда кодировщиков могла разработать код; команда спецификаций минимизирует программные ошибки в спецификации, а группа кодирования определит как можно больше ошибок в спецификации перед написанием кода.

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

Bugcrowd показал, что участники будут следить за Дилемма заключенного для выявления ошибок для тестирования безопасности.[8]

Знания и интеллектуальная собственность:

Мотивация и вознаграждение:

Уровни

Существуют следующие уровни краудсорсинга:[нужна цитата ]

1-й уровень: отдельные люди, четко определенные модули, небольшой размер, ограниченный период времени (менее 2 месяцев), качественные продукты, текущие процессы разработки, такие как Топкодер и uTest. На этом уровне ранжируются кодеры, веб-сайты содержат материалы для краудсорсинга онлайн-репозиториев, программное обеспечение может быть ранжировано участниками, имеют инструменты коммуникации, такие как вики, блоги, комментарии, инструменты разработки программного обеспечения, такие как IDE, тестирование, компиляторы, моделирование, моделирование и программы. анализ.

Уровень 2: команды людей (<10), четко определенные системы, средний большой, средний период времени (от 3 до 4 месяцев), адаптивные процессы разработки с интеллектуальной обратной связью в архитектуре «классной доски». На этом уровне краудсорсинговый веб-сайт может поддерживать процесс адаптивной разработки и даже параллельные процессы разработки с интеллектуальной обратной связью с архитектурой доски; интеллектуальный анализ кодеров, программных продуктов и комментариев; многоэтапное тестирование и оценка программного обеспечения; Аналитика больших данных, автоматическая упаковка программных сервисов в SaaS (Software-as-a-Service), аннотирование с онтология, перекрестная ссылка на DBpedia и Википедию; автоматизированный анализ и классификация программных сервисов; аннотации онтологии и рассуждения, такие как связывание этой службы с совместимым вводом / выводом.

Уровень 3: команды людей (<100 и> 10), четко определенная система, большие системы, длительный период времени (<2 лет), автоматическая перекрестная проверка и перекрестное сравнение вкладов. Веб-сайт краудсорсинга на этом уровне может содержать автоматическое сопоставление требований к существующим компонентам, включая сопоставление спецификации, услуг и тестов; автоматическое регрессионное тестирование.

Уровень 4: многонациональное сотрудничество больших и адаптивных систем. Веб-сайт краудсорсинга на этом уровне может содержать краудсорсинг, ориентированный на предметную область, с онтологией, аргументацией и аннотациями; автоматическая перекрестная проверка и генерация тестов процессы; автоматизированная настройка краудсорсинговой платформы; и может реструктурировать платформу как SaaS с настройкой клиента.

Значимые события

Microsoft краудсорсинг Windows 8 разработка. В 2011 году Microsoft запустила блоги, чтобы поощрять обсуждения среди разработчиков и широкой публики.[9] В 2013 году Microsoft также начала краудсорсинг своих мобильных устройств для Windows 8.[10] В июне 2013 года Microsoft также объявила о краудсорсинговом тестировании программного обеспечения, предложив 100 тысяч долларов за инновационные методы выявления ошибок безопасности и 50 тысяч долларов за решение выявленной проблемы.[11]

В 2011 г. Ведомство США по патентам и товарным знакам запуск краудсорсинговой задачи под Закон Америки КОНКУРЕНУЕТ на Топкодер платформа для разработки алгоритмов обработки изображений и программного обеспечения для распознавания этикеток с фигурами и деталями в патентных документах с призовым фондом 50 000 долларов США.[12] В конкурсе приняли участие 70 команд, которые подали 1797 кодов. Решение победителя конкурса достигло высокой точности с точки зрения запоминания и точности распознавания областей фигур и меток деталей.[13]

Oracle использует краудсорсинг в своих CRM-проектах.[14]

Конференции и семинары

Мастер-класс по краудсорсингу программного обеспечения прошел в г. Дагштуль, Германия в сентябре 2013 года.[15]

Смотрите также

Рекомендации

  1. ^ Ридл, Кристоф; Вулли, Анита (декабрь 2016 г.). «Команды против толпы: полевое испытание относительного вклада стимулов, способностей участников и сотрудничества в эффективность решения проблем на основе толпы». Академия управленческих открытий. в печати (4): 382–403. Дои:10.5465 / драм 2015.0097.
  2. ^ а б Ву, Вэньцзюнь; W. T. Tsai; Вэй Ли (2013). «Рамки оценки для краудсорсинга программного обеспечения». Границы компьютерных наук. 7 (5): 694–709. Дои:10.1007 / s11704-013-2320-2.
  3. ^ Стол, Клаас-Ян; Фицджеральд, Брайан (2014). Two's Company, Three's a Crowd: пример разработки краудсорсингового программного обеспечения. 36-я Международная конференция по программной инженерии. ACM. С. 187–198. Дои:10.1145/2568225.2568249.
  4. ^ Ву, Вэньцзюнь; W. T. Tsai; Вэй Ли (2013). «Креативный программный краудсорсинг». Международный журнал творческих вычислений. 1: 57. Дои:10.1504 / IJCRC.2013.056925.
  5. ^ «Программное обеспечение для краудсорсинга собирает более сильные идеи». IdeaScale. Получено 2016-03-19.
  6. ^ Искатели ошибок. «Тестирование программного обеспечения в реальном мире». Получено 21 июня, 2013.
  7. ^ Stol, K. J .; Фитцджеральд, Б. (2014). «Исследование краудсорсинговой разработки программного обеспечения: перспективы и проблемы». Труды 1-го Международного семинара по толпе Sourcing в области программной инженерии - CSI-SE 2014. п. 7. Дои:10.1145/2593728.2593731. HDL:10344/3853. ISBN  9781450328579.
  8. ^ «Краудсорсинг и дилемма заключенного - Delling Advisory». Dellingadvisory.com. Получено 2016-03-19.
  9. ^ Томас, Стюарт (16 августа 2011 г.). «Microsoft запускает блог по краудсорсингу для Windows 8». Мемеберн. Получено 21 июня, 2013.
  10. ^ Симпсон, Скотт (10 июня 2013 г.). "CROWDSOURCE ВАШЕ СЛЕДУЮЩЕЕ УСТРОЙСТВО WINDOWS 8?". Получено 21 июня, 2013.
  11. ^ Белл, Ли (20 июня 2013 г.). «Microsoft предлагает вознаграждение в размере 100 000 долларов за взлом Windows 8.1». Получено 20 июня, 2013.
  12. ^ Штеффен, Робинн Штурм (16 декабря 2011 г.). «Приз нового центра передового опыта в области топлива за помощь в модернизации инструментов патентной экспертизы». Блог Белого дома. Получено 30 марта 2016.[постоянная мертвая ссылка ]
  13. ^ Riedl, C .; Zanibbi, R .; Hearst, M. A .; Zhu, S .; Menietti, M .; Crusan, J .; Метельский, И .; Лахани, К. (20 февраля 2016 г.). «Обнаружение фигур и обозначений деталей в патентах: разработка алгоритмов обработки изображений на основе конкуренции». Международный журнал анализа и распознавания документов. 19 (2): 155–172. arXiv:1410.6751. Дои:10.1007 / с10032-016-0260-8.
  14. ^ Диана, Элисон (16 марта 2011 г.). «Oracle интегрирует краудсорсинг в CRM». Информационная неделя. Получено 21 июня, 2013.
  15. ^ Хунс, Майкл Н .; Ли, Вэй; Цай, Вэй-Тек (2013). "Schloss Dagstuhl: домашняя страница семинара". Dagstuhl.de. Дои:10.4230 / DagRep.3.9.34. Получено 2016-03-19. Цитировать журнал требует | журнал = (помощь)

внешняя ссылка

дальнейшее чтение

  • Карим Р. Лакхани, Дэвид А. Гарвин, Эрик Логштейн, «TopCoder: Разработка программного обеспечения с помощью краудсорсинга», Дело 610-032 Гарвардской школы бизнеса, 2010 г.