98 % zakázek neúspěšných? Ještě že máme softwarové inženýrství!

Diskuze čtenářů k článku

Petr Paleta  |  27. 02. 2002 09:53  | 

Konečně velmi zajímavý a aktuální článek, uvidíme, jak bude pokračovat. Dovolil bych si však protestovat proti tvrzení:  

průměrný nárůst 10–30 řádek programového kódu na programátora a den

Chápu, že autor chtěl článek trochu zatraktivnit, a proto uvedl tento blíže nespecifikovatelný výrok - není řečeno kdo se počítal za programátora (pravděpodobně se myslí člen vývojového týmu), jaká doba a jaké činnosti se do celkového součtu počítaly, jaký jazyk a programovací prostředí bylo použito (v C je 30 řádek vyvolání jedné COMové funkce) a ve které to bylo době (dnes jsou vývojové nástroje efektivnější než před lety, takže programátoři napíší mnohem více funkčnosti, často však na méně řádků). Dovolím si tvrdit, že firma, která by dělala 10-30 řádek na programátora, by mohla přežít jenom pokud by dělala státní zakázky

Další věc, která možná chybí, je, že na vzniku praktik softwarového inženýrství měla IBM jako tehdy fakticky jediný významný dodavatel počítačů, u kterých se popisované problémy začaly objevovat (známé řady 360 a 370). Tehdy rozpracované praktiky mají smysli i dnes, a máloco v našem oboru přežije takovou dobu. Vzhledem k tehdejšímu způsobu vývoje (děrné štítky atd.) byly metodiky nesmírně důležité.

A nakonec bych chtěl dvěma tvrzeními trochu zlehčit "vědeckost" článku:

1. Softwarové inženýrství je v podstatě o tom, jak efektivně vyvinout software, pokud se vývojový tým nevejde do jedné místnosti.

2. Pro běžné vývojáře není softwarové inženýrství složitá věda, ale soubor celkem jednoduchých pravidel, která musí dodržovat, i když se jim vůbec nechce, aby dostali aspoň nějaké prémie  

Myslím, že by bylo dobré, aby se další pokračování zabývala těmito pravidly, a ne nějakým teoretizováním, jak mají občas ve zvyku akademici (a dokáží tak studentům SWEng totálně znechutit)

 

 

 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Mara  |  27. 02. 2002 10:08  | 

Co se tyce vyroku 30 radek na programatora za den tak s tim souhlasim, protoze, jak si myslim, se nejedna o kod "namydleny", ale o kod, ktery je odladeny a plne funkcni. Jestli programujete, tak urcite vite, kolikrat se vracite k jiz napsanemu kodu a kolik zmen je potreba udelat, nez to facha, tak jak ma. Pokud napisete kod takovy, ze je plne funkcni, tak klobouk dolu, to jste machr . Jo, a navic predpokladam, ze tech 30 radek je bez komentare

Jinak pane Kadlec, vyborny clanek.

 

 

Souhlasím  |  Nesouhlasím  |  Odpovědět
mkobylan  |  27. 02. 2002 11:19  | 

Chcel som aj ja protestovat, ale ked som si spocital riadky a podelil dvomi tyzdnami, ked som v nadseni doprogramoval titulky do VirtualDubu, tak to naozaj vychadza maximalne 50 riadkov na den. Ono sa to totiz rata aj s tym, ze sa dva dni snazim odladit jednu funkciu a ked sa na treti den zamyslim, tak ju bez milosti zmazem a napisem dve mensie a funkcne!
Este ale pridam moj nazor na to, ze analytik je dolezitejsi ako vyvojar: programatori zvacsa patria medzi tych inteligentejsich ludi (napr. velky Zdeno Jašek), takze kazdy "skutocny programator" by mal v sebe mat schopnost pisat kod a aj rozmyslat ako spolu jednotlive casti kodu suvisia. Jedine ak by programator dostaval prototypy elementarnych funkcii, ktore ma implementovat, mohol by vynechat pracu analytika. Lenze aj dnes programator dostane naprogramovat cely modul s potrebnymi vstupmi a vystupmi a to ako si to vnutri rozvrhne je len jeho vec. Vtedy sa ukaze, ci je programator (vysledkom je trieda alebo aj viac) alebo len koder (jedna velka funkcia a par dvojriadkovych).

Souhlasím  |  Nesouhlasím  |  Odpovědět
veľký Zdeno Jašek  |  27. 02. 2002 12:52  | 

No ja ti dám. Programovanie je činnosť, ktorú na západe bežne vykonávajú ľudia so stredoškolským vzdelaním. Na analýzu treba vyššiu inteligenciu, na programovanie nie. Programátor len dostane pokyny čo a ako má naprogramovať a on to urobí. Fáza analýzy nemôže byť nikdy vynechaná, môže byť len odfláknutá. Fázu analýzy niektorí programátori obchádzajú tak, že urobia prvú nie príliš vydarenú verziu svojho softvéru a potom to naprogramujú odznova "naozaj". Takže analýzu je potrebné vykonať vždy a od úrovne analýzy veľmi podstatnou mierou závisí aj úspech projektu. Samozrejme, funkciu analytika môže vykonávať aj programátor, rovnako ako môže programátor aj vynášať smeti. V oboch prípadoch však ide o kumuláciu funkcií. Analýza pre každý softvér je nevyhnutná fáza a doteraz u nás stále nedocenená a podceňovaná. Výsledkom je veľa neúspešných projektov.

Souhlasím  |  Nesouhlasím  |  Odpovědět
mkobylan  |  27. 02. 2002 13:45  | 

Ide len o slovicka, pre mna je pojem "programator" komplexnou osobnostou, pre teba iba koder.
Analyza moze zostat nedocenovana! (Mam na mysli zamestnanie jedneho cloveka navyse, ktoremu sa hovori analytik a ktory nerobi nic ine.) Problem neuspesnych projektov zostane navzdy (!), ked sa pri prijimani do zamestnania nadalej budu pytat "ake technologie ovladate" a "na kolkych projektoch ste pracovali" a ked sa to budu pytat personalisti, ktori nikdy neprogramovali a maju iba znalosti psychologie. Ja keby som vyberal clenov svojho tymu, dal by som im naprogramovat maly projekt na par dni. A z kodu je hned vidno, ci je to koder alebo ma aj analyticke schopnosti. Teda pri prijimani do prace musi clovek prejst dvoma filtrami psychologickym a odbornym. Ten odborny je problem, pretoze to robi veduci tymu, ktory je veducim pre svoje psychologicke schopnosti a zvacsa teda nedoceni (lebo nema) odborne schopnosti.  Bohuzial spomenuty system hura pouziva mnoho ludi pracujucich ako programatori, ktori sa k pocitacom dostali cez hry, internet a podobne...
To som tomu dal... Zdeno je posledne 2 dni mojim sefom...

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petr Paleta  |  27. 02. 2002 14:03  | 

Softwarové firmy na západě to dělají tak, že zadají uchazečům písemný test. My to děláme podobně. Každému doporučuji, protože i na základě krátkého testu je hodně poznat, a stalo se mi, že člověk, kterého bych na základě pohovoru přijal, nenapsal v testu ani řádku (!). Samozřejmě ani test není samospasitelný, ale je to hodně dobré síto, protože nechat uchazeče programovat několik dní, na to je čas až ve zkušební době. 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Jindra Hucek  |  28. 02. 2002 18:34  | 

Přesně, chtěl jsem původně reagovat na názor pana mkobylan, na který jste reagoval vy, ale udělal jste to za mne. Jen bych dodal, že bych chtěl vidět, kdo by byl ochotný se nechat jen tak (bez platu) testovat několik dní. Chtěl bych vidět toho, kdo by se pak několik dní věnoval vyhodnocení, protože to musí být také slušný odborník, aby vůbec byl schopen něco hodnotit. To by firmu mohl nábor pár programátorů stát celkem pěkné peníze. Další co mi život v IT ukázal je, že jen málo lidí je schopné udělat dobrou analýzu a zároveň dobře programovat. Zároveň musím říct, že vzdálenost zákazník-analytik je mnohdy o hodně menší než analytik-programátor. Možná máte jiné zkušenosti, ale já pracuji v IT firmách s cca 200 - 400 lidmi již asi 10 let a za tu dobu jsem se potkal se desítkami jak analytiků, tak programátorů.

Jindra Hucek

Souhlasím  |  Nesouhlasím  |  Odpovědět
ondrej  |  27. 02. 2002 19:26  | 


Bohuzial spomenuty system hura pouziva mnoho ludi pracujucich ako programatori, ktori sa k pocitacom dostali cez hry, internet a podobne...

No a co jako, ze se k programovani dostali pres hry ?? Pres co by se k tomu mel clovek podle tebe dostat ?

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petr Paleta  |  27. 02. 2002 13:53  | 

Programovanie je činnosť, ktorú na západe bežne vykonávajú ľudia so stredoškolským vzdelaním

Možná na divokém západě. Zkuste jako středoškolák získat místo programátora u Microsoftu.

Ono asi záleží, co se pod pojmem programátor myslí. Pokud je to šmoula na firemním IT oddělení, který dělá nějaké reporty, intranetové výstupy a podobně, a říká se mu programátor, tak to tak je (podle mých zkušeností ale hlavně u nás, na západě jsem se s tím nesetkal - ale to může být výběrový efekt). V softwarových firmách jde většinou o lidi s vysokoškolským vzděláním. Ale ti si také oficiálně neříkají programátoři, ale developers (vývojáři) nebo softwaroví inženýři. A jejich platy jsou většinou na špičce i mezi vysokoškolskými profesemi. Znám několik lidí, kteří dělali "programátora" v Microsoftu a po nějakých deseti letech, když třeba založili rodinu, tak šli na práci méně náročnou a méně placenou - třeba dělat managera produktu, který předtím vyvíjeli.

Je to způsobeno i tím, že dnešní vývojové nástroje jsou na vyšší logické úrovni než dříve, takže "programátoři" dělají velkou část práce kterou dříve dělali "analytici", to znamená třeba datové modelování, definování interfejsů atd. Samotná profese "analytika" je podle mých pozorování na ústupu, málo kdo to má dnes na vizitce. Ten, kdo formuluje se zákazníkem zadání, to je zpravidla "konzultant", a kdo jej řeší, je "vývojář".

 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Unix Daemon  |  27. 02. 2002 17:22  | 

Tak to si pis, ze v Amerike robi programatora hodne ludi so stredoskolskym vzdelanim, popripade s nejakym rekvalifikacnym kurzom z college. Povedal by som, ze o dost viac ako v Europe alebo priamo na Slovensku. Ludia s tymto vzdelanim v pohode zozenu pracovny flek, trebars aj u Microsoftu. Nechapem, preco si myslis, ze velke koncerny typu Microsoft najimaju len tych najlepsich programatorov. Tam sa uzivi hodne "juniorov", az by si sa nestacil cudovat. Ked ma clovek univerzitu a je dobry, moze to potiahnut aj dalej, trebars na veduceho vyvoja apod. Niekedy vsak ani vzdelanie nepomoze, ked napr. nad Tebou sedi nejaky "rekvalifikovany mutant a lego builder v jednej osobe", ktory nastupil do zamestnania skor ako Ty je kamarat so sefom (CEO) firmy. Vtedy Ta spasi len zmena zamestnania

Souhlasím  |  Nesouhlasím  |  Odpovědět
Mara  |  27. 02. 2002 18:55  | 

Ad "rekvalifikovany mutant a lego builder v jednej osobe" - tak tohle jsem zazil na vlastni kuzi tady v Cechach - sef vyvoje arogantni dement trpici sebeklamem naproste dokonalosti typu vsechno vim a vsechno znam nejlip - vyborny kamarad reditele spolecnosti, navic si taha do tymu dalsi svoje kamarady, taky zkrachovale programatorske existence. Analyza je pro nej naprosto nezajimavy pojem a dulzeity je proste co nejdrive namydlit kod, hlavne at to je, ze to pada, je to pomaly a neda se to znova pouzit, je vedlejsi. Resenim bylo, presne jak uvadis, zmena zamestnani....

Souhlasím  |  Nesouhlasím  |  Odpovědět
Unix Daemon  |  27. 02. 2002 20:05  | 

Pocuj velky... Tebe sa zjavne pletu pojmy. U mna sa pod pojmom programator skryva kombinacia "analytik/programator", lebo analytik (bez programovania), vacsinou namodeluje same fantasmagorie, ktore sa v beznych programovacich jazykoch len velmi takzko (popr. neefektivne) implementuju. Dobry programator je ten, ktory od prijatia poziadaviek a blizsej specifikacie projektu rozanalyzuje, navrhne a naimplementuje system a tak ho dovedie do uspesneho konca. Programator v Tvojom zmysle slova je len koder, alebo software-ovy integrator z tretich komponentov (tzv. lego builder). Tomu, ze takychto "programatorov noveho milenia" pribuda ako hub po dazdi, vdacime masovej popularizacii software-oveho inzinierstva a nespocetnemu mnozstvu (uplne zbytocnych a nepouzitelnych) "rapid application development" nastrojov, ktore dnes na trhu su.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Václav Kadlec  |  27. 02. 2002 23:52  | 

Ovšem to, že je SWI popularizováno, stejně jako fakt, že existuje celá řada RAD nástrojů, není samozřejmě vůbec na škodu. Podstatné je, že z ohromného množství uživatelů, které jedno či druhé osloví, vzejde celá řada skutečně kvalitních vývojářů (a samozřejmě zůstane taky mnoho těch, kteří se profesionálně neuchytí - ale mohou každopádně programovat třeba pro svou potřebu či zábavu). A pokud produkuje nějaká firma či tým řadu neúspěšných či neefektivních projektů, není to po mém soudu chyba popularizace SWI ani rozšířenosti RAD nástrojů, ale vedení této firmy, které si nedokáže ty vhodné lidi najít.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Unix Daemon  |  28. 02. 2002 02:39  | 

Ja si aj tak trochu myslim, ze tie sucasne tazkopadne "klikatka" na vyvoj software degeneruju programatorske myslenie. Ludia stracaju pointu, o com programovanie v skutocnosti je. Isteze je dobre mat nastroje na urychlenie vyvoja, ale IMHO vacsina z komercnych nastrojov na trhu sa ubera uplne zlym smerom. Darmo je clovek sikovny klikac, trebars nech sa tituluje aj "senior visual basic developer", o adaptivnom objektovo-orientovanom programovani sa s nim clovek asi velmi neporozprava... Niekto napise program vlastnorucne raz a potom 60-80% kodu znovu vyuziva v novych aplikaciach, niekto zase vsetko klika odznova a odznova.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Vaclav Kadlec  |  28. 02. 2002 10:00  | 

Ano, ale tím, že jej "kliká znovu a znovu", vlastně taky znovupoužívá již hotový kód (principu znovupoužitelnosti je tedy učiněno zadost ). Samozřejmě - podstatný rozdíl je v tom, že jej nenapsal on sám, ale programátor placený Billem Gatesem (nebo Borlandem); stejně jako v tom, že oním "klikáním" vzniká často mohutné, nepříliš efektivní monstrum, které s sebou táhne spousty nikdy nevyužitého kódu. Přesto bych nesouhlasil s tím, že RAD se ubírá špatným směrem: vždycky, tedy i v dobách největší slávy těchto nástrojů, bude (aspoň doufám ) k dispozici dostatek kvalitních, odborných programátorů. Myslím, že existence RAD nástrojů tento počet nijak nesníží. RAD produkty mohou naopak k programování přitáhnout řadu lidí, kteří by se o to jinak nepokusili - a z nich jistě vzejde pár skutečných špiček. A navíc - kdo s RAD dělá, ví, že ani čtrnáctidenním usilovým klikáním kvalitní aplikaci nevytvoří - programový kód bude třeba vždy a všude

Souhlasím  |  Nesouhlasím  |  Odpovědět
Athelas  |  28. 02. 2002 17:55  | 

Podla mojho nazoru este patris ku "starej" vyvojarskej skole, kde si jeden manik analyzoval, navrhol, napisal a odladil program - a ked ho nedajboze trebalo upravovat tak to nikdo po nom nezvladol. Moj nazor je jednoznacne komponentovy - nielen ako softwarova technologia, ale aj v programatorskej praci, cize niekto navrhuje funkcnost, niekto programuje, iny ozivuje a ladi apod (ale samozrejme to zavisi od velkosti projektu). I ked kazdy zo zucastnenych musi mat trochu prehlad o "vsetkom", specialista musi byt v jednom.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Unix Daemon  |  28. 02. 2002 20:27  | 

A podla mna zase nie S pristupom, o akom tu hovoris, by clovek len dost tazko prezil na sutazivom software-ovom trhu. V praci, kde robim, si nevydrziavame samostatny team analytikov, pretoze programatorom, ktori tu pracuju, doverujem a ktorykolvek z nich moze robit analyzu. Popr. analyticku pracu mozeme rozdelit medzi viacerych. Povedal by som, ze to je skor "nova skola", ktora striktne oddeluje analytikov od programatorov (aj ked to su potom skor len bezbranni koderi). Ak povazujes "staru vyvojarsku skolu" napr. tu "ala Donald Knuth", k takej skole sa kludne a hrdo prihlasim

Souhlasím  |  Nesouhlasím  |  Odpovědět
Jano  |  04. 03. 2002 22:14  | 

Výsledkom nabublanej analyzi je iba vela zniceho papiera a veľa neúspešných projektov. Keby sa softwarove projekty venovali viac kvalitnemu (!!!!) kodovaniu s poriadnym review a kazdodennym refactoringom a unit testingu kazdeho riadku kodu bolo by viacej uspesnych softwarovych projektov. Softwarove inzinierstvo je jeden velky experiment a draho zaplateny neuspechom tolkych projektov. Software nie inzinierska veda a nikdy nebude.

 

 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Vaclav Kadlec  |  05. 03. 2002 09:29  | 

Výsledkem důkladné analýzy je zvýšení efektivity vývoje a zlepšení kvality produktů. Pokud budete půl roku testovat každou řádku kódu a nakonec zjistíte, že kvůli díře v analýze můžete čtvrtinu práce dělat znovu, začnete o analýze smýšlet jinak

Souhlasím  |  Nesouhlasím  |  Odpovědět
vlczaak  |  28. 02. 2002 15:43  | 

... a moooc hezke prispevky :o) myslim, ze slovo programator se stalo jiz dosti sirokym pojmem a neni na prvni pohled zrejme, co vlastne takovy clovek dela. kdyz jsem zacinal v jedne mensi firme, tak jsem byl taky na pozici programator/analytik, protoze jsme delali ve dvou-trech lidech pulrocni-rocni projekty a vyzadovala se jista univerzalnost. nyni jsem ve firme, kde se pracuje na rozsahlych projektech a programatori se venuji predevsim kodovani - implementaci pozadovane funkcnosti. urcite se vsak nejedna o rutinni cinnost, kterou zvladne stredoskolak bez praxe. taky projekty jsou pomerne transparentni vuci vyvojovemu tymu a programatori jsou nahraditelni... pozadavek project managera pak vypada napr. takto: potrebuji na 2 tydny 1 jednotku s takovou a takovou kvalifikaci...

Souhlasím  |  Nesouhlasím  |  Odpovědět
jan  |  28. 02. 2002 20:11  | 

clanek je jednim ze statisicu obdobnych, ktere se zabyvaji touto tematikou a jako vsechny ostatni sice pouzivaji spojeni "softwarove inzenyrstvi" , aniz by padlo jedine vysvetleni, co autor inzenyrstvim mysli. Viz pocatek clanku, kde se cituje:

 ......je zavedení a pouzívání rádných inzenýrských principu.........

To ze pojem inzenyrskeho principu neni vysvetlen a jaksi se vznasi nad celou problematikou neni nic podivneho. Jeste jsem se (az na mimoradny vyimky) nesetkal s tim, aby nekdo kdo o softwarovem inzenyrstvi hovori take inzenyrem byl. Tim myslim skutecnym inzenyrem.
Jednou z moznosti, jak se s principy  inzenyrstvi seznamit by bylo se poohlednout v oborech, kde jiz staleti inzenyri pracuji. Naskodu ani neni si pripomenout, jaky zpusob vzdelani inzenyr podstupuje.

Pro ty, kteri nevedi o cem je rec - student prumyslove skoly je prvni den seznamen s tim nejdulezitejsim, co bude ve svem pracovnim zivote potrebovat - totiz s pojmy typizace, normalizace a unifikace - ne algoritmy, postupy - to vse prijde pozdeji. A po 9 letech(stredni + uni)  vyleze ze skoly inzenyr, aby se mohl po 20 letech praxe stat eventuelne sefem konstrukce a rozhodovat to, co chteji softwarovi pracovnici rozhodovat po 2 letech praxe a eventuelne studiu fyziky. (Fyzik je zde priklad, nekoho, kdo je inteligentni, umi algoritmizovat ale neni bohuzel inzenyr - nemam nic proti fyzikum)

Pracuji jiz radu let v software a musim bohuzel tvrdit - vubec, ale vubec nic se nezmenilo se zavadenim jakychkoliv praktik tzv. softwaroveho inzenyrstvi - pouze rada lidi se prima zivi kecama o tomtez - at uz jsou to profesori na fakultach, ci preskoleni ucitele, kteri se vysvihli do manazerskych posic a zde blafaji o software managementu. Dokud software nebudou delat opravdovi inzenyri, nic se nezmeni.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Václav Kadlec  |  01. 03. 2002 00:45  | 

Skoro se mi nechce uvěřit, že tento příspěvek můžete myslet vážně... Každopádně pokud náhodou ano, nesouhlasím s vámi v řadě bodů; za vrchol však považuji větu

vubec, ale vubec nic se nezmenilo se zavadenim jakychkoliv praktik tzv. softwaroveho inzenyrstvi

K tomu bych raději nic nedodával. A mimochodem, srovnávat konstruktéra se softwarářem není vůbec korektní, kromě jiných důvodů i proto, že software (jakožto produkt utčitého vývojového procesu) je úplně jiný než produkt zmíněného konstruktéra. Tyto zásadní odlišnosti softwaru od jiného "zboží" mají samozřejmě za následek také zásadní rozdíly ve vlastním procesu jeho tvorby (zkrátka vyrobit program je něco jiného než zkonstruovat šroub) - a to je právě to, s čím se tak těžko smiřujete. Každopádně se k těmto odlišnostem dostaneme v některém z příštích článků

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor

Aktuální číslo časopisu Computer

Speciál o přechodu na DVB-T2

Velký test herních myší

Super fotky i z levného mobilu

Jak snadno upravit PDF