23. avgust 2006

JIRA

Zakaj je za firmo dobro, da shranjuje znanje? Kaj sploh to pomeni!?! Proces razvoja programske opreme gre skozi mnogo faz in katerikoli pristop že uporabljamo, vedno bo prihajalo do predlogov za izboljšave in še boj zagotovo bo prihajalo do napak pri implementaciji željene funkcionalnosti. Ni vseeno kako in ali sploh beležimo težave. Te težave in še bolj njihove rešitve so temelj znanja (beri znanje je denar). Ali obstaja način, da znanje nevede (bizarno!) razdelimo med svoje sodelavce ali zanamce. Če nam je kaj do tega, potem se pameten gospodar ne odloča prav dolgo.

JIRA je sistem za projektno vodenje, ki nam omogoča zelo premišljen postopek za evidentiranje programskih pomankljivosti, želj po novih funkcionalnosti, razdeljevanje nalog sodelujočim, pregled nad urnikom posameznikov in skupin. Lahko je podlaga za odločanje o razporeditvah delovnih nalog, posameznim vodjem omogoča razna poročila o zasedenosti posameznikov (na podlagi njihovih ocen!). Razvitih je bilo že ničkoliko vključkov, ki dopolnjujejo osnovno funkcionalnost te spletne aplikacije.

Obstaja mnogo projektov, ki omogočajo prijavljanje napak programske opreme, a se nobena od meni znanih ne približa intuitivnosti in hkrati tolikšni fleksibilnosti. Ker sem se pred leti tudi sam ukvarjal z razvojem tovrstne spletne aplikacije, toliko bolj spoštujem nastalo rešitev.

Več odprtokodnih projektov, ki so mi prekrižali pot (Cayenne, Quartz, Maven, Tapestry, HttpClient...) uporabljajo ta sistem in kot uporabnik na vseh teh se mi zdi, da ima primat z razlogom. Še bolj pa me je prepričal, ko sem ga pogledal v drobovje iz administratorske strani. Sistem lahko namestimo in ga brezplačno uporabljamo mesec dni.

Če poskušam odgovoriti na svoje v uvodu zastavljeno vprašanje kako shranjevati znanje - preprosto, organizirano zbirajmo vsakodnevne težave in jih rešujmo eno za drugo, a pri tem pustimo za sabo sled! Ta sled je referenca, je točka na katero se lahko vrnemo in iz nekaj preprostih stavkov razberemo rešitev. Je referenca, ki nas lahko opomni, da gre osel lahko večkrat na led. Že pomanjkanje komunikacije med sodelujočimi na istem projektu je težava, kaj šele pomeni to za dolgoročne projekte z nestalnimi sodelujočimi.

22. avgust 2006

Commons Configuration

V enem izmed prejšnjih zapisov sem omenil, da lahko z malo raziskovanja odkrijemo že izdelane rešitve, ker je skoraj zagotovo že nekdo pred nami potreboval in rešil kakšen problem, ki nas tare.

Commons Configuration (CC) je programska knjižnica, ki nam olajša dostop do resursov, ki jih potrebuje aplikacija. Za osnovne potrebe nam Java ponuja razred Properties, včasih pa bi potrebovali kaj več. Recimo, da aplikacija iz nekih razlogov potrebuje štiri konfiguracijske datoteke ali še bolje - vire. Ali ne bi bilo fino, da lahko do vseh štirih dostopate na enoten način - prek enotnega mehanizma? Recimo, da potrebujete nek vrstni red ali hierarhijo konfiguracijskih vrednosti. Kaj pa nekaj tako naravnega kot je pisanje nazaj v navadno properties datoteko, ampak tako, da se ohrani vrstni red zapisov in komentarjev ter vmesne prazne vrstice? Včasih bi si človek zaželel, da lahko dostopa do konfiguracijskih vrednosti neodvisno od formata in fizične lokacije. To in še več je možno s Commons Configuration.

CC nam ponuje enoten vmesnik za dostop do vrednosti iz sledečih virov:
  • Property datotek
  • XML dokumentov
  • Property list datotek (.plist)
  • JNDI
  • JDBC Datasource
  • System properties
  • Applet parametrov
  • Servlet parametrov
Naša naloga je, da ob zagonu aplikacije inicializiramo konfiguracijski sistem in ga damo na volju posameznim aplikacijskim sklopom. To običajno pomeni, da mora biti na voljo objekt tipa Configuration. Z aplikacijo se osredotočimo na reševanje zadanega poslovnega problema in se ne ubadamo s podrobnostmi ali načrtovanjem lastnih rešitev znotraj firme, kar običajno ni poceni.

Iz lastne izkušnje lahko tudi povem, da je avtor te odprtokodne knjižnice dojemljiv za predloge in izboljšave in kot vedno - na voljo imamo izvorno kodo, tako da jo lahko tudi sami prikrojimo, če nam kaj ne ustreza.