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

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

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

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

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

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

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

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

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

Определение

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

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

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

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

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

Примеры

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

Моделирование рентабельности

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

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

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

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

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

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

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

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

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

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

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

Критика

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

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

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

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

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

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

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

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

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