Abstrakt. Skoro každý softvérový projekt je niečím jedinečný. Poznatky získané z jeho vývoja sa ťažko aplikujú na iné softvérové projekty. Napriek tomu sú určité faktory, ktoré pri tvorbe softvérového projektu zohrávajú kladnú alebo naopak zápornú úlohu. Dnešnú dobu charakterizuje stále sa zrýchľujúci proces vývoja softvérových projektov. Preto je priam nevyhnutné, aby sme v tomto procese využívali poznatky z analýzy príčin úspechu a neúspechu softvérových projektov vytvorených v minulosti. Manažment projektu by mal ovládať tieto poznatky a intuitívne sa podľa nich riadiť. Aké sú príčiny, ktoré vedú k úspechu alebo neúspechu softvérového projektu? Následkom akých rozhodnutí manažmentu projektu sú tieto príčiny? Čím lepšie budeme schopní odpovedať na tieto a podobné otázky, tým úspešnejšie budeme vedieť vytvárať softvérové projekty. V eseji sa snažím zachytiť, ale najmä analyzovať tieto príčiny. Vychádzam pritom z prieskumu, ktorý sa zaoberal úspešnosťou softvérových projektov.

Abstrakt. Vývoj softvéru je dlhý a náročný proces. Pre komerčný vývoj softvéru boli vyvinuté rôzne metódy, ktoré majú za úlohu zvyšovanie efektivity vývojárov a manažérov a znižovanie nákladov potrebných na vývoj softvérového produktu. Postupom času sa vykryštalizovali rôzne metódy vývoja aj v nekomerčnej sfére. Prekvapením môže byť, že niektoré metódy používané Open-Source komunitami (nekomerčná sféra) sú časovo efektívnejšie, ľahšie manažovateľné a menej náchylné na chyby ako mnohé komerčne využívané metódy. Ich použitie však nie je vôbec limitované na nekomerčnú sféru. V tejto práci sú porovnané najpoužívanejšia metódu nekomerčnej sféry s metódami komerčnej sféry z hľadiska manažovateľnosti, efektivity a celkovej použiteľnosti.

Abstrakt. Či už chceme alebo nie, chyby sú neoddeliteľnou súčasťou softvéru. Preto sa zamyslíme nad príčinou vzniku týchto chýb a nad možnosťami ako im predchádzať. Spomenieme niektoré metódy manažmentu kvality softvéru, napr. inšpekciu alebo normy rodiny ISO 9000. Zamyslíme sa aj nad mierou, do akej sú softvérové spoločnosti zodpovedné za chyby vo svojich softvérových produktoch a do akej miery je im možné pripisovať právnu zodpovednosť za prípadné škody. Pritom vezmeme do úvahy aj druhú stranu mince, t.j. zlomyseľné kódy, ktoré sa úmyselne snažia o spôsobovanie škôd, najmä využívaním bezpečnostných slabín v softvéri. Na záver si stručne predstavíme základné koncepty bezpečného operačného systému EROS a zamyslíme sa nad jeho nasadením do reálnej prevádzky.

Zdroj. Cynthia F. Cohen, Stanley J. Birkin, Monica J. Garfield, Harold W. Webb: Managing Conflict in Software Testing

Abstrakt. Konflikty sú bežnou súčasťou ľudského života a nevyhýbajú sa ani softvérovým projektom. Najčastejším dôvodom konfliktu býva nedostatok nejakých zdrojov. Uvedené sú najčastejšie zdroje konfliktov medzi členmi vývojárskych tímov spolu s potrebným pozadím. Rozobraté sú konflikty z rôznych pohľadov, vplyvy pracovného prostredia na atmosféru a vzťahy v tíme. Práca obsahuje informácie o agilných metódach vývoja softvéru, z ktorých priamo alebo nepriamo vyplývajú možnosti a potreby testovania, a s nimi súvisiace prístupy a opatrenia na riešenie konfliktu. Spomenuté sú odporúčané manažérske prístupy k riešeniu konfliktov v štandardných aj agilných softvérových procesoch.

Zdroj. Donald J. Reifer: Seven Hot Outsourcing Practices

Abstrakt. Táto práca opisuje outsourcing z pohľadu manažmentu v oblasti IT. Rozoberá problematiku outsourcingu od vzniku až po zánik celého tohto procesu. Takmer vo všetkých odvetviach prevláda požiadavka na znižovanie nákladov. Personálne náklady sú jednými z najvyšších nákladov spoločností a preto je outsourcing v dnešnej dobe stále viac a viac diskutovanou témou. V tejto práci sa venujem predovšetkým problematike určenia biznis procesov, ktoré je potrebné alebo vhodné outsourcovať. Dôraz je však kladený aj na prostredie softvérových spoločností. Ide hlavne o outsourcing procesov súvisiacich s vývojom informačných systémov. Tu sa venujem problematike outsourcingu jednotlivých etáp vývoja softvéru ako aj "zapožičiavaniu" zamestnancov na tieto činnosti od iných firiem. Jednotlivé procesy sú zaradené do dvoch kategórií podľa priority na outsourcing. Tieto skupiny sú podrobne opísané a vysvetlené ich výhody a nevýhody súvisiace s outsourcingom konkrétnych procesov z týchto skupín.

Zdroj. Phillip G. Armour: Beware of counting LOC

Abstrakt. V súčasnosti sa metóda počítania riadkov zdrojového kódu bežne používa na odhadovanie času (najčastejšie v jednotke človeko-mesiace) potrebného na úspešné dokončenie projektu. Taktiež sa využíva na meranie efektivity práce programátora alebo tímu. V tejto práci opisujem rôzne pohľady na počítanie riadkov zdrojového kódu. Zameriavam sa hlavne na problémy spojené s používaním tejto metódy v spomenutých dvoch oblastiach a podrobnejšie rozoberám rôzne prístupy k počítaniu týchto riadkov. Podávam náčrt alternatívnych možností merania produktivity. Každá metóda má nejaké nedostatky a preto je mojim cieľom v tejto práci popísať spôsob, akým sa dá táto metóda používať vzhľadom na jej nedostatky.

Zdroj. Phillip G. Armour: The unconscious art of software testing

Abstrakt. Testovanie je dôležitou fázou v etape vývoja softvéru. V tejto eseji opíšem vplyv ľudského podvedomia pri testovaní. Rozoberiem rozdiel medzi testovaním a inšpekciou, kedy a ako ich použiť. Už definícia procesu testovania býva často krát nesprávna, preto sa na tento pojem pozriem bližšie. Pri testovaní je vhodné dodržiavať určité princípy, ktoré sú vodítkom pre dosiahnutie požadovaných výsledkov. V článku ich popíšem podrobnejšie. Ďalej sa zameriam na roly v tíme testerov a ich zodpovednosť. Taktiež opíšem vhodnosť oddelenia vývojového a testovacieho prostredia

Zdroj. Kevin C. Desouza, J. Roberto Evaristo: Managing Knovledge in Distributed Projects

Abstrakt. Práca rozoberá a analyzuje rôzne možné prístupy k uchovávaniu a zdieľaniu informácií, ktoré boli nadobudnuté počas riešenia rôznych na sebe viac či menej závislých projektov, riešených v distribuovanom prostredí. Tieto informácie kategorizuje a na nich popisuje klady a zápory jednotlivých prístupov. Na záver popisuje reálne systémy, ktoré implementujú uvedené prístupy.

Zdroj. Neville Holmes: Data and Information as Property

Abstrakt. Softvér je moderným typom majetku v dnešnej, na vlastnícke vzťahy citlivej, spoločnosti. Rozvoj ľudskej spoločnosti bol odpradávna ovplyvnený zdieľaním informácií rôzneho druhu. Nerovnomerným rozširovaním informácií sa ľudia, ktorí sú vlastníkmi informácie, dostávajú do výhody oproti ostatným, ktorí informáciou nedisponujú. Aj takto teda vznikajú rozdiely medzi ľuďmi. Niet ľahšieho spôsobu rozširovania informácií, ako je to v prípade softvéru. Priam magické slovo "kopírovať" je možné nájsť v každom operačnom systéme, v životnom prostredí pre softvér. Je samozrejmé, že ten kto vlastní softvér sa dostáva do výhody oproti ostatným, ktorí ho nemajú. Avšak do väčšej nevýhody sa dostáva autor, ktorý sa živí tvorbou softvéru, keď je jeho dielo voľne, resp. nelegálne rozširované. V tejto eseji sa budem venovať myšlienkam, aký je to vlastne nelegálny softvér, kedy, ako a prečo sa zdieľanie softvéru stáva nelegálnym a aký to má vplyv na softvérové inžinierstvo a na softvérového inžiniera.

Autor. Marek Fučila
Zdroj. Peter Middleton, Ho Woo Lee and Shahrukh A. Irani: Why Culling Software Colleagues Is Popular

Abstrakt. Ak sa v konkurenčnom prostredí prestáva spoločnosti dariť a chce sa udržať na trhu, musí znižovať náklady. Spravidla dochádza k veľkému prepúšťaniu zamestnancov. Takéto riešenie je však nepopulárne a navyše skúsenosti ukazujú, že zamestnanci sú aj po ozdravnom procese schopní identifikovať slabších spolupracovníkov, ktorí ich brzdia.
Táto esej sa venuje systematickému prístupu k výmene zamestnancov. Takýto prístup uplatňujú s rôznymi obmenami napríklad v spoločnostiach General Electric, Toyota či Microsoft. Ide vlastne o vyraďovanie najslabších zamestnancov na základe hodnotenia ich výkonov. Vychádza sa z výskumov, ktoré ukazujú, že sú až priepastné rozdiely v efektivite práce jednotlivcov, a preto je vhodné sa zbavovať najslabších pracovníkov postupne. Najlepších zamestnancov je možné vhodne motivovať, a tak sa každý rok zvyšuje efektivita práce danej organizácie.
Problémom stratégie je hlavne otázka korektnej klasifikácie zamestnancov. Väčšie softvérové spoločnosti totiž tvoria tímy vedené rôznymi manažérmi s rôznymi kritériami hodnotenia, pričom nie je ľahké dosiahnuť konzistenciu. Niektorí schopní vývojári môžu mať nižšiu produktivitu práce napríklad kvôli zlej organizácii.

Zdroj. Ioannis Samoladas, Ioannis Stamelos, Lefteris Angelis and Apostolos Oikonomou: Open Source Software Development Should Strive for even greater code maintainability

Abstrakt. Cieľom tejto eseje je poukázať na udržovateľnosť softvérových produktov a faktory vplývajúce na udržovateľnosť softvéru. Porovnáva sa udržovateľnosť medzi softvérom s otovreným zdrojovým kódom a softvérom s uzavretým zdrojovým kódom. Analyzujú sa možnosti merať udržovateľnosť, existujúce metriky, kompozitné metriky. Hodnotia sa vykonané merania v reálnych softvéroch v tejto oblasti.

Zdroj. Linda Wallace, Mark Keil: Software Project Risks and Their Effect on Outcomes

Abstrakt. Predkladaný dokument sa zaoberá rôznymi pohľadmi na analýzu rizík v softvérových projektoch a ich účinok na výsledky samotného produktu ako aj procesu jeho tvorby. Text vysvetľuje kategorizáciu rizík na základe predpokladanej závažnosti rizikových faktorov a očakávaných možnostiach ich riadenia zo strany manažéra. Podľa týchto kritérií sú rozobrané vplyvy jednotlivých skupín rizík na výsledky projektu a ich vzájomné interakcie. Podceňovanie riadenia rizík pri vývoji softvérového projektu je častým dôvodom jeho zlyhania. Článok poukazuje na základné aspekty dôležitosti riadenia rizík. Jedna kapitola je venovaná analýze rizík tímového projektu September Project Partnership. Sú identifikované riziká, ktoré projekt ovplyvnili, analýza ich dopadu a spôsoby riešenia. Záver textu sa venuje stručnému popisu metód analýzy rizík, ako sú "RIPRAN", rozhodovací strom, DELPHI.

Zdroj. Steve Sawyer: Software Development Teams

Abstrakt. Vývoj softvéru je zložitý proces, ktorého úspech záleží od viacerých aspektov. V technickej rovine sú to použité technológie, nástroje a metodológia, na druhej strane spôsob organizácie tímu a komunikácie medzi jednotlivými členmi. Cieľom tejto eseje je prezentovať základné typy organizácie tímov, ich výhody, nevýhody a vhodnosť pre jednotlivé metodológie. Na záver uvádzam vlastné skúsenosti z pôsobenia v jednom tíme.

Abstrakt. V posledných štyridsiatich rokoch sa techniky, metódy a procesy dodávky softvéru zameriavali najmä na dodávateľa softvéru. No s posunom požiadaviek trhu na čas, funkcionalitu a flexibilitu, je potrebný posun aj v oblasti dodávky softvéru a to smerom k zákazníkovi. Evolúcia dodávateľských prístupov v softvérovom inžinierstve spôsobuje posun od dodávky softvéru ako tovaru, k dodávke softvérových služieb. Je zaujímavé sledovať vývoj dodávateľských vzťahov ako súčasť tejto evolúcie. Nemožno však zabúdať na široko rozšírený spôsob dodávky založený na využití generického softvéru, prípadne na vývoj softvéru na zákazku. Nové prístupy k dodávke softvéru, vytvárané s ohľadom na otvorený trh, prinášajú okrem zmeny organizácie dodávateľských vzťahov aj nové požiadavky na ich kvantitu. Súčasťou nových prístupov sú plne automa-tizované vzťahy pre koncového zákazníka ako v oblasti vývoja softvéru a komunikácie, tak aj v oblasti obchodu. Plne automatizované vzťahy znamenajú nielen prínos pre skvalitnenie vzťahov v procese dodávky softvéru, ale v kone-čnom dôsledku umožňujú zrýchliť dodávkový cyklus a evolúciu. Naopak klasické prístupy sú zaujímavé z pohľadu sily vzťahov a vzájomného poznania sa obchod-ných partnerov. Silný vzťah má stále svoje opodstatnenie vo vzájomnej dôvere, zdieľaní informácií, ktoré umožňujú znížiť riziko spojené s dodávkou softvéru.

Zdroj. Vikram Sethi, Ruth C. King, James Campbell Quick: What causes stress in information system professionals?

Abstrakt. Problém stresu na pracovisku nie je nový jav medzi IT odborníkmi, ale jeho negatívne vplyvy sa začínajú objavovať vo veľkej miere až teraz ako následok rýchlych zmien a prísneho štýlu manažmentu poslednej dekáde. Tieto vplyvy pôsobia nielen na jednotlivca, ale tiež na organizáciu, preto bola nutná identifikácia základných princípov optimálnej stratégie manažmentu stresu. Navrhnutie takej stratégie vyžaduje spoznanie a hlbokú analýzu zdrojov stresu, ktoré treba eliminovať. Veľa takých zdrojov stresu existuje, ktorých intenzita závisí od značného počtu faktorov, preto je implementácia manažmentu stresu náročný proces. Hlavným cieľom tohto článku je uvedenie základných kategórií týchto zdrojov a faktorov.

Zdroj. I. Robert Chiang, Vijay S. Mookerjee: Improving Software Team Productivity

Abstrakt. V posledných niekoľkých desiatkach rokov došlo k rozsiahlemu rozvoju informačných technológií. Zatiaľ čo výkonnosť hardvéru a kapacita sietí urobila pôsobivo dlhé kroky pomocou automatizácie výroby a technologickou inováciou, vývoj softvéru sa nezlepšil na rádovo rovnakej úrovni. Následkom toho softvérové komponenty informačných systémov chronicky zapríčiňujú meškanie projektov, prekročenie nákladov a nespokojnosť zákazníkov.
Je všeobecne uznávané, že zlepšenie produktivity vývoja softvéru požaduje rovnomerný prístup k trojici pilierov softvérového manažmentu: technológia, ľudia, proces.
Existuje niekoľko prístupov koordinácie problémov pri vývoji softvérových systémov. Opíšeme tri súčasné prístupy, ktoré sa používajú: veľký tresk, častá integrácia a periodická synchronizácia, a závadami-poháňaný prístup. Prístupy sa líšia v rozdielnom načasovaní a intenzite koordinácie. Taktiež sa budeme venovať faktorom, ktoré ovplyvňujú intenzitu koordinácie. Tieto sme zoradili do štyroch skupín: projekt, tím, systém, technológia.
Ďalej si opíšeme efekt učenia sa tímu a povieme si niečo o fenoméne mýtického človeko mesiaca, softvérových charakteristikách systému, technológiách a nástrojoch.
Na záver si spomenieme niečo o ekonomike a manažmente počas vývoji softvérových systémov.

Manažment v softvérovom inžinierstve Zborník esejí