Разработка для конечных пользователей - End-user development

Разработка для конечных пользователей (EUD) или же программирование конечного пользователя (EUP) относится к действиям и инструментам, которые позволяют конечные пользователи - людям, не являющимся профессиональными разработчиками программного обеспечения - программные компьютеры. Люди, не являющиеся профессиональными разработчиками, могут использовать инструменты EUD для создания или изменения программные артефакты (описания автоматизированного поведения) и сложные объекты данных без значительного знания язык программирования. В 2005 г. она была оценена (с использованием статистики США. Бюро статистики труда ), что к 2012 году в Соединенных Штатах будет более 55 миллионов разработчиков-конечных пользователей по сравнению с менее чем 3 миллионами профессиональных программистов.[1] Существуют различные подходы EUD, и это активный тема исследования в области Информатика и взаимодействие человека с компьютером. Примеры включают программирование на естественном языке,[2][3] электронные таблицы,[4] языки сценариев (особенно в офисном пакете или художественном приложении), визуальное программирование, программирование срабатывания триггера и программирование на примере.

Самый популярный инструмент EUD - это электронная таблица.[4][5] Из-за своей неограниченной природы электронные таблицы позволяют относительно несложным пользователям компьютеров писать программы, представляющие сложные модели данных, при этом защищая их от необходимости изучать языки программирования более низкого уровня.[6] Поскольку они широко используются в бизнесе, навыки работы с электронными таблицами являются одними из самых полезных навыков для выпускников, и поэтому они наиболее востребованы.[7] Только в Соединенных Штатах Америки около 13 миллионов разработчиков конечных пользователей программируют с помощью электронных таблиц.[8]

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

Одно из направлений развития в этой области рассматривало использование мобильных устройств для поддержки деятельности конечных пользователей по разработке. В этом случае предыдущие подходы к настольным приложениям не могут быть просто воспроизведены, учитывая специфические характеристики мобильных устройств. Среды рабочего стола EUD не обладают преимуществами, позволяющими конечным пользователям создавать приложения на ходу.[9]

В последнее время возрос интерес к тому, как использовать EUD для поддержки разработки приложений Интернета вещей. В этой области многообещающим подходом кажется программирование триггерного действия.[10]

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

Платформы разработки с низким кодом для конкретных приложений

Примерно 40 поставщиков сейчас предлагают решения, ориентированные на конечных пользователей, которые сокращают затраты на программирование. Эти решения не требуют традиционного программирования и могут основываться на относительно узких функциях, например управление контрактами, управление отношениями с клиентами, отслеживание проблем и ошибок. Веб-взаимодействие, которое часто называют платформами разработки с низким кодом, помогает пользователю разработать приложение всего за 40-80 часов.[11][циркулярная ссылка ]

Определение

Либерман и др. предложите следующее определение:[12]

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

Ко и др. предложите следующее определение:[13]

Программирование для конечного пользователя - это программирование для достижения результата программы в первую очередь для личного, [а не] общественного использования.

Артефакты, определенные конечными пользователями, могут быть объектами, описывающими некоторое автоматическое поведение или последовательность управления, например запросы к базе данных или грамматические правила,[14] который можно описать парадигмами программирования, такими как программирование путем демонстрации, программирование с примерами, визуальное программирование, или же макрос поколение.[15] Они также могут быть параметрами, которые выбирают одно из альтернативных предопределенных вариантов поведения приложения.[16] Другие артефакты разработки конечных пользователей могут также относиться к созданию пользовательского контента, такого как аннотации, которые могут быть или не интерпретироваться с помощью вычислений (т.е. могут обрабатываться соответствующими автоматическими функциями).[17]

Примеры

Примеры разработки для конечных пользователей включают создание и изменение:


Моделирование затрат и выгод

В соответствии с Сатклифф,[23] EUD, по сути, передает усилия по разработке конечному пользователю. Поскольку всегда есть определенные усилия для изучения инструмента EUD, мотивация пользователей зависит от их уверенности в том, что это расширит возможности их работы, сэкономит время на работе или повысит производительность. В этой модели выгоды для пользователей изначально основаны на маркетинге, демонстрациях и молва. Как только технология будет введена в эксплуатацию, получение реальных выгод становится ключевым мотиватором.

В этом исследовании затраты определяются как сумма:

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

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

  • Функциональность, предоставляемая технологией
  • Гибкость реагирования на новые требования
  • Юзабилити производимых приложений
  • Общее качество подготовленных приложений

Сотрудничество в разработке для конечных пользователей

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

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

В этом сотрудничестве используются различные подходы, такие как Мастерская по формированию программного обеспечения.[27] предлагаются для преодоления разрыва в коммуникации между профессиональными разработчиками и разработчиками конечных пользователей. Эти подходы часто обеспечивают полупрозрачность в соответствии с моделью социальной прозрачности,[28] позволяя каждому участнику сотрудничества быть в курсе изменений, внесенных другими, и нести ответственность за свои действия благодаря осведомленности.

Помимо программных платформ для совместной работы, таких как GitHub, которые в основном используются опытными разработчиками из-за крутой кривой обучения, сотрудничество между разработчиками конечных пользователей часто происходит на вики-платформах, где созданные программные артефакты являются общими. Разработка для конечных пользователей также часто используется для создания сценариев автоматизации или интерактивных руководств для обмена практическими знаниями. Примеры такого приложения включают CoScripter[29] и HILC.[30] В таких приложениях пользователь может создавать сценарии для задач с использованием псевдоязыка или демонстрационного программирования. Пользователи могут выбрать загрузку сценария в репозиторий сценариев в стиле вики. В этой вики пользователи могут просматривать доступные сценарии и расширять существующие сценарии для поддержки дополнительных параметров, обработки дополнительных условий или работы с дополнительными объектами.

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

Критика

Комментаторы были обеспокоены тем, что конечные пользователи не понимают, как тестировать и защищать свои приложения. Уоррен Харрисон, профессор компьютерных наук в Портлендском государственном университете, писал:[32]

Просто непостижимо, что мы могли ожидать безопасности ... от подавляющего большинства программных приложений, когда они написаны с небольшим, если вообще, знанием общепринятых передовых практик, таких как определение перед кодированием, систематическое тестирование и так далее. ... Сколько существует книг X for Complete Idiots (где "X" - ваш любимый язык программирования)? Сначала меня забавляла эта тенденция, но в последнее время мне стало неловко думать о том, где эти любители применять свои новые знания.

Эта точка зрения предполагает, что все конечные пользователи одинаково наивны, когда дело доходит до понимания программного обеспечения, хотя Плискин и Шоваль утверждают, что это не так, что искушенные конечные пользователи способны разрабатывать для конечных пользователей.[33] Однако, по сравнению с опытными программистами, у конечных пользователей редко бывает время или интерес к систематической и дисциплинированной деятельности по разработке программного обеспечения.[34] что делает обеспечение качества программных артефактов, создаваемых конечными пользователями, особенно сложными.

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

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

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

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

  1. ^ Scaffidi, C .; Shaw, M .; Майерс, Б. (1 сентября 2005 г.). Оценка количества конечных пользователей и программистов конечных пользователей. Симпозиум IEEE 2005 г. по визуальным языкам и вычислениям, ориентированным на человека (VL / HCC'05). С. 207–214. Дои:10.1109 / VLHCC.2005.34. ISBN  978-0-7695-2443-6.
  2. ^ Литтл, Грег и Роберт С. Миллер. "Перевод команд ключевых слов в исполняемый код. "Труды 19-го ежегодного симпозиума ACM по программному обеспечению и технологиям пользовательского интерфейса. ACM, 2006.
  3. ^ Брукман, Эми и Элизабет Эдвардс. "Следует ли использовать знание естественного языка? Анализ ошибок пользователя в языке программирования в стиле естественного языка. "Труды конференции SIGCHI по человеческому фактору в вычислительных системах. ACM, 1999.APA
  4. ^ а б Бернетт, Маргарет М.; Скаффиди, Кристофер. Разработка для конечных пользователей. Interaction-Design.org. в "Энциклопедии взаимодействия человека и компьютера".
  5. ^ Хорнсби, Питер (2009-08-03). «Предоставление пользователям возможности создавать собственное программное обеспечение». UXmatters. Получено 2014-01-31.
  6. ^ Abraham, R .; Бернетт, М; Эрвиг, М. (2009). "Табличное программирование". Энциклопедия компьютерных наук и инженерии Wiley. С. 1–10.
  7. ^ Крук С. и Шитц С., 2001. Теория точности таблиц. Журнал информационных систем образования.
  8. ^ Скаффиди К., Шоу М. и Майерс Б., 2005. Оценка количества конечных пользователей и конечных пользователей-программистов. Симпозиум IEEE 2005 г. по визуальным языкам и вычислениям, ориентированным на человека (VL / HCC’05), стр.207–214.
  9. ^ Патерно Ф., 2013, Разработка программного обеспечения ISRN, Разработка для конечных пользователей: исследование новой области для расширения прав и возможностей людей
  10. ^ Гиани, Г., Манка, М., Патерно, Ф., Санторо, К.: Персонализация контекстно-зависимых приложений с помощью правил триггерного действия. Транзакции ACM о взаимодействии компьютера и человека, том 24, выпуск 2, статья №14, апрель 2017 г.
  11. ^ Платформы разработки low-code
  12. ^ Либерман, Х., Патерно, Ф., Кланн, М., и Вульф, В. (2006). Разработка для конечных пользователей: возникающая парадигма. В: Разработка для конечных пользователей, Либерман, Х., Патерно, Ф. и Вульф, В. (ред.), Springer, Нидерланды, 2006, сер. Серия «Взаимодействие человека и компьютера», т. 9, Глава 1, стр. 1-7, Дои:10.1007 / 1-4020-5386-X_1
  13. ^ Ко, Эндрю Дж .; Авраам, Робин; Беквит, Лаура; Блэквелл, Алан; Бернетт, Маргарет; Эрвиг, Мартин; Скаффиди, Крис; Лоуренс, Джозеф; Либерман, Генри (2011-04-01). «Современные достижения в разработке программного обеспечения для конечных пользователей». ACM Comput. Surv. 43 (3): 21:1–21:44. CiteSeerX  10.1.1.159.8597. Дои:10.1145/1922649.1922658. ISSN  0360-0300.
  14. ^ Х. Либерман, Б. А. Нарди и Д. Райт. Grammex: определение грамматик на примере. На конференции ACM по человеческому фактору в вычислительных системах (резюме, демонстрации) (CHI ’98), Лос-Анджелес, Калифорния, США, страницы 11–12. ACMPress, апрель 1998 г.
  15. ^ Мария Франческа Костабиле, Даниэла Фольи, Пьеро Муссио, Антонио Пиччинно. Разработка для конечных пользователей: подход к семинару по формированию программного обеспечения. В: Либерман, Х., Патерно, Ф., Вульф, В. (редакторы) (2004) Разработка конечных пользователей - расширение возможностей людей для гибкого использования передовых информационных и коммуникационных технологий, © 2004 Kluwer Academic Publishers, Дордрехт, Нидерланды.
  16. ^ Костабиле, М.Ф., Фогли, Д., Летондал, К., Муссио, П., Пиччинно, А., Пользователи-эксперты и их потребности в разработке программного обеспечения ", Конференция UAHCI, Крит, 22–27 июня 2003 г., 232–236.
  17. ^ Герхард Фишер Разработка для конечных пользователей и мета-дизайн: основы культур участия. Лекционные заметки по компьютерным наукам для конечных пользователей, 2009 г., том 5435/2009, 3-14,
  18. ^ Скаффиди, Кристофер; Брандт, Джоэл; Бернетт, Маргарет; Голубь, Андрей; Майерс, Брэд (2012). SIG: программирование для конечных пользователей. CHI '12 Расширенные рефераты по человеческому фактору в вычислительных системах. Chi Ea '12. С. 1193–1996. Дои:10.1145/2212776.2212421. ISBN  9781450310161.
  19. ^ Леонарди, Никола; Манка, Марко; Патерно, Фабио; Санторо, Кармен (2019). Программирование триггерного действия для персонализации поведения роботов-гуманоидов. CHI '19 Конференция ACM по человеческому фактору в вычислительных системах. Дои:10.1145/3290605.3300675. ISBN  978-145035970-2.
  20. ^ Саркар, Адвайт; Блэквелл, Алан; Ямник, Матея; Спотт, Мартин (июль 2014 г.). Учите и пробуйте: простой метод взаимодействия для исследовательского моделирования данных конечными пользователями. Симпозиум IEEE 2014 года по визуальным языкам и вычислениям, ориентированным на человека (VL / HCC 2014). С. 53–56. CiteSeerX  10.1.1.695.2025. Дои:10.1109 / VLHCC.2014.6883022. ISBN  978-1-4799-4035-6.
  21. ^ Хейнс, Джон Л. (осень 1985 г.). «Схемотехника с Lotus 1-2-3». БАЙТ. стр. 143–156. Получено 19 марта 2016.
  22. ^ Рой Чоудхури, Судип; Родригес, Карлос; Даниэль, Флориан; Касати, Фабио (2010). Компьютинг с учетом мудрости: по интерактивной рекомендации знания композиции. Icsoc'10. стр.144–155. ISBN  9783642193934.CS1 maint: ref = harv (связь)
  23. ^ Сатклифф, Алистер (Июль 2005 г.). «Оценка затрат и выгод разработки для конечных пользователей». Примечания по разработке программного обеспечения ACM SIGSOFT. 30 (4): 1–4. Дои:10.1145/1082983.1083241.
  24. ^ Андерсен, Ренате; Мёрч, Андерс И. (2009-03-02). Взаимная разработка: пример разработки программного обеспечения по инициативе клиентов. Разработка для конечных пользователей. Конспект лекций по информатике. 5435. С. 31–49. CiteSeerX  10.1.1.598.9066. Дои:10.1007/978-3-642-00427-8_3. ISBN  978-3-642-00425-4.
  25. ^ Фишер, Герхард (1 января 1994). «Ответственность за проблемы с предметно-ориентированной средой проектирования». Ориентированные на пользователя требования к средам разработки программного обеспечения. Шпрингер, Берлин, Гейдельберг. С. 297–306. CiteSeerX  10.1.1.310.8814. Дои:10.1007/978-3-662-03035-6_23. ISBN  978-3-642-08189-7.
  26. ^ Фишер, Герхард; Джаккарди, Элиза (01.01.2006). Либерман, Генри; Патерно, Фабио; Вульф, Фолькер (ред.). Разработка для конечных пользователей. Серия «Взаимодействие человека и компьютера». Springer Нидерланды. стр.427–457. Дои:10.1007 / 1-4020-5386-x_19. ISBN  9781402042201.
  27. ^ Либерман, Генри; Патерно, Фабио; Кланн, Маркус; Вульф, Волкер (01.01.2006). Либерман, Генри; Патерно, Фабио; Вульф, Фолькер (ред.). Разработка для конечных пользователей. Серия «Взаимодействие человека и компьютера». Springer Нидерланды. стр.1–8. Дои:10.1007 / 1-4020-5386-x_1. ISBN  9781402042201.
  28. ^ Эриксон, Томас; Келлог, Венди А. (2000-03-01). «Социальная прозрачность: подход к разработке систем, поддерживающих социальные процессы». ACM Trans. Comput.-Hum. Взаимодействовать. 7 (1): 59–83. Дои:10.1145/344949.345004. ISSN  1073-0516.
  29. ^ Лешед, Джилли; Haber, Eben M .; Мэтьюз, Тара; Лау, Тесса (01.01.2008). CoScripter: автоматизация и обмен практическими знаниями на предприятии. Материалы конференции SIGCHI по человеческому фактору в вычислительных системах. CHI '08. Нью-Йорк, Нью-Йорк, США: ACM. С. 1719–1728. Дои:10.1145/1357054.1357323. ISBN  9781605580111.
  30. ^ Интхара, Танапонг; Турмухамбетов Данияр; Бростоу, Габриэль Дж. (01.01.2017). Помогите, это выглядит сбивающим с толку: автоматизация задач с графическим интерфейсом пользователя с помощью демонстрации и дополнительных вопросов. Материалы 22-й Международной конференции по интеллектуальным пользовательским интерфейсам. IUI '17. Нью-Йорк, Нью-Йорк, США: ACM. С. 233–243. Дои:10.1145/3025171.3025176. ISBN  9781450343480.
  31. ^ Fischer, G .; Giaccardi, E .; Ye, Y .; Sutcliffe, A.G .; Механджиев, Н. (2004-09-01). «Мета-дизайн: манифест для развития конечных пользователей». Commun. ACM. 47 (9): 33–37. Дои:10.1145/1015864.1015884. ISSN  0001-0782.
  32. ^ Харрисон, Уоррен (июль – август 2004 г.). «Опасности программирования для конечных пользователей». Программное обеспечение IEEE. 21 (4): 5. Дои:10.1109 / MS.2004.13.
  33. ^ Плискин, Нава; Шовал, Перец (1987). «Создание прототипов для конечных пользователей: опытные пользователи, поддерживающие разработку системы». База данных ACM SIGMIS. 18 (4): 7–17. Дои:10.1145/1017816.1017817.
  34. ^ Брандт, Джоэл; Го, Филип Дж .; Левенштейн, Джоэл; Клеммер, Скотт Р. (1 января 2008 г.). Оппортунистическое программирование: как быстрое создание идей и прототипов происходит на практике. Материалы 4-го Международного семинара по разработке программного обеспечения для конечных пользователей. WEUSE '08. Нью-Йорк, Нью-Йорк, США: ACM. С. 1–5. Дои:10.1145/1370847.1370848. ISBN  9781605580340.
  35. ^ «Разработка программного обеспечения для конечных пользователей: эмпирические данные». Конечные пользователи формируют консорциум эффективного программного обеспечения. Получено 2008-05-28.

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

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