Web app development

Razvoj spletnih aplikacij

Naše dejavnosti vključujejo vse, kar je potrebno za razvoj spletnih aplikacij – od zajemanja funkcionalnosti do usposabljanja uporabnikov aplikacij. Delujemo v skladu s potrebami – če stranka potrebuje le specifično storitev, ji ponudimo točno to (npr. kodiranje specifičnih funkcionalnosti, upravljanje strankinega razvojnega tima ipd.).

Specifične lastnosti našega razvoja

Vir: Ken Schwaber et al. (2005). "CIOs playbook for adopting scrum method" (White Paper). Rally Software Development Corp.

Naš slog razvijanja je agilen (iterativen in prirasten, ang. kratica IID). V glavnem temelji na posebnem načinu razvoja in upravljanja programske opreme, imenovanem “scrum”.

Aplikacija se razvija skozi iteracije, t.i. “sprints” (kot prikazuje slika). Vsaka iteracija je samostojen miniprojekt, ki ga sestavljajo različne dejavnosti. Končni cilj iteracije je izdaja iteracije – stabilen, integriran in preizkušen sistem, ki je delno zaključen. Vse značilnosti, zahteve, prednosti, ocene ipd. se beležijo in hranijo v t.i. “dnevniškem zapisu produkta”. To je stalen proces. Zahteve za naslednjo iteracijo se izberejo s sprejemanjem odločitev na podlagi tveganj (najzahtevnejše značilosti imajo prednost) in sprejemanjem odločitev na podlagi zahtev strank (poslovno zahtevne značilnosti imajo prednost).

Programiranje skozi iteracije pomeni, da se s testiranjem ne odlaša do konca projekta. Integracije in testiranja se ne prelagajo na konec meseca. Zahteve in povratne informacije se nenehno beležijo, tudi po začetku programiranja.

Razvoj je stalen. Povratne informacije so stalne. Napake odkrivamo zelo hitro, ko jih je še razmeroma preprosto odpraviti. Prav tam in takrat, ko jih odkrijemo.

Programiramo z naslednjimi tehnologijami

Pri Ocpei najpogosteje programiramo v Javi (Java EE 5 - JBoss SEAM Framework) in PHP-ju (PHP5 - Zend Framework).

Agilne razvojne dejavnosti

Pri Ocpei najpogosteje uporabljamo naslednje agilne razvojne dejavnosti:
  • Skupno lastništvo kode
    Programerje rotiramo po različnih modulih sistema.
  • Nadzor različic
    Vedno uporabljamo usklajen model nadzora različic. Vse, kar je povezano z našimi projekti, je shranjeno v nadzoru različic.
  • Testiranje enot
    Testiranje enot prispeva k boljši obliki in preglednosti kode. Ustrezno izvedeni testi enot nemudoma odkrijejo morebitne težave. Temeljite spremembe v kodi se uvajajo le, če obstajajo zanesljivi testi enot.
  • Avtomatizacija izdelave
    Postopek izdelave je avtomatiziran, tako da ga je mogoče uporabljati pogosto in preprosto. To zagotavlja, da programska oprema deluje v vsakem trenutku.
  • Zgodnja integracija kode
    Ko je nov del programske opreme pripravljen, ga takoj integriramo. Prednost zgodnje integracije je, da zgodaj odkrijemo težave, ki se lahko pojavijo pri integraciji novih funkcionalnosti.
  • Pregledi kode
    Kodo preglejujemo in izboljšujemo v rednih časovnih razmakih. To je bistvenega pomena pri ohranjanju nizkega odstotka napak in izboljševanju kakovosti kode.
  • Programiranje v paru
    Vse ključne dele aplikacije napišejo programerji, ki sedijo drug ob drugem pri istem monitorju.