stringtranslate.com

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

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

Цели

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

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

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

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

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

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

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

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

Обучение участников : Организаторы заинтересованы в обучении участников новым знаниям. Одним из примеров является nonamesite.com, спонсируемый DARPA для обучения STEM Science, Technology, Engineering и Mathematics .

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

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

Экосистема

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

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

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

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

Организация

Процессы

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

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

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

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

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

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

Платформы

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

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

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

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

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

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

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

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

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

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

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

Экономические модели могут стимулировать участие в краудсорсинговых проектах.

Референтная архитектура

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

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

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

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

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

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

Аспекты и показатели

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

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

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

Координация и коммуникация:

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

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

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

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

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

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

Уровни

Существуют следующие уровни краудсорсинга: [ необходима ссылка ]

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

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

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

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

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

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

В 2011 году Патентное и товарное ведомство США запустило краудсорсинговый конкурс в рамках Закона America COMPETES на платформе Topcoder для разработки алгоритмов обработки изображений и программного обеспечения для распознавания обозначений фигур и деталей в патентных документах с призовым фондом в 50 000 долларов США. [12] В результате конкурса 70 команд в общей сложности представили 1797 кодов. Решение победителя конкурса достигло высокой точности с точки зрения отзыва и точности распознавания областей фигур и деталей. [13]

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

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

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

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

Ссылки

  1. ^ Ридл, Кристоф; Вулли, Анита (декабрь 2016 г.). «Команды против толпы: полевые испытания относительного вклада стимулов, способностей членов и сотрудничества в эффективность решения проблем на основе толпы». Academy of Management Discoveries . в печати (4): 382–403. doi :10.5465/amd.2015.0097.
  2. ^ ab Wu, Wenjun; WT Tsai; Wei Li (2013). «Оценочная структура для краудсорсинга программного обеспечения». Frontiers of Computer Science . 7 (5): 694–709. doi :10.1007/s11704-013-2320-2. S2CID  3352701.
  3. ^ Стол, Клаас-Ян; Фицджеральд, Брайан (2014). Двое — компания, трое — толпа: пример краудсорсинговой разработки программного обеспечения. 36-я международная конференция по программной инженерии. ACM. стр. 187–198. doi :10.1145/2568225.2568249. hdl : 10344/3982 .
  4. ^ У, Вэньцзюнь; ВТ Цай; Вэй Ли (2013). «Краудсорсинг творческого программного обеспечения». Международный журнал креативных вычислений . 1 : 57. doi : 10.1504/IJCRC.2013.056925 .
  5. ^ "Программное обеспечение для краудсорсинга собирает более сильные идеи". IdeaScale . Получено 19.03.2016 .
  6. ^ Bugfinders. "Тестирование ПО в реальном мире" . Получено 21 июня 2013 г.
  7. ^ Стол, К. Дж.; Фицджеральд, Б. (2014). «Исследование краудсорсинговой разработки программного обеспечения: перспективы и проблемы». Труды 1-го международного семинара по краудсорсингу в программной инженерии - CSI-SE 2014. стр. 7. doi :10.1145/2593728.2593731. hdl :10344/3853. ISBN 9781450328579. S2CID  7531317.
  8. ^ «Краудсорсинг и дилемма заключенного — Delling Advisory». Dellingadvisory.com. 11 апреля 2013 г. Получено 19 марта 2016 г.
  9. ^ Томас, Стюарт (16 августа 2011 г.). «Microsoft запускает краудсорсинговый блог для Windows 8». Memeburn . Получено 21 июня 2013 г. .
  10. ^ Симпсон, Скотт (10 июня 2013 г.). «КРАУДСОРСИНГ ВАШЕГО СЛЕДУЮЩЕГО УСТРОЙСТВА WINDOWS 8?» . Получено 21 июня 2013 г.
  11. Белл, Ли (20 июня 2013 г.). «Microsoft предлагает вознаграждение в размере 100 000 долларов за взлом Windows 8.1». Архивировано из оригинала 25 июня 2013 г. Получено 20 июня 2013 г.{{cite news}}: CS1 maint: неподходящий URL ( ссылка )
  12. ^ Штеффен, Робинн Штурм (16 декабря 2011 г.). «Новый центр передового опыта подпитывает премию, чтобы помочь модернизировать инструменты для патентной экспертизы». Блог Белого дома . Получено 30 марта 2016 г.
  13. ^ Ридл, К.; Занибби, Р.; Херст, МА; Чжу, С.; Мениетти, М.; Крусан, Дж.; Метельски, И.; Лакхани, К. (20 февраля 2016 г.). «Обнаружение фигур и обозначений деталей в патентах: разработка алгоритмов обработки изображений на основе конкуренции». Международный журнал по анализу и распознаванию документов . 19 (2): 155–172. arXiv : 1410.6751 . doi : 10.1007/s10032-016-0260-8. S2CID  11873638.
  14. ^ Диана, Элисон (16 марта 2011 г.). «Oracle интегрирует краудсорсинг в CRM». InformationWeek . Получено 21 июня 2013 г.
  15. ^ Ханс, Майкл Н.; Ли, Вэй; Цай, Вэй-Тек (2013). «Schloss Dagstuhl: Домашняя страница семинара». Отчеты Дагштуля . 3 (9). Дагштуль.де: 34–58. дои : 10.4230/DagRep.3.9.34 . Проверено 19 марта 2016 г.

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

Внешние ссылки