Краудсорсинговая разработка программного обеспечения или краудсорсинг программного обеспечения является новой областью разработки программного обеспечения . Это открытый призыв к участию в любой задаче разработки программного обеспечения , включая документирование , проектирование , кодирование и тестирование . Эти задачи обычно выполняются либо членами предприятия по разработке программного обеспечения , либо людьми, нанятыми предприятием. Но в краудсорсинге программного обеспечения все задачи могут быть назначены или решены членами широкой общественности. Отдельные лица и команды также могут участвовать в конкурсах краудсорсинга . [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 состоит из ряда различных этапов, и в рамках каждого этапа могут быть различные типы соревнований: [ необходима ссылка ]
Каждый шаг может стать краудсорсинговым соревнованием.
Процесс тестирования BugFinders: [6]
Теория игр использовалась при анализе различных проектов краудсорсинга программного обеспечения. [2]
Теория информации может стать основой для метрик.
Экономические модели могут стимулировать участие в краудсорсинговых проектах.
Краудсорсинговая разработка программного обеспечения может следовать различным методологиям разработки программного обеспечения с использованием различных моделей процессов, методов и инструментов. Он также имеет определенные процессы краудсорсинга, включающие уникальные действия, такие как тендерные задачи, распределение экспертов, оценка качества и интеграция программного обеспечения. [ необходима цитата ] Для поддержки процесса аутсорсинга и содействия сотрудничеству сообщества обычно создается платформа, предоставляющая необходимые ресурсы и услуги. Например, Topcoder следует традиционному процессу разработки программного обеспечения со встроенными правилами конкуренции, а AppStori допускает гибкие процессы, и толпа может быть вовлечена практически во все аспекты разработки программного обеспечения, включая финансирование, концепции проектов, проектирование, кодирование, тестирование и оценку.
Таким образом, эталонная архитектура определяет зонтичные действия и структуру для разработки программного обеспечения на основе толпы, объединяя лучшие практики и достижения исследований. В целом, эталонная архитектура будет решать следующие потребности: [ необходима цитата ]
В частности, краудсорсинг используется для разработки большого и сложного программного обеспечения виртуализированным, децентрализованным способом. Облачные вычисления — это разговорное выражение, используемое для описания различных типов вычислительных концепций, которые включают большое количество компьютеров, подключенных через сеть связи в реальном времени (обычно Интернет). При перемещении краудсорсинговых приложений в облако можно найти много преимуществ: сосредоточиться на разработке проекта, а не на инфраструктуре, которая поддерживает этот процесс, способствовать сотрудничеству между географически распределенными командами, масштабировать ресурсы в соответствии с размером проектов, работать в виртуализированной, распределенной и совместной среде.
Требования к системам краудсорсинга программного обеспечения постоянно развиваются по мере того, как новые философии разработки и технологии получают популярность. Представленная выше эталонная архитектура разработана для охвата общности во многих измерениях, включая, например, различные методологии разработки программного обеспечения, схемы стимулирования и конкурентные/совместные подходы. Существует несколько четких направлений исследований, которые можно было бы изучить для улучшения архитектуры, такие как аналитика данных, доставка на основе услуг и обобщение фреймворка. По мере роста систем понимание того, что использование платформы является важным фактором, данные о пользователях, проектах и взаимодействии между ними могут быть изучены для исследования производительности. Эти данные также могут предоставить полезную информацию при разработке задач или выборе участников. Многие из компонентов, разработанных в архитектуре, являются универсальными и могут быть предоставлены в виде размещенных сервисов. Размещение этих сервисов значительно снизит барьеры для входа. Наконец, посредством развертывания этой архитектуры существует потенциал для получения фреймворка общего назначения, который можно было бы использовать для различных проектов краудсорсинга разработки программного обеспечения или, более широко, для других приложений краудсорсинга. Создание таких фреймворков оказало преобразующее воздействие на другие области, например, широкое использование 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]
{{cite news}}
: CS1 maint: неподходящий URL ( ссылка )