Spējā programmatūras izstrāde

Spējā programmatūras izstrāde jeb vienkāršu spējā izstrāde (angļu: Agile development) ir izmantota metodoloģija, lai veiktu ātru izstrādi un ieviešanu informācijas sistēmās un lietotnēs. Šī pieeja ietver pakāpeniskus tuvinājumus, lai uzlabotu sistēmas, iekļaujot jaunākās lietotāju prasības. Sākotnējai specifikācijai nav jābūt visaptverošai, tās jāietver tikai absolūti nepieciešamās prasības. Detalizētāka prasību izstrāde un programmatūras attīstība notiek turpmākos posmos, nodrošinot, ka pirms izplatīšanas programmatūra ir darboties spējīga un bez kļūdām. Šāda pieeja ļauj elastīgi reaģēt uz lietotāju vajadzībām, samazinot sākotnējo specifikācijas nepieciešamību un ļaujot sistēmai attīstīties progresīvi.[1][2]

Galvenais uzsvars tiek likts uz cilvēkiem un to savstarpējām attiecībām, nevis uz rīkiem un procesiem. Metodoloģija koncentrējas uz produktu attīstību, nevis formālu dokumentāciju. Lielāka uzmanība tiek veltīta klienta iesaistei, kas ir koleģiāla un neierobežota ar līguma nosacījumiem.[3]

Spējās programmizstrādes pirmsākumi ir atrodami 1957. gadā. Pieeja ir minēta Craig Larman un Victor Basili rakstā.[4] 1970. gadā Dr. Winstons Royce prezentē savu rakstu "Lielu programmizstrādes projektu vadība" (angļu: Managing the Development of Large Software Systems), kurā kritizē secīgu programmizstrādi un papildina, ka programmatūras izstrādi nevar salīdzināt un veikt līdzīgi kā mašīnas izstrādi uz konveijera. Tajā pašā gadā E. A. Edmonds ir sagatavojis rakstu "Programmatūras izstrādes process netehniskiem lietotājiem kā adaptīva sistēma" (angļu: A process for the Development of Software for Nontechnical Users as an Adaptive System).[5]

Spējās izstrādes manifests

labot šo sadaļu

2001. gada 11-13. februārī tika izveidots spējās izstrādes manifests,[6] kas ir uzskatu un vērtību kopums, kurā akcentētas prioritātes un pieejas programmatūras izstrādē. Manifesta darbā novērtējumi ir:[7]

  • Cilvēkus un viņu mijiedarbi augstāk par rīkiem un procesiem
  • Strādājošu programmatūru augstāk par detalizētu dokumentāciju
  • Kopsadarbību ar pasūtītāju augstāk par līguma sarunām
  • Reaģēšanu uz izmaiņām augstāk par sekošanu plānam

Protams, svarīgi ir arī tas, kas rakstīts pa labi, tomēr par būtiskāku mēs atzīstam to, kas rakstīts pa kreisi.

17 speciālisti vienojās par spējās metodoloģijas manifestu un 12 spējās metodoloģijas pamatprincipiem:[5][8]

  • Augstākā prioritāte ir apmierināt pasūtītājus, izmantojot agras un regulāras vērtīgas programmatūras piegādes.
  • Mainīgās prasības tiek pieņemtas, pat ja tās rodas vēlu izstrādes procesā. Pieņemt izmaiņas vēlu izstrādes procesā, lai uzlabotu klienta konkurētspēju.
  • Piegādājam strādājošu programmatūru regulāri, no pāris nedēļām līdz pāris mēnešiem, ar priekšroku īsākiem periodiem.
  • Biznesa cilvēkiem un izstrādātājiem ir jāstrādā kopā ik dienu visa projekta garumā.
  • Veidojiet projektu, izmantojot motivētus indivīdus. Sniedziet viņiem nepieciešamo vidi un atbalstu un uzticieties viņiem, ka darbs tiks paveikts.
  • Klātienes komunikācija ir efektīvākā.
  • Strādājoša programmatūra ir primārā progresa metrika.
  • Spējā metodoloģija veicina ilgtspējīgu attīstību.
  • Nepārtraukti ir jāpievērš uzmanība tehniskai izcilībai, labai arhitektūrai un dizainam.
  • Vienkāršība ir māksla maksimizēt to darba daļu, kuru nav nepieciešams realizēt.
  • Labākās arhitektūras un dizaini tiek veidoti pašorganizētās komandās.
  • Regulāros intervālos komanda pārskata savu darbu, analizē to un veic nepieciešamās korekcijas.

Spējās metodes un prakses

labot šo sadaļu
 
Programmēšana pāros ir viena no praksēm

Programmatūras izstrādes uzņēmi parasti par pamatu spējai izstrādei izmanto, kādu no spējām metodēm. Spējās metodes izvēle tiek atstāta uzņēmuma ziņā. Uzņēmumi un komandas izmanto dažādas spējās metodes. Biežāk izmantotā metode ir Scrum.[5]

Spējās metodes parasti netiek izmantotas vienas pašas. Vairumā gadījumu, to izmantošana ir saistīta ar vairāku spējo prakšu izmantošanu. Spējās prakses nodrošina veiksmīgāku metodes izmantošanu. Prakšu izvēle vairumā gadījumu tiek atstāta komandas ziņā, bet ir arī prakses, kuru izmantošana ir saistīta ar lēmumiem organizācijas līmenī.

  • Scrum
  • Minimāla izstrāde (angļu: Lean Software Development)
  • Ekstrēmā programmatūras izstrāde[9] (angļu: eXtreme Programming (XP))
  • Raksturiezīmju virzīta izstrāde[10]/Iezīmju vadītā metode (angļu: Feature Driven Development)
  • Dynamic system development method (DSDM)
  • Crystal
  • Pieņemšanas testu vadīta izstrāde (angļu: Acceptance Test Driven Development (ATDD))
  • Pieņemšanas testēšana[11] (angļu: Acceptance testing)
  • Aktīva klienta dalība (angļu: Active Stakeholder Participation)
  • Programmēšana pāros
  1. «Spējā programmatūras izstrāde». esco.ec.europa.eu (latviešu). Skatīts: 2023-12-20.
  2. «LZA TK ITTEA terminu datubāze - Latvijas Nacionālais terminoloģijas portāls». Latvijas Nacionālais terminoloģijas portāls (latviešu). Skatīts: 2023-12-20.
  3. «Sistēmu izstrādes procesi un metodes». estudijas.lu.lv. Skatīts: 2023-07-20.
  4. Larman, Craig; Basili, Victor R. (2003). [https://www.craiglarman.com/wiki/downloads/misc/history-of-iterative-larman-and-basili-ieee-computer.pdf Iterative and Incremental Development: A Brief History].
  5. 5,0 5,1 5,2 Linkevičs, Gusts (2016) (lv). Spējās paradigmas ieviešanas atbalsts programmatūras izstrādes organizācijās.
  6. «LZA TK ITTEA protokoli - Latvijas Nacionālais terminoloģijas portāls». Latvijas Nacionālais terminoloģijas portāls (latviešu). Skatīts: 2023-12-20.
  7. «Agile programmatūras izstrādes manifests». agilemanifesto.org. Skatīts: 2023-12-20.
  8. «Agile-manifesta pamatprincipi». agilemanifesto.org. Skatīts: 2023-12-20.
  9. «LZA TK ITTEA protokoli - Latvijas Nacionālais terminoloģijas portāls». Latvijas Nacionālais terminoloģijas portāls (latviešu). Skatīts: 2023-12-20.
  10. «LZA TK ITTEA protokoli - Latvijas Nacionālais terminoloģijas portāls». Latvijas Nacionālais terminoloģijas portāls (latviešu). Skatīts: 2023-12-20.
  11. «LZA TK ITTEA protokoli - Latvijas Nacionālais terminoloģijas portāls». Latvijas Nacionālais terminoloģijas portāls (latviešu). Skatīts: 2023-12-20.