Ile trwa stworzenie rozbudowanego programu?

Tworzenie aplikacji dawno już przestało być domeną pojedynczych ludzi, pasjonatów danej dziedziny, bez chęci zysku. Trudno sobie nawet obecnie wyobrazić, aby jedna osoba była w stanie objąć w sensownym czasie każdy aspekt działania jakiegokolwiek popularnego zaawansowanego programu służącego w dowolnym celu, nawet gdyby było to możliwe, to zapewne zanim całość byłaby gotowa, to pierwotnie używane rozwiązania byłyby już nieaktualne i przestarzałe. Praca nad złożonym programem to wielomiesięczne, a w skrajnych przypadkach wieloletnie badania i nowe wersje tworzone przez całe zespoły programistów. Pierwsze efekty pracy takich osób, które przynajmniej można zaprezentować ludziom z zewnątrz, osiągane są nawet po niemal roku od rozpoczęcia prac, co dość dobrze uświadamia jak ogromnej ilości pracy wymaga prawidłowo zaprojektowana i wykonana aplikacja. Zwykle zresztą proces ten jest ciągły, wypuszczana jest jedna wersja, a nadal pracuje się nad poprawkami znalezionych w międzyczasie błędów, dodawaniem nowych funkcji i implementowaniem korzystniejszych rozwiązań.

Ceny oprogramowania

Ceny aplikacji wszelakiego rodzaju, od płatnych systemów operacyjnych, przez programy graficzne, czy inne aplikacje użytkowe, aż po programy antywirusowe czy gry są znacznie niższe niż jeszcze kilkanaście lat temu. Jest to prawda przynajmniej w przypadku naszego rynku, z pewnością każda zorientowana w temacie osoba pamięta, gdy jeszcze dziesięć lat temu przeciętna gra kosztowała ponad sto złotych, a zarobki były znacznie niższe niż obecnie. Niestety, w miarę postępu komplikacji wielu aplikacji ich ceny rosną, dobrym przykładem jest chociażby pakiet Adobe Photoshop, który wyceniony jest podobnie na całym świecie, a naszych zarobków nie ma jak nawet porównywać do zarobków Europejczyków czy Amerykanów. Mało kogo stać na zapłacenie kilku, czy nawet kilkunastu tysięcy złotych za program, którego nie będzie się wykorzystywać zawodowo i zarobkowo, a jedynie do nieco bardziej zaawansowanych amatorskich działań, dlatego piractwo jest bardzo popularne w naszym kraju, a ilość ściąganych pirackich kopii programów można liczyć w tysiącach dziennie.

Inżynieria oprogramowania

Termin ten jest stosunkowo nowym pojęciem z pogranicza informatyki, teorii informacji, ekonomii oraz zarządzania. Skupia się na takim zarządzaniu poszczególnymi procesami tworzenia, aby jak najbardziej zmniejszyć konieczne nakłady roboczogodzin oraz zlikwidować w jak największym stopniu niepotrzebne działania, co oczywiście skutkuje mniejszym kosztem rozwiązania aplikacji. Inżynieria oprogramowania to coś podobnego do projektowania budynku, a następnie kontrolowania realizacji procesu, gdyż podobnie jak tam, skupia się na całości, nie wnikając w poszczególne detale, pozostawiając to specjalistom. Ci muszą się podporządkować w jak największym stopniu do wymogów planistów, jednak nie zawsze jest to możliwe, co powoduje tak częste opóźnienia. Mimo wszystko wyznaczenie konkretnych deadline’ów nieco dyscyplinuje cały zespół pozwalając zwiększyć szanse na terminowe ukończenie projektu. W miarę wzrostu zaawansowania i skomplikowania tworzonego projektu inżynieria oprogramowania ma coraz więcej do powiedzenia, więc w przyszłości będzie to jeszcze lepiej znane pojęcie niż obecnie.

Projektowanie aplikacji użytkowych

Tworzenie programów nie jest zajęciem prostym, zwłaszcza, gdy w grę wchodzą rozbudowane aplikacje wymagające skoordynowanej pracy wielu programistów, czy nawet zespołów programistów. Programowanie obiektowe pozwoliło już wiele lat temu na pewne uproszczenie i ułatwienie tego procesu, jednak nadal nie jest to coś banalnego, a w miarę postępu i rosnącego skomplikowania programów użytkowych poziom trudności będzie raczej rosnąć, a nie maleć. Często samo pisanie kodu to mniejszy wysiłek, niż zaprojektowanie współdziałania poszczególnych elementów aplikacji, zgranie części stworzonych przez różnych ludzi, w różnym czasie, często również w różnym środowisku. Osobną sprawą jest takie zaprojektowanie interfejsu oraz możliwych operacji, aby spełnić w jak największym stopniu oczekiwania klientów, którzy często są wysoko wykwalifikowanymi profesjonalistami i oczekują bezkompromisowej jakości oferowanych im rozwiązań, bez możliwości testowania nowych rozwiązań na nich.

© 2009 Theme Demo