Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Izbor SCM (Software Configuration Management) alata




Uvod

Izbor SCM alata, u većini slučajeva, nije trivijalna vežba. To zahteva razmišljanje i planiranje, i po mogućstvu, dovoljno vremena za istraživanje i konsultaciju sa drugim ljudima, naročito ako nemate mnogo iskustva u ovoj oblasti.

Ovaj dokument daje neka mišljenja i smernice koje Vam mogu pomoći na Vašem putu. Molimo pošaljite komentare na mejl torc@vaccaperna.co.uk

Ukratko:
  • odlučite o Vašim zahtevima
  • prikupite podatke
  • procenite korišćenjem sopstvenih scenarija
  • odlučite!
Ako nemate mnogo iskustva onda konsultujte stručnjake i druge korisnike (referentne sajtove), pokušajte sa diskusionim grupama. Saznajte šta radi za druge kompanije, po mogućstvu koje su što sličnije Vama.

Proces, onda alat

SCM alat je samo deo procesa razvoja softvera za preduzeća, i mora da se uklopi sa drugim praksama, i zaista korporativnom kulturom.

Često se naziva "proces, onda alat" - prvo definišete svoj proces pre nego što izaberete alat. Postoje oni koji dodaju "Ljude" u proces - uverite se da li Vaše procese podržavaju ljudi koji će da rade sa njima.

Nema alata koji će magično dozvoliti da loše definisan proces bude uspešan.

Međutim, alati i njihove sposobnosti će dati povratnu informaciju o onome u šta je procese moguće ili lako sprovesti, pa se odluke ne donose u izolaciji. Ovo je oblast u kojoj će iskustvo u implementaciji SCM sistema značajno pomoći u mogućnosti da se mapiraju opšti principi na određene slučajeve, i da se naprave odgovarajući kompromisi.

Dakle, ja ne verujem da možete napraviti čistu odluku o procesu, a zatim odlučivati o alatu. Na primer, budžet će često isključiti "high cost" alate, čak i ako želite da ih imate zbog njihove sposobnosti da podrže željeni proces. Ovo je samo životna činjenica - morate da uradite najbolje što možete unutar Vaših specifičnih ograničenja!

Neka razmišljanja o procesu

Neki ljudi vole vrlo strogo definisane procese, gde ljudi ne smeju, uopšte, da skraćuju proces. Drugi sprovode proces tražeći od ljudi da to lepo urade, obučavajući ih (i obezbeđujući rezervnu dokumentaciju), a ako to ne urade, uvek ih mogu potući posle toga! (Ili imaju oglasnu tablu sa prestupnicima pravila "nikada ne prekini izgradnju", koja je na raspolaganju svima - uspešno je za neke implementacije otvorenog koda).

Ali,u svakom razvojnom procesu, verovatno postoje neka pravila koja se moraju poštovati, ili glavni problemi koji se verovatno pojavljuju (npr. uvek gradi izdanje verzije koda iz kontrolisanih izvora).

Ako sprečavate da se izvrši proces sa podržanim alatom, onda morate da mislite šta se dešava kada su promene potrebne veoma brzo, ili ako je osoba koja je sposobna da odobri promenu stanja daleko ili je zauzeta. Šta će Vaši programeri da rade u takvoj situaciji? Da li imate proceduru za hitne slučajeve? Opasnost je u tome da, ako je proces suviše krut i birokratski, onda će programeri biti u iskušenju da naprave korak u stranu, a Vi ćete biti u goroj situaciji nego bez procesa. Ljudi zaobilaze procese koji utiču na njihovu sposobnost da isporuče svoje ciljeve.

Prema našem iskustvu, najbolja smernica je da krenete od najlakšeg procesa koji radi pouzdano i odgovara Vašim ograničenjima. Sudeći po ovome, to je balans između kulture kompanije, ljudi u timu, ličnog iskustva i ličnih preferencija.

Zašto ne dizajnirati hitno izdanje procesa i zatim proizvesti sva ostala izdanja na taj način - to olakšava programeru da prati proces, pre nego da ga zaobiđe.

Zahtevi

Pošto je definisan, ili bar postoji ideja Vašeg procesa, proces će se uklopiti u listu zahteva, kako bi Vam pomogao da smanjite potencijalne alate.

Neke kategorije zahteva su:
  • Potrebne platforme
  • Troškovi
  • Performanse
  • Pouzdanost i podrška
  • Grananje i spajanje podrške
  • Proces podrške
  • Podrška za udaljene sajtove
  • Klijent/server arhitektura
  • Ažuriranja zasnovana na transakcijama
  • Integracija sa Microsoft Developer Studio-om ili drugim IDE
  • Integracija sa drugim alatima (npr. za praćenje nedostataka)
  • Skriptabilan da omogući automatizaciju zadataka
  • GUI front end
  • Druge funkcije
  • Jednostavan za korišćenje, tako da dokumentacija i timovi za testiranje koriste proizvod
Platforme

Dok neke organizacije koriste različite alate na različitim operativnim sistemima, bolje je da budete u stanju da koristite isti alat na svim platformama sa kojima radite.

Koliko je uspešna podrška za različite platforme? Neke alatke nude GUI samo za Windows - da li je ovo problem?

Ovih dana Windows i *nix platforme pokrivaju većinu uslova, ali manje zajednička platforma, kao što je OpenVMS ili AS/400 će znatno ograničiti izbor alata (koji zaista mogu Vaš život učiniti lakšim - pošto ste odbacili alate koji to ne podržavaju.)

Troškovi

Postoje besplatni alati otvorenog koda i oni koji koštaju 6.000 dolara ili više po licenci sa mnogo drugih između. Alati otvorenog koda uključuju CVS, Subversion, i sve više distribuiranih alata kontrole verzija (DVCS) kao što su Git, Mercurial, Darcs i Bazaar.

Imajte na umu da troškovi licence nisu jedina stvar za koju treba da brinete - razmotrite troškove dodatnih modula, hardvera i druge infrastrukture koji podržavaju alat, a takođe i administrativne troškove - kako za implementaciju tako i za podršku. Oni mogu drastično varirati.

Razmislite o TCO (total cost of ownership - ukupan trošak vlasništva), i uverite se da su uključene nezavisne licence (npr. licence baze podataka).

Budite svesni da će Vas alati otvorenog koda koštati vremena i truda da bi podržali. To je vredno razmatranja u odnosu na komercijalne alate. Neke veće kompanije koriste alate otvorenog koda i onda troše novac plaćajući zaposlene da rade sa alatima i implementiraju funkcije za koje je kompanija zainteresovana. Ova vrsta modela postaje sasvim uobičajena.

Za neke organizacije, troškovi će odmah odbaciti krajnje delove alata.

U svakom slučaju, potrebno je da imate ideju Vašeg budžeta, i pažljivo istražite kako bi bili sigurni da ste identifikovali sve verovatne troškove.

Morate biti svesni budućih troškova. Čuo sam za nekoliko slučajeva, onoga što je poznato u Velikoj Britaniji kao "stiffing". Prodavac Vam daje odličnu cenu početnog skupa licenci koje ste kupili. Međutim, posle nekog vremena Vi želite ili da povećate broj licenci ili možda da nadogradite svoju ugovornu podršku. U tom trenutku prodavac puni "spisak" cena, ili Vam nudi nadogradnju samo ako pređete sa "standardne" na "enterprise" verziju po drastično većoj ceni!

Performanse

Šta je dovoljno brzo za Vašu aplikaciju? Često je potrebno da sami uradite procenu da biste se zadovoljili na ovom polju. Koliko datoteka i objekata se kopira na Vašem sistemu? Da li kontroliše nekoliko stotina ili čak hiljada fajlova? Da li su oni od nekoliko megabajta ili stotina?

Neki alati su veoma osetljivi na mrežne performanse, drugi znatno manje.

Na performanse će, takođe, uticati stvari kao što je uslov da li radite na daljinu ili preko WAN-a.

Kontrola većih web sajtova, sa stotinama hiljada stavki, je definitivno izazov za većinu SCM alata. Potrebno je da se uverite da je alat, koji želite da koristite, testiran sa količinama koje nameravate da upotrebljavate.

Pouzdanost i podrška

Subjektivna je, ali je moguće da imate osećaj pouzdanosti i podrške postavljajući pitanja na diskusionim ili korisničkim grupama.

Pogledajte i prisvojite reference kupaca, i steknite osećaj koliko su trenutni kupci zadovoljni proizvodom (to je prilično lako uraditi putem mailing liste).

Grananje i stapanje podrške

Grananje i stapanje je potrebno za stvari kao što je paralelni razvoj sa više od jednog izdanja proizvoda koje rade u isto vreme. Bez dobre podrške ovoga za Vaš alat, izgubićete mnogo programerskog vremena.

Imajte na umu da neki alati koriste grananje i stapanje za implementaciju procesa.

Postoje neki odlični resursi vezani za grananje, posebno dokument obrazaca grananja za paralelni razvoj softvera .

Proces podrške

Može se obezbediti na više načina:
  • integrisana podrška sa GUI-em za definisanje drag and drop procesa
  • proces van okvira sa opcijama za prilagođavanje
  • skriptabilan proces podrške
  • nijedan!
Onaj tip procesa podrške koji najviše volite (i za koji ste spremni da platite) treba da bude deo Vaše evaluacije.

GUI proces definicije ima određene prednosti, ako Vam je potreban proces radi implementacije, ali skriptabilan (sa puno kvakica) je najfleksibilniji (iako možda zahteva ispravljanje).

Obezbedite podršku za udaljene sajtove

Da li imate udaljene sajtove koji rade na istom izvornom kodu? Kako idu Vaši linkovi ka tim sajtovima?

Koje opcije su dostupne u alatu za podršku onoga što želite? To može da varira od dobrih performansi preko TCP/IP omogućavajući daljinski pristup centralnoj bazi održivim, pa sve do potpuno distribuiranih skladišta (po nezanemarljivoj ceni).

Klijent/server arhitektura

Sa starijim alatima, kao što je RCS, klijent program direktno manipuliše arhivom datoteka, i stoga je predmet nekonzistentnih problema, ako se recimo, klijent radne stanice sruše (ili se prekine mrežna konekcija) tokom ažuriranja.

Prave klijent/server arhitekture su manje podložne ovoj vrsti problema, iako se pouzdanost mora projektovati - pogledajte ispod ažuriranja zasnovana na transakcijama.

Svi "moderni" alati su klijent/server i ja zaista ne bih preporučivao bilo koji alat koji ne koristi ovaj model.

Ažuriranja zasnovana na transakcijama

Ovo se odnosi na klijent/server arhitekturu - neki alati nude ekvivalent transakcija baza podataka, takav da se skup izmena u spremištu u potpunosti izvrši ili ne izvrši uopšte. Potencijalno veoma korisna funkcija.

Kada pregledate prethodnu promenu u datoteci da biste saznali šta je izmenjeno i zašto, veoma je korisno da saznate šta je promenjeno u okviru iste popravke greške (proverava se kao deo iste transakcije). Pretraga preuzetih fajlova, u približno isto vreme i od strane iste osobe sa istim komentarom, je prilično teža nego što izgleda.

Integracija sa Microsoft Developer Studio-om ili drugim IDE

Koji god IDE (Integrated Development Environment) Vaši programeri koriste, idealno bi bilo da postoji integracija sa SCM alatom, tako da korisnik ne mora da izlazi da bi pokrenuo alat, nego samo da klikne desnim tasterom miša, ili šta god drugo, i proveri fajlove koji su unutra i van.

Većina alata za Windows podržava Microsoft Common Source Code Control (SCC) interfejs (preko DLL) koji u najmanju ruku obezbeđuje osnovnu integraciju.

Neki alati obezbeđuju svoje interfejse za širok spektar razvojnih alata i za različite platforme.

Microsoft je zapravo otišao korak unazad sa Visual Studio.NET-om i podrškom za SCC - performanse su mnogo češće lošije nego kod VS 6. Međutim, ovo morate da proverite vezano za alat o kom razmatrate.

Integracija sa drugim alatima

Neki alati su "all inclusive" sa svojim ugrađenim defektnim tragačem i ugrađenim sistemima upravljanja, dok drugi alati nisu.

Da li već imate rešenje defektnog tragača i da li će se alat integrisati sa njim?

Kao većina stvari, neki od integrisanih alata nisu nužno "najbolja rasa" u svojoj SCM funkcionalnosti, ali to nadoknađuju integracijom. Šta je najvažnije za Vas?

Neki drugi set alata, koje bi trebalo da uzmete u obzir, su gradivni alati za upravljanje. Kako će SCM alat raditi sa Vašim omiljenim alatom, bilo da je Make ili ne? Neki SCM alati dolaze sa svojim Make ekvivalentima koji mogu pratiti gradivne objekte uz pomoć istih izvora i kompajler prekidačima, i izbegavati reizgradnju preko mreže - potencijalno dosta štedeći vreme.

Skriptabilni

Alati koji uvek zahtevaju da pritisnete dugme na GUI-u nisu dobra ideja. Ako je skriptabilan (preko interfejsa komandne linije), možete da automatizujete više zadataka i da sakrijete detalje od ljudi kojima bi inače bila potrebna obuka za korišćenje alata (npr. testeri ili zapisničari).

Ovo je od vitalnog značaja da bi mogli da iskoristite prednost u praksi, kao što je agilan razvoj sa konstantno pridruženim građenjem i integracijom.

GUI prednji deo

Ovo se odnosi na platformska pitanja, ali većina alata ima GUI prednji deo, što je ono što većina današnjih programera koristi. Koliko je to dobro? Koliko je lako da se sa tim radi?

Jednostavnost upotrebe

Bacite pogled na web sajtove, uradite procenu i isprobajte nekoliko stvari - jedini dobar način da se sudi o lakoći upotrebe. Pobrinite se da ste ovo uključili u scenario procene.

Komercijalni

Da li je prodavac finansijski održiv i da li će biti u životu za vreme Vašeg korišćenja alata? Da li postoje planovi za alat koji se više ne razvija? Da li je prodavac verovatno preuzima cilj i koje planove za dugoročnu podršku alata ima svaki kupac?

Ostale funkcionalnosti

Razmislite o stavkama kao što su:
  • da verzije alata budu u direktorijumu (i ako vam treba ovo)
  • kako alat upravlja korisničkim dozvolama i bezbednošću
  • kako su uskladištene specifične vrste datoteka (npr. symlinks)?
Zaključak

Zai zbor SCM alata potrebno je vreme i trud, a rezultati će zavisiti od toga. Angažovanje usluga konsultanta (kao što sam ja!) može značajno pomoći u smanjenju vremena i truda i može da obezbedi da se izbegne gubljenje vremena i truda, i da se troši novac na alat koji ne zadovoljava Vaše potrebe. Za više informacija kontaktirajte nas na web@vaccaperna.co.uk .

Izvori

Svi prodavci su na Internetu - njihovi sajtovi će nastojati da Vam daju malo pristrasan stav, ali ipak sadrže puno informacija.

Sajt www.cmcrossroads.com je glavni izvor na Internetu sa aktivnim forumima i sa mnogo učesnika. Takođe, ovaj sajt je pristupna strana za Configuration Management Yellow Pages sa sveobuhvatnom listom i rezimeima prodavaca i alata, kao i CMWiki .

Pored toga, postoji niz grupa zainteresovanih za predmetne oblasti na www.linkedin.com.

Postoji izveštaj iz Ovum-a ( www.ovum.com i potraga za Configuration Management-om) koji procenjuje veliki broj proizvoda po nekoj dubini (po ceni od oko $ 2.000). Oni kažu da se u izveštaju češće nalazi primer kako da uradite procenu, nego preporuke za određene proizvode - ne kupujte ga očekujući da dobijete gotovo rešenje za Vas!

Molimo Vas pošaljite povratne informacije i komentare na ovu stranicu rc@vaccaperna.co.uk, i ona će biti poboljšana.




Published (Last edited): 15-11-2012 , source: http://www.vaccaperna.co.uk/scm/choosing_tool.html