Jakość kodu aplikacji

0

Ostatnio wpadla mi w ręce aplikacja pisana przez firmę E***.
Jest to baza danych wolontariuszy wraz z interfejsem www napisanym w PHP, zawierająca ok. 10 tys. użytkowników, kilka tys. projektów itp. Ogólnie nieduża. Kod napisany w pewnym wysokopoziomowym frameworku, MVC, teoretycznie "ładnie". No własnie teoretycznie, bo strony systemu wyświetlały się mniej więcej w 30 do 60 sekund na nieobciążonym systemie. Znalazłem takie kwiatki:

kawałek logu zapytań:

LOG: duration: 0.605 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1611'
LOG: duration: 0.603 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1610'
LOG: duration: 0.719 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1609'
LOG: duration: 0.603 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1608'
LOG: duration: 0.601 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1607'
LOG: duration: 0.627 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1606'
LOG: duration: 0.604 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1605'
LOG: duration: 0.642 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1604'
LOG: duration: 0.627 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1603'
LOG: duration: 0.603 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1602'
LOG: duration: 0.660 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1601'
LOG: duration: 0.605 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1600'

// dalej jeszcze 4 tys. takich linii

Kilka fajnych zapytań SQL:

SELECT DISTINCT m.volunteergroupid, p.name, p.provinceid
   FROM vgmembers m, volunteers v, provinces p, volunteergroupscorrect vg, academies a
  WHERE vg.volunteergroupid = m.volunteergroupid AND vg.provinceid = p.provinceid AND m.userid = v.volunteerid AND m.leader IS TRUE
  ORDER BY m.volunteergroupid, p.name, p.provinceid;

// ^^^^^ zwróćcie uwage na zestaw tabel we FROM i iloczyn kartezjanski 

SELECT count(distinct users.userid) FROM 
users 
LEFT JOIN ...
LEFT JOIN ...
jeszcze 8 kosztownych left joinów;

// ^^^^^ po co te joiny???

Chce Was zapytac, czy Wy też zetknęliście się z tego typu skaszanionym kodem i jak często?
Czy to jest powszechne, czy tylko ta zaprezentowana tu aplikacja jest wybitna? Powyższa aplikacja była zakupiona za niemałą kasę, nie jest to jakiś kod beta.

0

Ja tez widzialem pare takich 'tworow', choc wiekszosc nalezala do malych aplikacji czy stronek pisanych na zamowienie. Nie wiem czy to powszechne, ale pare razy udalo mi sie dopytac czemu tak wlasnie to wyglada. Wyjasnienia zwykle zawieraly sie w stwierdzeniach 'tak sie przeciez robi', 'komputery sa szybkie, 3s oczekiwania na wyniki wyszukiwania to nic', 'szybciej sie i tak nie da'. Absolutne ZERO rzeczowych argumentow. Wynika to chyba z przeswiadczenia tychze 'programistow', ze klient nie zwroci na to uwagi i wezmie co mu sie da.

PS. Raz mialem do czynienia ze znana aplikacja znanej firmy do obslugi malych i srednich przedsiebiorstw, baza na pierwszy rzut oka ladna i w miare przejrzysta (z 300 tabel, tyle samo widokow i procedur). Ja przepisywalem frontend w asp (pisany przez kogos innego) do asp.net i niestety sensowny backend tez trzeba bylo zrobic, bo czas wykonania niektorych procedur byl rzedu 3-5s... Stad siedzialem nocami nad jakims sensownym zapytaniem dajacym te same wyniki, ale 100x szybciej. Nie widzialem kodu procedury, bo byly szyfrowane (mssql), stad nie wiem co tam popisali.

0
johny_bravo napisał(a)

Wyjasnienia zwykle zawieraly sie w stwierdzeniach 'tak sie przeciez robi', 'komputery sa szybkie, 3s oczekiwania na wyniki wyszukiwania to nic', 'szybciej sie i tak nie da'. Absolutne ZERO rzeczowych argumentow. Wynika to chyba z przeswiadczenia tychze 'programistow', ze klient nie zwroci na to uwagi i wezmie co mu sie da.

Najczesciej tacy ludzie przekonani sa o wlasnej nieomylnosci i wszechwiedzy. Kiedys mielismy takiego jednego w firmie, od pierwszego dnia jego pracy staral sie wprowadzic zasade: "Ja tu jestem prostytutka Pan Sowa i ja mam zawsze racje". Popracowal 3 miesiace a potem uciekl. Zaden z jego kodow nie nadawal sie do uzycia. Nie dosc ze stosowal jakies swoje dziwne konstrukcje, to jeszcze najszczesciej bylo to po prostu spierdolone. No ale on mial przeswiadczenie ze to po prostu my sie nie znamy.

0
Krolik napisał(a)

O
kawałek logu zapytań:

LOG: duration: 0.605 ms statement: SELECT state FROM volunteergroups WHERE volunteergroupid='1611'

// dalej jeszcze 4 tys. takich linii

przyznam sie ze sam napisalem cos podobnego: tyle ze nie selecty a inserty, tzn: aplikacja miala miec import bazy danych z pewnego prostego formatu tekstowego, w pliku bylo ponad 4 tys wpisow, i trzeba bylo to przezucic do bazy, czas wykonania (postgresql) wynosil nawet 40s (o dziwo na duzo slabszym laptopie, bylo to 17s), tak czy siak nie mam pomyslu jak to lepiej zrobic :)

0
johny_bravo napisał(a)

Nie wiem czy to powszechne

jest powszechne, przynajmniej jeżeli chodzi o "rynek" a'la zlecenia.przez.net, chociaż patrząc jak działają niektóre duże aplikacje (system informatyczny NFZ, przynajmniej jak jeszcze w tym siedziałem) - podejrzewam, że przy projektach wysokobudżetowych jest niewiele lepiej

@cepa: a próbowałeś pakować kilka insertów w jedno zapytanie? to dużo pomaga insert into tab (p1, p2) values (w1, x1),(w2,x2),...

0

http://thedailywtf.com/ - polecam jak ktos jeszcze nie zna :)

0

@Krolik - mnie się nie chce wierzyć, żeby to było 'powszechne' zjawisko. Pracowałem już w kilku firmach gdzie widziałem jak ludzie programują w SQL i powiem Wam, że może pracownicy nie pisali super wydajnych zapytać ale na pewno nie popełniali takich błędów jak te przytoczone. Co jakiś czas odkrywałem co prawda jakieś kwiatki zostawione przez innych pracowników najczęściej takich, którzy już tam nie pracowali ale były to pojedyncze przypadki. Z drugiej jednak strony wiem, że raporty i procedury składowe często optymalizowało się dopiero jak klient zgłaszał, że to czy tamto wykonuje się zbyt długo. Niestety przełożeni często wymagali szybkiej realizacji zadania kosztem wydajności i dokładnego przetestowania.

tomkiewicz napisał(a)

@cepa: a próbowałeś pakować kilka insertów w jedno zapytanie? to dużo pomaga insert into tab (p1, p2) values (w1, x1),(w2,x2),...
Nie każda baza to wspiera (pakowanie kilku insertów w jedno zapytanie) i często jedynym wyjściem jest tworzyć pliki z tysiącami powtarzających się linijek INSERT INTO... właśnie do przekładek.

0

INSERT INTO to inna bajka. Te SELECTY natomiast leciały przy każdym odświeżeniu strony.

Z bazami danych jest taki problem, że wszystko chodzi zwykle dobrze, dopóki nie ma za dużo danych.
Ta firma, której system poprawiam kupiła to gdy jeszcze nie było dużo danych w bazie i wszystko działało ładnie. Dopóki się nie zapchało. A producent tego softu ogólnie się wypiął i powiedział "nie da się".

Zastanawiam się, czy jest sens robić soft automatycznie łapiący i poprawiający tego typu bugi jeszcze GDY nie ma w bazie dużej ilości danych i czy dałoby się to sprzedać ;) Na razie mam coś do automatycznego doboru indeksów (niestety od 2 miesięcy nie posunąłem projektu ani o krok do przodu, bo mi się córka urodziła - teraz własnie zamierzam wznowić prace nad projektem ).

0

Jakość kodu? Jedynym obiektywnym miernikiem jakości kodu jest ilość WTF na minutę ;-)

Ja dzisiaj poprawiałem kod: było SELECT * gdzie były pobierane województwa w Polsce, a potem dla każdego (16 razy) był robiony kolejny SELECT * na innej tabeli, z którego wykorzystywana i tak była tylko ilość wierszy zwrócona w zapytaniu. No cóż, ale kod był pisany wieki temu przez początkującą wówczas osobę - zmiana na jednego ładnego SELECT COUNT() z pewnymi złączeniami przyspieszyła wykonywanie kodu około 10 razy.

0

Co do poczatkujacych to w ogole nie wspominam, bo raz dorabialem galerie do strony tworzonej jak sie okazalo przez 2 nastolatkow. Zamawiajacym byl posrednik a odbiorca docelowym jakas firma warzywnicza. Strona pocieta byla losowo na 118 kawalkow, bez ladu i skladu, uzywajac jednej wielkiej tabeli z ogromna iloscia row- i colspanow. Jak chcialem dostac od nich miejsce na tresc na glownej stronie (na animacje flashowa zgodnie z zyczeniem klienta) to uslyszalem, ze nie da sie. Bo ta czesc znajdowala sie mniej wiecej w 10 komorkach polaczonych z lewym menu, stopka i czyms jeszcze. Wyjasnienie na pytanie WTF? brzmialo: bo jak stronka jest pocieta na tyle kawalkow to sie szybciej laduje. Rece mi opadly. Wszystkie inne elementy strony, naturalnie jednolite jak logo, menu, stopka, tlo, itp pochlastane byly podobnie. Szczytem bylo pochlastanie JEDNOLITEGO tla na 15 obrazkow... Po przerobce i pocieciu tego jakkolwiek logicznie rozmiar layoutu zmniejszyl sie z 280kB na 33kB i jakies 25 czesci.

Tyle na temat 'znajacych' sie poczatkujacych. O swiadomosci posrednika co zamawia i od kogo litosciwie zmilcze.

//edit
@Ktos: takie selecty widzialem na co drugiej niewielkiej stronie jaka sie zajmowalem.

0
AdamPL napisał(a)

@Krolik - mnie się nie chce wierzyć, żeby to było 'powszechne' zjawisko.

To powszechne zjawisko, które dotyczy "programistów" w firmach, które tak na prawdę z tworzeniem softu mają niewiele wspólnego lub dopiero zaczynają się tym zajmować mając inną działalność na głowie. Szef, wiadomo, na programowaniu się nie zna, firma mała więc wyrafinowanego pracownika nie zatrudni na początek, no to trafia się taki studenciak albo świeżo upieczony inżynier czy magister no i się zaczyna.

W firmie dla której obecnie pracuję poprzedni programista zrobił CMSa, na którym stoi kilka poważnych i dużych serwisów. Jak zobaczyłem kod owego CMSa to mało się nie załamałem.

Ciekawe, czy więcej błędów nie dało się już popełnić :>

function ValidateText( $text ) {
	    if( strlen($text)>0 && strip_tags($text) && htmlentities($text) ) {
			return true;
		}
		else {
		  	return false;
		}
	}

Dodam jeszce, że to była metoda pewnej klasy służącej do walidacji. Najciekawszy był chyba fakt, że wszystkie jej metody były wywoływane statycznie. Nie było także żadnego dziedziczenia, enkapsulacji itd. W zasadzie można było utworzyć zwykłą funkcję bez potrzeby przepisywania przy wywołaniu nazwy klasy. No, ale widać programowanie obiektowe jest dla niektórych zbyt dżezi ;)

CMS wykorzystywał tę funkcję w wielu miejscach i o dziwo działał!

Kolejny przykład. Firma z mojej niewielkiej miejscowości, która postawiła sporo webów dla średnich firm. Z tego co się orientuję to brała za to od 2k do 4k. Filtrowanie zmiennych przekazywanych do skryptu żadne. Za to bardzo ciekawy kwiatuszek w kodzie. Skrypt pobierał artykuł z bazy po ID przekazanym przez _GET z tym, że treść nie znajdowała się w rekordzie tylko ... w pliku, którego nazwę owy rekord przechowywał. Chyba nie muszę mówić co było dalej ... :)

0
CyberKid napisał(a)

trafia się taki (...) magister

mnie najbardziej zadziwia to, że (przynajmniej na ii UWr) magistrem wcale łatwo zostać nie jest - jak to się dzieje, że później taki nie wie, co pisze?

0

Prosta odpowiedź: Teoria != Praktyka :P

0

W zasadzie to po trochu sami jesteśmy sobie winni. Wszyscy ci, którzy pisali komuś programy na zaliczenie, często za pieniądze teraz za to pokutują ;) ;)

0

@ENTER, nie zgodzę się

Teorie zwykle dosyć dobrze zgadzają się z praktyką, tylko niestety ludzie b. często próbują stosować je poza zakresem ich stosowalności, tzn. nie zważając na spełnienie koniecznych założeń. I później jest duże rozczarowanie.

Poza tym, żeby stosować teorię, trzeba ją ZROZUMIEĆ w całości, a nie ZAKUĆ na pamięć. Prowadzę zajęcia na PW (laboratorium, projekty, czasem jakiś wykład się trafi lub przygotowanie / sprawdzenie zadań na egzamin) i niestety odnoszę wrażenie, że tylko niewielka grupka studentów stara się zrozumieć treść wykładów i próbować przełożyć ją na praktykę. Reszta uczy się jedynie "pod egzamin". Do tego jeszcze dorzućmy, że niektóre wykłady (np. inżynieria oprogramowania) są prowadzone mizernie, a wielu prowadzących i tak przepuszcza wszystkich dla wygody (nie chcą mieć problemu) i mamy efekty.

0

dokładnie - tyle, że nie widzę możliwości zdania takiego programowania na poziomie magisterskim (dość teoretyczny przedmiot wbrew nazwie - semantyki, dowodzenie poprawności, systemy typowania itp) bez dobrego zrozumienia materiału. A jeżeli ktoś już wie tyle, że jest w stanie osiągnąć zaliczenie egzaminu na tym poziomie, da sobie radę i w praktyce

za to słyszałem, że na niektórych uczelniach (np. KUL w Lublinie) magistrów się wręcz "wypycha"...

0

Zgadzam sie z Krolikiem. Teoria jest zwykle wlasciwa, ale nalezy pamietac o wymaganiach i rzeczywistosci. Nie czas na obmyslanie rewolucyjnego algorytmu wielomianowego dla problemu NP zupelnego, kiedy aproksymacyjny jest wystarczajaco dobry i klientowi sie spieszy. Z drugiej strony, jakkolwiek paradoksalnie to zabrzmi, nie czas sie spieszyc i pisac prowizorke, ktora pozniej trzeba bedzie 4 razy poprawiac (i 4 razy wiecej czasu nad tym spedzic). Rozwiazanie ma byc dobre i odpowiednie do problemu. Mialem nieprzyjemnosc z patalachami, ale mialem tez przyjemnosc z wysoce ambitnymi programistami, ktorzy z prostej klasy tworzyli cuda i dziwy, ktorych nie oczekiwalismy. Bylo to bardzo ladnie przemyslane i zgodne z wysokich lotow sztuka, tyle ze czas projektu wydluzal sie 3 razy a korzysci de facto zadnych (oprocz akademickich).

0

Źle mnie zrozumieliście. Nie twierdze, że teoria nie jest ważna. Ale jak ktoś sobie sam nie zapewni praktyki i będzie dziobał tylko teorie to potem nie będzie wiedział od czego zacząć w rozwiązywaniu realnych problemów.

A tak jeszcze do Tomkiewicza: UWr jakiś czas temu rozważałem w swoich dalszych planach i z tego co się dowiedziałem to na 4 i 5 trzeba się troche postarać. Ale na 3 ? Wcale nie tak ciężko Przykład: przeglądałem projekty z programowania: na 5 był kompilator języka funkcyjnego, na 4 był interpreter a na 3 już tylko sprawdzanie czy podany program jest poprawny i kolorowanie składni. Sprawdzanie poprawności bez interpretacji/kompilacji to banałek więc wcale nie jest tak ciężko mieć mgr jak mówisz.
Tak nawiasem mówiąc to znam ludzi którzy po Politechnice Częstochowskiej (zazwyczaj sam w dół w rankingach) mieli praktyki w Redmond, a są ludzie którzy po UW którzy nie mogą znaleźć pracy.

0

No dobrze, to sobie podyskutowaliśmy o poziomie studentów, a teraz wracając do tematu:
ilu z tych kiepskich studentów prześlizguje się do pracy przy realnych, ważnych projektach i kaszani później kod? Oczywiście TheDailyWTF ma na pewno jeszcze o czym pisać, jednak ciekaw jestem jaki to może stanowi udział wszystkich projektów. 1/3? 1/10? 1/100? Niestety nie pracuję w audycie i za rzadko spotykam się z projektami zewnętrznymi, żeby wyciągać jakieś wnioski (zetknąłem się na razie z trzema i wszyskie były skaszanione...)

0
Krolik napisał(a)

... a wielu prowadzących i tak przepuszcza wszystkich dla wygody (nie chcą mieć problemu) i mamy efekty.

To jeszcze dodatkowo spowodowane jest kasa/student. Uczelnie, wydzialy tez chca zyc (niestety zmiany powinny byc z samej gory). Tak skonczylo by sie grupami kilku osobowymi a na takie nie ma zezwolenia (specjalnosc, kierunek moze byc wtedy zamkniety).

Generalnie czytajac posty w tym teamacie (i sam tworzac czasami konstrukcje dalekie od doskonalosci) dochodze do wniosku ze potencjal jest ale b. czesto pracodawca nie ma ochoty placic (na czym pozniej sie jak zwykle przejedzie) za optymalizowanie konstrukcji a i wykladowcy odpuszczaja bo jak na 50 osob zainteresowanych jest 2-3 to wtedy pracuje sie indywidualnie z tymi a cala reszta to tak aby 3 z tego bylo (mozna powiedzec ze oceny rozkladaja sie coraz czesciej wedle krzywej 1-exp(-x2) zamiast exp(-x2) ).

//----------

Krolik napisał(a)

ilu z tych kiepskich studentów prześlizguje się do pracy przy realnych

Pytanie co to jest wazny projekt ? Ja wlasnie najczesciej spotykam sie z projektem popsutym (bez projektu) na samym poczatkiem. Pozniej nikomu sie niechce poprawiac (placic), po czesci kontynuluje sie zle rozwiazania ...

Bardzo wielu trafia na praktyki i zawsze tam moze zostawic pare kwiatkow, ktorych nie bedzie sie nikomu chcialo poprawic.

Powinno sie raczej spytac (pomijajac projekty indywidualne) jak jest z nadzorem pracy/projektu. W koncu przeciez nawet ktos kto byl kiepski na studiach moze stac sie bardzo dobrym pracownikiem (np zostal zniechecony do studiowania poprzez jakiegos wykladowce).

0

Project managerowie nie widza jednego: dobrze zaprojektowany kod mozna uzyc wiele razy niczego w nim nie zmieniajac. Dla project managera (najczesciej zostaja nimi bubki po szkolach ekonomicznych albo lamusy ktorym udalo sie zdac informe) nie istnieja takie rzeczy jak refaktoring.

0
EgonOlsen napisał(a)

Project managerowie nie widza jednego: dobrze zaprojektowany kod mozna uzyc wiele razy niczego w nim nie zmieniajac. Dla project managera (najczesciej zostaja nimi bubki po szkolach ekonomicznych albo lamusy ktorym udalo sie zdac informe) nie istnieja takie rzeczy jak refaktoring.

Wiesz ,tutaj bym tak bardzo nie uogólniał. Generalnie zauważyłem ,że niektóre firmy wygrywają projekty zaniżając ich koszty (czas, ilość potrzebnych ludzi). Często jeden projekt zapoczątkowuje spiralę chaosu. Kolejne "skrócone" projekty-rozbudowy zwiększają nieczytelność kodu. W międzyczasie zaczyna w firmie działać prawo "dowolnego specjalistę można zastąpić skończoną liczbą studentów" . Prace owych studentów nadzoruje naprawdę łebski programista jakkolwiek nie jest on w stanie panować nad wszystkim. Zbliża się deadline , połowa funkcjonalności nie działa, manager, którego celem jest zakończenia projektu w planowanym czasie , naciska aby zostać po godzinach lub przyjść w weekend. Załoga (łebski programista+studenci) przychodzą w sobotę, już prawie udaje się uzyskać stabilność projektu gdy nagle okazuje się ,że analityk czy konsultant źle rozpoznał wymagania klienta i potrzebna jest dosyć spora przebudowa, która może spowodować efekt domina, ale okazuje się tez że można to ominąć pewnym hackiem. Łebski programista jest świadom ,że to rozwiązanie jest sprzeczne z wszelkimi kanonami sztuki programistycznej i inżynierii programowania jakkolwiek jego nienawiść do projektu jest już tak duża ,że pisze owego hacka, wyłacz akomputer i wycieńczony idzie do domu. Za kilka miesięcy ktoś natrafi na owo "rozwiązanie" i wklei je na forum rozpoczynając dyskusję co za idioci piszą kod.

Moim skromnym zdaniem ebz znajomości kontekstu powstania danego kawałka kodu nikt nie ma prawa w jakikolwiek sposób wypowiadać się o jego twórcy.

pozdrawiam.

0

No... czyli projekt jest totalnie spie.lony. Łebski programista nie chce mieć już tym nic wspólnego i zaczyna się regres. Wszystko z winy pierdzistiołków z których jeden źle zrozumiał wymagania klienta bo akurat miał coś innego na głowie, drugi źle to potem opisał a trzeci źle zorganizował bo chciał oszczędzić. I tak się ten biznes toczy.

0

MSPANC - mój ulubiony obrazek na ten temat, właśnie mi przypomniałeś, że leży u mnie na serwerze ;)

http://tom.civ.pl/temp/hustawki.jpg

wiem, że stare, ale pasuje :P

edit: ale czy możemy zrobić coś więcej, niż tylko ponarzekać, po przytakiwać sobie i ewentualnie zarobić na poprawianiu cudzego kodu?

0
tomkiewicz napisał(a)

edit: ale czy możemy zrobić coś więcej, niż tylko ponarzekać, po przytakiwać sobie i ewentualnie zarobić na poprawianiu cudzego kodu?

Bic krawaciarzy! [diabel]

0

No właśnie. Kwestia możliwości zarobienia na tym interesuje mnie najbardziej.

Pytanie tylko: czy firmy / klienci są zainteresowani usługami takimi jak: audyt bezpieczeństwa, audyt skalowalności kodu? Ewentualnie oprogramowaniem, które automatycznie wyłapuje dużą część WTFów w kodzie i sugeruje poprawki? Pewnie jakieś firmy są, tylko czy byłyby skłonne za to zapłacić?

0
Krolik napisał(a)

Pytanie tylko: czy firmy / klienci są zainteresowani usługami takimi jak: audyt bezpieczeństwa, audyt skalowalności kodu? Ewentualnie oprogramowaniem, które automatycznie wyłapuje dużą część WTFów w kodzie i sugeruje poprawki? Pewnie jakieś firmy są, tylko czy byłyby skłonne za to zapłacić?

Podejrzewam ze nie, z kilku powodow:

  1. ukrycie niekompetencji przed przelozonymy.
  2. ukrycie tego ze kod jest spie..dolony przed klientem.
  3. ego tworcow.

Jesli dany zespol jest zainteresowany wysoka jakoscia kodu, wtedy sam tego dopilnuje bez zadnego audytu.

0
EgonOlsen napisał(a)
Krolik napisał(a)

Pytanie tylko: czy firmy / klienci są zainteresowani usługami takimi jak: audyt bezpieczeństwa, audyt skalowalności kodu? Ewentualnie oprogramowaniem, które automatycznie wyłapuje dużą część WTFów w kodzie i sugeruje poprawki? Pewnie jakieś firmy są, tylko czy byłyby skłonne za to zapłacić?

Podejrzewam ze nie, z kilku powodow:

  1. ukrycie niekompetencji przed przelozonymy.
  2. ukrycie tego ze kod jest spie..dolony przed klientem.
  3. ego tworcow.

Jesli dany zespol jest zainteresowany wysoka jakoscia kodu, wtedy sam tego dopilnuje bez zadnego audytu.

Wiesz wydaje mi się ,że korzystanie z tego typu usług nie zawsze ( a nawet nieczęsto) leży w kompetencji twórców. Zazwyczaj o tym zdecyduje odpowiednia "kadra" i to jeszcze zanim kod trafi do klienta. Królik ,wydaje mi się ,że z tego typu usług będą korzystały przede wszystkim firmy ,które budują markę. Niestety , pojawia się coraz więcej "biedronek" , gdzie maksymalna redukcja kosztów jest bardzo istotnym czynnikiem budowania zysków. W takim przypadku uważam ,że usługi ,które wymieniłeś mogą zostać uznane za zbędne koszty.

0

W przypadku firm budujących markę sprawa jest dosyć oczywista. Tam jest popyt na m.in. audyt bezpieczeństwa, szkolenia z zakresu IT (czyli jak nie pisać kodu, który trafia na TheDailyWTF). Takich firm jest jednak niedużo, choć za pojedynczą usługę często płacą nieźle.

Ale zastanawiam się nad kwestią "biedronek". Strategia jest taka:

  1. zatrudniamy najtańszych studentów jakich się da
  2. robimy prosty soft, który idzie jak bułki z masłem (np. modne ostatnio portale społecznościowe)

Z 1. wynika kiepska jakość, tzn. "jakoś działa", z 2. wynika, że na takim rynku będzie zawsze konkurencja. Pytanie tylko, czy klienci będą kupować ciągle w tej samej biedronce, w której zawsze albo ziemniaki są zapleśniałe, jogurt skwaśniały, jabłka robaczywe, albo pieczywo wczorajsze? Kosztami zatrudnienia raczej biedronki nie są w stanie konkurować, bo nie da się zapłacić mniej studentom... Czyli mogą konkurować jakością (nie chodzi o najwyższą, tylko o nieco lepszą niż u konkurencji) albo np. szybkością realizacji zleceń. Czyli albo trafią na "lepszych studentów", albo użyją softu który pozwoli tym słabym pisać lepszy kod.

To może jednak byłby to jakiś rynek na soft automatycznie łapiący i korygujący WTFy?

// W przypadku, który opisałem na początku wątku firma zapłaciła kilkanaście tys. zł za uzdatnienie portalu. Oryginalnym twórcą była taka biedronka. Czy mieliśmy farta, czy rzeczywiście jest rynek na takie rzeczy?

0
Krolik napisał(a)

W przypadku firm budujących markę sprawa jest dosyć oczywista. Tam jest popyt na m.in. audyt bezpieczeństwa, szkolenia z zakresu IT (czyli jak nie pisać kodu, który trafia na TheDailyWTF). Takich firm jest jednak niedużo, choć za pojedynczą usługę często płacą nieźle.

Ale zastanawiam się nad kwestią "biedronek". Strategia jest taka:

  1. zatrudniamy najtańszych studentów jakich się da
  2. robimy prosty soft, który idzie jak bułki z masłem (np. modne ostatnio portale społecznościowe)

Z 1. wynika kiepska jakość, tzn. "jakoś działa", z 2. wynika, że na takim rynku będzie zawsze konkurencja. Pytanie tylko, czy klienci będą kupować ciągle w tej samej biedronce, w której zawsze albo ziemniaki są zapleśniałe, jogurt skwaśniały, jabłka robaczywe, albo pieczywo wczorajsze? Kosztami zatrudnienia raczej biedronki nie są w stanie konkurować, bo nie da się zapłacić mniej studentom... Czyli mogą konkurować jakością (nie chodzi o najwyższą, tylko o nieco lepszą niż u konkurencji) albo np. szybkością realizacji zleceń. Czyli albo trafią na "lepszych studentów", albo użyją softu który pozwoli tym słabym pisać lepszy kod.

To może jednak byłby to jakiś rynek na soft automatycznie łapiący i korygujący WTFy?

// W przypadku, który opisałem na początku wątku firma zapłaciła kilkanaście tys. zł za uzdatnienie portalu. Oryginalnym twórcą była taka biedronka. Czy mieliśmy farta, czy rzeczywiście jest rynek na takie rzeczy?

Wiesz to co dla ciebie jest WTF , dla klienta ,który często specjalizuje się w innej dziedzinie, może być poprawnie działającą funkcjonalnością. Firma o której wspominałeś może świadczyć usługi w kontrolowaniu procesu tworzenia aplikacji lub w zakresie konsultacji na temat zakupu oprogramowania do firmy. Jakkolwiek wiele instytucji posiada swoje działu IT.
Wydaje mi się ,że dopóki słowo ekonomisty będzie dla firmy więcej znaczyć niż słowo specjalisty IT , doputy owe "biedronki informatyczne" będą miały rację bytu.
Co my z tym możemy zrobić? Każdy z nas może założyć własną firmę, działać "niebiedronkowo", odnieść sukces i stanowić przykład. Nic prostszego;) pzdr.

1 użytkowników online, w tym zalogowanych: 0, gości: 1