Крајње-корисничко развијање (ККР) или крајње-корисничко програмирање (ККП) односи се на активности и алате који омогућавају крајњим корисницима - људима који нису професионални програмери - за програмирање рачунара. Људи који нису професионални програмери могу да користе алате ККР да креирају и мењају софтвер артефаката (описи аутоматизованог понашање) и сложене предмете података без значајног знања програмског језика. Различити приступи постоји, а то је активна истраживачка тема у области рачунарства и интеракција човек-рачунар. Примери укључују табеле, скрипте језика (посебно у канцеларији, апартману или уметничким апликацијама), а програмирање кроз примере.
Најпопуларнији ККР алат је табела.[1] [2] Због своје неограничене природе, табеле омогућавају релативно УН-софистициранијим корисницима рачунара да пишу програме који представљају сложене моделе података, док их штите од потребе да уче програмске језике на нижем нивоу.[3] Због њиховог заједничког коришћења у пословању, вештине табеле су међу корисним вештинама које дипломирани запослени имају, и због тога их најчешће траже[4] Сједињене Америчке Државе, тамо има око 13 милиона крајње корисничких програмера са табелама.[5]
Рани покушаји у крајњем корисничком развијању су фокусирани на додавање једноставног скрипт програмског језика да се прошири и прилагоди постојеће апликације, као што је послован пакет.
Много недавних истраживања покушава да доведе програмирање ближе потребама крајњих корисника. Програмирање кроз примере (ПкП) приступ смањује потребу да корисници науче апстракције од класичног програмског језика. Корисник уводи неке примере жељених резултата или операција које треба да се врши на подацима, а ПкП систем закључује исправне апстракције које одговарају програму који производи овај излаз. Нови подаци могу затим бити представљени на аутоматски креирани програм, а корисник може да исправи грешке које је програм направи у циљу побољшања дефиниције.
Постоје два основна разлога зашто је ККР постала популарна. Један је јер се организације суочавају са кашњењем на пројектима, а коришћење ККР-а може ефикасно смањити време завршетка пројекта. Други разлог је што су софтверски алати моћнији и лакши за коришћење.
Научне лекције из делегације ККР-а решења могу значајно утицати на софтверске животне циклусе за комерцијалне софтверске производе, кућна интранет/ектранет дешавања и примене апликација предузећа.
Лиеберман et al. предлаже следећу дефиницију:[6]
Крајњи корисник развој може се дефинисати као скуп метода, техника и алата који омогућавају корисницима софтверских система, који се понашају као не-професионални програмери, у неком тренутку да створе, измене или продуже софтверске артефакте.
Артефакти дефинисани крајњим корисником могу бити објекти који описују нека аутоматизована понашања или контролну секвенцу, као што су захтеви базе података или граматичка правила,[7] која се може описати са програмским парадигмама као што је демонстрација програмирања, програмирање са примерима, визуелно програмирање, или макро генерације.[8] Они такође могу бити параметри који се определе између алтернативних дефинисаних понашања апликације.[9] Остали предмети развоја крајњих корисника такође могу да се односе на стварање корисничког генерисаног садржаја као што напомена, које могу бити не рачунски интерпретиране (тј могу се обрадити у вези аутоматске функције).[10]
Примери развоја крајњег корисника укључују стварање и модификацију:
Према Sutcliffe-у,[15] ККР суштински ангажује развој напора до крајњег корисника. Јер, увек постоји неки напор да се науче ККР функције, мотивација корисника зависи од њиховог поверења да ће оснажити њихов рад, уштедели време на послу или подизању продуктивности. У овом моделу, користи за кориснике су првобитно засновани на маркетингу, демонстрације и реч-од-уста. Када се технологија ставља у употребу, искуство стварних бенефиција постаје кључни мотив.
Ова студија дефинише трошкове као збир:
Први и други трошкови настају једном приликом набавке, док трећи и четврти настају сваки пут када се апликација развија. Предности (које могу бити субјективне или стварне) се сматрају:
Коментатори су забринути да крајњи корисници не разумеју како да тестирају и обезбеде њихову примену. Варрен Харрисон, професор рачунарских наука на Портланд Стате Универзитету, је написао:[16]
То је једноставно недокучиво да очекујемо безбедност ... од огромне већине софтверских апликација тамо када су писани са мало, ако га има, знања опште прихваћане добре праксе, као што се наводи пре кодирања, систематског испитивања, и тако даље. ... Колико X за комплетне идиоте (где је "X" ваш омиљени програмски језик) књиге су тамо? У почетку сам се забављао овим трендом, али недавно сам постао забринут размишљањем где овај dabblers примењује своје новостечено знање.
Ово гледиште претпоставља да сви крајњи корисници су подједнако наивни када је у питању разумевање софтвера, иако Pliskin and Shoval тврде да то није случај, да софистицирани крајњи корисници су способни за развој крајњег корисника.[17]
Као одговор на то, појавило се проучавање крајњег корисника софтверског инжењеринга. Бави се питањима изван развој крајњег корисника, при чему крајњи корисници постају мотивисани да размотре питања као што су употребљивост, безбедност и могућности за верификацију када развијају своје рјешења.[18]
Алтернативни сценарио је да крајњи корисници и њихови саветници користе декларативне алате који подржавају ригорозна пословна и безбедносна правила на уштрб перформанси и скалабилности; алати креирани помоћу ККР ће обично имати лошију ефикасност од оних направљених са професионалним програмским окружењима. Иако одвајање функционалност од ефикасности је валидно раздвајање проблема, то може довести до ситуације у којој ће крајњи корисници заврши и документовати анализу потреба и израду прототипова алата, без укључивања пословних аналитичара. Дакле, корисници ће дефинисати функције потребне пре него што ови стручњаци имају прилику да размотре ограничења одређене апликације или софтверских оквира. Виша подршка менаџмента за такве иницијативе крајњег корисника зависе од њиховог односа са постојећим или потенцијалним продавцима брава.