Poznámka: články jsou již mnoho let staré, doba se posunula, mnoho věcí v nich doporučovaných je již dnes překonané - berte s rezervou!


Zkušenosti ze softwarového projektu XCase

Úvod pro neznalé

Softwarový projekt je jednou z peripetií, kterou si musí projít studenti softwarových systémů na Matematicko-fyzikální fakultě. Na rozdíl od individuální diplomové práce je cílem tohoto předmětu naučit studenty pracovat v týmu na společném díle. Tento článek je tedy věnován budoucím řešitelům projektu a případným zájemcům o studium na MFF (aby věděli, co je čeká) a v menší míře všem, kteří se chystají do programátorské práce v menším týmu.

Je třeba říci, že tato studijní povinnost vždy patřila k těm velice obávaným, protože vyžaduje opravdu hodně práce a různé prodlužování, protahování, neshody v týmech, nestíhání deadlineů a probdělé noci strávené debugováním byly vždy standardní součástí.

Po dokončení je projekt obhajován před komisí složenou z matfyzáckých celebrit a řešitelé jsou po obhajobě požádáni o sepsání postřehů a zkušeností z projektu. A to je právě to, co začínáte číst :o). Všechny zkušenosti jsou shromažďovány na stránkách projektové komise a budoucím řešitelům se doporučuje si je pročíst, aby věděli, co je čeká.

Pokud prolistujete pár zkušeností, uvidíte, že mnoho z nich je hodně negativních (řešitelé je využívají jako platformu, na které si konečně můžou postěžovat) – viz třeba David Majda nebo Johanka Doležalová. Obvykle se opakují tyto výtky:

  • projekty jsou příliš náročné, zpočátku se neodhadne množství práce, mnoho lidí si kvůli projektu prodlužovalo studium
  • chybí finanční ohodnocení (představte si, že rok pracujete zadarmo na projektu – takový poloviční úvazek to dá – a k tomu ještě máte chodit do školy a třeba ještě do další „opravdové“ práce). Některé projekty vznikají ve spolupráci s komerčními firmami, ale běžné to není
  • jsou problémy s prací v týmu – někdo z týmu se fláká, ale je už pozdě ho vyhodit (protože to by se to už vůbec nestihlo) nebo se fláká míň, ale ne zas tak moc, že by to bylo hned na vyhazov, jiné donucovací prostředky ale studenti k dispozici nemají. Dalším často zmiňovaným problémem bývá nezkušenost vedoucích s vedením týmů – „manažerským hlediskem“.

Nedávno byly softwarové projekty trochu „zlidštěny“ – mají trvat devět měsíců (dříve rok) a je za ně míň kreditů a tím pádem by měly být jednodušší.

Nyní tedy přikročím k vlastním zkušenostem s projektem XCase. Základní informace o projektu najdete zdetady je o něco detailnější popis. Tedy jen v rychlosti – XCase je něco jako UML editor a návrhář XML schémat.

Práce v týmu    

Problémy s týmovou prací – pro softwarové projekty typické (soudím podle výše zmíněných zkušeností a rozhovorů s jinými řešiteli) – se nám docela vyhnuly. Na schůzky chodili všichni a probíhaly většinou v dobré náladě (trocha stresu se přidala asi tři týdny před odevzdáním, ale nebylo to nic strašného). Nepamatuju se na žádné rozbroje, nebylo ani nutné nějak silou rozdělovat práci, vždy se někdo ujal toho, co bylo potřeba zrovna udělat, a vývoj celkem plynule postupoval. Týmová práce byla prostě bezproblémová. 

Všichni řešitelé doporučují pravidelné schůzky nejlépe každý týden – i já se přidám (my jsme se toho drželi, kromě letních prázdnin, kdy jsme neschůzovali). Párkrát se sice stalo, že nebylo moc o čem se bavit (asi dvakrát), ale v závěru se zase začínaly schůzky hodně protahovat :o).

Úloha vedoucího

Naším vedoucím byl Martin Nečaský a celý projekt byl vlastně realizací jeho disertační práce, byl tedy do projektu sám zainteresován a myslím, že se nám věnoval v nadstandardní míře – účastnil se téměř všech schůzek (i když byly brzy ráno:o)), dobře nám popsal, co se po nás vlastně chce, pomáhal nám i s rozmyšlením základní architektury návrhu. Když už program pomalu začínal něco dělat, osvědčil se i jako tester:o).

Je sice pravda, že před zahájením projektu nám nasliboval, že i programovat s námi bude, od čehož pak ustoupil, ale i bez toho nám hodně pomáhal.

Použité nástroje

Vyvíjeli jsme v C#, .NETu 3.5 a WPF. Aplikace je desktopová, nemultithreadová, nedistribuovaná, z pohledu vývoje a ladění tedy ideální. Občas byly problémy s WPF designérem ve Visual Studiu, něco se zlepšilo se Service Packem Visual Studia a .NET frameworku, přesto ale tahle část Visual Studia není ještě úplně odladěná. Ale mě přišlo, že se s tím pracovat dá, i když kolega Jakub Klímek měl právě s designérem mnohem větší problémy (v pozdějších fázích mu skoro ani nešel otevřít).

Větší problém byl s repository – nakonec jsme skončili na veřejném CodePlexu, který bohužel není nejrychlejší. Tam jsme se ale přemístili až po dlouhých peripetiích s Team Foundation Serverem nainstalovaným na malostranském serveru edgar.ms.mff.cuni.cz. Připojit se na tento server z kolejní sítě bylo totiž téměř nemožné (mě se to nepovedlo ani jednou, Katce Opočenské prý párkrát ano, ale pak už vůbec). Snažili jsme se to řešit jak se správou kolejní sítě, tak s administrátory malostranské sítě a Team Foundation Serveru, ale jedni nás vždy odkázali na ty druhé s tím, že jejich problém to není (správci KolejNETu také prohlašovali, že problém je na našich stanicích – přitom připojit se z domova a z práce s tím samým notebookem nebyl problém).

Po přechodu na CodePlex jsme tedy měli repository + issue tracker (nahlašovadlo chyb), pro emailovou komunikaci jsme používali Google Groups

Testování

Vytvářet testy během vývoje by bylo bývalo určitě dobré – jenže my jsme to po většinu doby nedělali. Ne, že bychom byli přímo líní, ale nepodařilo se nám nalézt žádný testovací framework pro desktopovou aplikaci používající WPF – a přitom bychom potřebovali hlavně „testovat GUI“. Nakonec jsme měli tedy jen jakýsi minimalistický framework pro testování modulu provádějící překlad XML schémat. Ale toho, že nám chybí testy pro GUI, jsem litoval mnohokrát. WPF je docela mladá technologie, věřím, že se nějaký framework na testování brzy objeví a další řešitelé ho budou moci použít.

Nějaká doporučení

  • často schůzujte, i když se vám podaří rozdělit práci mezi členy týmu tak, aby si moc nelezli do zelí (u nás to šlo), ostatní členové vás mnohdy upozorní na něco, co vás samotné nenapadlo, a přitom se vás to týká
  • bez repository, issue trackeru, mailové konference to dobře nepůjde. Někdo doporučuje i wiki, ale my jsme se bez ní obešli docela dobře.
  • týden na dokumentaci je málo. To jsme věděli, ale přesto jsme tak taky dopadli – ale naštěstí jsme ten týden dokumentaci mohli věnovat (už bylo naprogramováno a odladěno, až na pár drobností) a uživatelská dokumentace už byla hotová, ten poslední týden byl jen na programátorskou. I tak to ale bylo dost nakvap.
  • snažte se mít testy, nám chyběly
  • snažte se mít i živé testery, my měli jen pana vedoucího;-) (a v závěru ještě Láďu, ale to už bylo skoro po boji…)
  • agilní přístup může fungovat docela dobře, některé projekty nepotřebují nutně několik měsíců analýz (samozřejmě ne všechny) 
  • office (nebo openoffice) není nic, za co by se měl programátor stydět – tištěnou dokumentaci jsme psali ve Wordu, a kdybychom se měli patlat s LaTeXem, tak ji asi píšeme dodnes. Exportovat do PDF se to dá, tak co. Pokud je v týmu alespoň jeden, který LaTeX neumí, vůbec bych o něm neuvažoval (u nás naštěstí tenhle návrh nepadl).

Závěrem

I po výše zmíněném „zlehčení“ softwarový projekt není žádná dávačka a člověk se docela nadře. I tak ale byla skutečnost o dost příznivější, než jsem se obával po přečtení a vyzvědění zkušeností ostatních řešitelů. 

Třeba takové OSy (pro nematfyzáky: předmět Operační systémy, součástí absolvování je napsat ve třech lidech operační systém) byly pro mě po všech stránkách horší – zoufalství a stres z deadlineů a z nefungujícího kódu, problémy s používanými nástroji, nefungující tým, obsazení veškerého času… to mě stálo víc šedivých vlasů, než projekt. Děkuju zbytku týmu, dobře to dopadlo!

 
Vložit komentář:
 

 



 

 

Nepoužívejte žádné html ani texy značky, odřádkování se zachová. Pokud uvádíte zdrojový kód, můžete ho vložit mezi značky
<syntax jazyk="PHP">...</syntax>,
bude potom zformátován. Jako atribut můžete uvést PHP, C#, HTML, CSS a mnoho dalších.


opiste cislo Opište číslo:

 

21.1.2009 14:35:00
[1] (Kateřina Opočenská (opocenska(at)gmail.com))
Ano odpovědět
Téměř bezvýhradně se vším souhlasím (až jsem z toho sama překvapená). Krásně jsi to napsal. XCase forever.
27.1.2009 16:23:54
[2] (Vladimír Dědek (vladimir.dedek(at)starec.eu)) www
Fajn článek odpovědět
Díky za článek, rád si přečtu zkušenosti někoho, kdo softwarákem prošel. Teď zrovna na softw. dělám, takže jakékoliv rady a tipy se hodí.
28.8.2011 6:14:28
[3] (OgQQoWJGwUl (gusg(at)alta.com)) www
mrTiGHbwABdjBPPEy odpovědět
I was really confused, and this answered all my qusetinos.
28.8.2011 16:50:53
[4] (RZMVdQlIlGMtl (kytgau(at)tqwsak.com)) www
valkJIKD odpovědět
jwvf1B <a href="http://fmajwnrkehxl.com/">fmajwnrkehxl</a>
29.8.2011 11:06:11
[5] (ttqdsUCebG (yycjdg(at)imdusd.com)) www
GpLGWkeITGsnUul odpovědět
v1M9ED , [url=http://ydywmrfwubub.com/]ydywmrfwubub[/url], [link=http://jvocuexudngy.com/]jvocuexudngy[/link], http://xvmwmycryuqi.com/
30.8.2011 1:38:09
[6] (gbYsXezFfdAu (hachiminekasetu(at)woody.ocn.ne.jp)) www
HbFmfTAUlAYmq odpovědět
valtrex :PPP lexapro and diet pill vpfjve
13.9.2011 3:03:40
[7] (GRXSHoQnFqlSFlGE (chiefpilot(at)airwhitsunday.com.au)) www
jbZDDcUTptxr odpovědět
herpes valtrex buy %]] taking lexapro with tramadol pllrah
20.9.2011 3:50:53
[8] (MJZDZNetUnzDpa (info(at)izumu.jp)) www
kijfnyvyjhOHdM odpovědět
valtrex mzuor lexapro on line buy usa uanq
21.3.2012 6:41:11
[9] (Monika (xiaoliuquan(at)yahoo.com)) www
cheap handbags odpovědět
I like it, I learned something today! Thanks!
21.3.2012 6:42:08
[10] (maolizi) www
rolex replica odpovědět
Great post!! Keep up the good work, I´m sure someday soon, someone will be doing an Ada Lovelace post about you!
21.3.2012 6:45:45
[11] (Jorey) www
replica watches uk odpovědět
I just want to thank to share your information and your website or blog, this is a simple and yet useful.
21.3.2012 6:46:28
[12] (Miran) www
prada bags odpovědět
Very Useful information , this is both good reading for, have quite a few good key points, and I learn some new stuff from it too, thanks for sharing your information.
22.5.2012 10:46:49
[13] (cheap world of warcraft gold (cibosalipca(at)yahoo.no)) www
WoW Items odpovědět
There are too many good things in our site of <a href="http://www.zzwow.com/">world of warcraft gold for sale</a> , such as the <a href="http://www.teragold4sale.com">Buy Cheap Tera Gold</a> . Hope our site of can help you know more.
12.6.2012 15:11:34
[14] (Charles (Charles5270(at)yahoo.com)) www
longchamp outlet odpovědět
The site was so nice, I found out about a lot of great things. I like the way you make your blog posts.
23.7.2012 11:12:11
[15] (Hairstyle (Hairstyle(at)yahoo.com)) www
Hair extensions odpovědět
Thanks for sharing your article. I really enjoyed it.
22.10.2012 4:06:35
[16] (longchamp outlet (lilyv2012(at)yahoo.com)) www
longchamp handbags odpovědět
I just added this blog site to my google reader, excellent stuff. Cannot get enough!
25.11.2012 2:46:30
[17] (Veena Kamath (veenakamath(at)yahoo.com)) www
longchamp odpovědět
I would like to say that this blog really convinced me to do it! Thanks, very good post.
 

TOPlist