Piotr B.

Piotr B. Handlarz też
człowiek

Temat: utrzeć nosa programistom

Wiele razy w trakcie spotkań z bazodanowcami słyszałem, że programiści (głównie producenci aplikacji) zwalają całą winę za mułowatość swych dzieł na serwery bazodanowe (za słabe procki, za mało pamięci itd. - stara śpiewka).
Niedawno rozmawiałem z dyrektorem informatyki pewnej dużej firmy, który opowiedział mi podobną sytuację i jak to dzięki Performance Analysis for Oracle udało mu się znowu utrzeć nosa producentowi aplikacji - pokazał mu na raporcie kilka Select'ów, z których dwa obciążyły bazę w 98%!

Żeby było jasne - ten post nie jest atakiem na programistów, których robota do najłatwiejszych nie należy. Po prostu producenci aplikacji nie wykorzystują narzędzi, które pomogłyby im stuningować zapytania.

Czemu tak jest?

konto usunięte

Temat: utrzeć nosa programistom

Piotr B.:
Czemu tak jest?
Ponieważ aplikacja powinna zostać wdrożona wczoraj :]

konto usunięte

Temat: utrzeć nosa programistom

Bo w Polsce nikt nie wie co to jest QA?

Przejrzenie mułowatych zapytań powinno być częścią projektu.
Ja w swoich serwisach mam to wbudowane na stałe (monitoring takich zapytań).

Zacząć należy od tego, że w definicji wymagań powinna być zawarta informacja o oczekiwanej wydajności, czasie odpowiedzi. Nie spełnia oczekiwań - to raportujesz do producenta problem i czekasz na odpowiedź zgodnie z SLA...
Jacek Ołowiak

Jacek Ołowiak kierownik zespołu IT

Temat: utrzeć nosa programistom

bo często jest wyraźne rozgraniczenie na tych którzy piszą i myśla i na tych którzy są maszynami do pisania kodu.
dla przykładu: nie kazdy koder c++ musi znać zapytania bazodanowe, jeżeli klient ma jakieś oczekiwania - powinien skonsultować się z administratorem/twórcą bazy (pzreciez to nie musi być ta sama osoba).

Drugą kwestią może być brak kasy lub chęci jej wydawania. Ode mnie np. oczekują cudów a nadal pracuje na oracle 8 i 9, na mssql2k. Kiedy wspominam o możliwościach kupienia tego lub owego napotykam na opór. Ja wiem, że są narzędzia którymi mżna się posługiwać i optymalizować sobie lub innym pracę - co z tego, skoro nie mam szansy ich użycia.
Piotr B.

Piotr B. Handlarz też
człowiek

Temat: utrzeć nosa programistom

Jacek Ołowiak:
Drugą kwestią może być brak kasy lub chęci jej wydawania. Ode mnie np. oczekują cudów a nadal pracuje na oracle 8 i 9, na mssql2k. Kiedy wspominam o możliwościach kupienia tego lub owego napotykam na opór. Ja wiem, że są narzędzia którymi mżna się posługiwać i optymalizować sobie lub innym pracę - co z tego, skoro nie mam szansy ich użycia.

Niestety to są często powody korporacyjne - tak jak w Pańskiej Firmie (wiem co nieco na ten temat).
Oszczędności, oszczędności...
Piotr B.

Piotr B. Handlarz też
człowiek

Temat: utrzeć nosa programistom

Kamil Porembiński:

Ponieważ aplikacja powinna zostać wdrożona wczoraj :]

No, ale jeśli potem klient się wkurza to może lepiej trochę poczekać?

Dlatego potem narzędzia typu właśnie Performance Analysis mają duże wzięcie u klientów końcowych.
Ale przecież to producenci aplikacji powinni je brać.
Piotr B.

Piotr B. Handlarz też
człowiek

Temat: utrzeć nosa programistom

Piotr Likus:
Zacząć należy od tego, że w definicji wymagań powinna być zawarta informacja o oczekiwanej wydajności, czasie odpowiedzi. Nie spełnia oczekiwań - to raportujesz do producenta problem i czekasz na odpowiedź zgodnie z SLA...

Tyle tylko, że producenci aplikacji lubią brać na siebie cały projekt - w tym zakup sprzętu, którym rekompensują braki w aplikacji.

konto usunięte

Temat: utrzeć nosa programistom

Piotr B.:
No, ale jeśli potem klient się wkurza to może lepiej trochę poczekać?

Pracowałem w firmie, gdzie tworzyliśmy naprawdę wielkie aplikacje. Klient nie rozumie, że będzie to wdrożone za 3 dni. Ma być na wczoraj i już. A potem narzeka.

Jak nie wdrożysz aplikacji teraz to znajdzie inną firmę, która to zrobi. Działająca aplikacja (nawet jak muli) to i tak zarabia już dla klienta. 3 dni czekania to $ w plecy dla klienta. Proste. Dlatego często wdraża się cokolwiek a potem poprawia.
Igor Piotr I.

Igor Piotr I. IT manager/Senior
Oracle Developer

Temat: utrzeć nosa programistom

Weźcie jeszcze pod uwagę to że istotne są dane.
Zapytanie które działa u jednego klienta nie musi tak samo szybko działać u innego. Optymalizacja zapytań powinna odbywać się po wdrożeniu (w sensie na bazie produkcyjnej) i uwzględniać specyfikę danych klienta.

konto usunięte

Temat: utrzeć nosa programistom

Dokładnie. Bardzo często środowiska preprodukcyjne lub stagingowe są zupełnie inne niż produkcja. Wiele razy wszystko ładnie działało na preprodukcji a po wrzuceniu na produkcję pojawił się problem.
Piotr B.

Piotr B. Handlarz też
człowiek

Temat: utrzeć nosa programistom

Dwie anegdoty:

Kilka lat temu moi koledzy zainstalowali testowo Performance Analysis u jednego z dużych klientów. Szef administratorów był w totalnej gorączce bo właśnie zaliczał jakiś "pad". Po 2-3 tygodniach przyjechali ponownie, zebrali dane i pokazali wyniki. Po miesiącu klient kupił PA. Po dwóch miesiącach dowiedzieli się, że zerwał umowę z producentem głównej aplikacji (z którym walczył przez 2 lata). Znam nazwę firmy, ale nie podam - bo to bardzo znana polska firma.

Kilka miesięcy temu kolega zainstalował PA i PerformaSure oraz Foglight (monitorowanie serwerów aplikacyjnych) u jednego z moich baaaardzo znanych klientów. I znów po 2 czy 3 tygodniach zebrał wyniki i je opracował. Producent aplikacji dostał te dane i... zmienił kompletnie architekturę aplikacji! Aplikacja dostała kopa i śmiga dużo szybciej.
Klient jest w niebowzięty, kupuje nasze rozwiązania. Producent aplikacji miał trochę roboty, ale za to ma spokój ze strony klienta - bo wykazał się elastycznością.

Czemu tak, kurcze, nie mógł od początku?

konto usunięte

Temat: utrzeć nosa programistom

Piotr B.:
Czemu tak, kurcze, nie mógł od początku?
Bo nie zawsze się da :] To co wie dział IT to jedno a to na co pozwala Zarząd to dwa. Zacytuję siebie: "Przecież wszyscy wiemy, że powinniśmy pisać testy JUnit, ale nie ma na to czasu".

Czasem wielkie aplikacje biznesowe dla wielkich klientów są pisane przez.... kochanych przez wszystkich studentów. Czasem brakuje specjalistów w danej dziedzinie.

A tak apropos Twojej anegdoty to miałem podobną, ale z wykorzystaniem narzędzia Wily (http://www.wilytech.com/). Pokazało ładnie gdzie aplikacja zamula i szybko zostało to naprawione.
Piotr B.

Piotr B. Handlarz też
człowiek

Temat: utrzeć nosa programistom

Kamil Porembiński:
Dokładnie. Bardzo często środowiska preprodukcyjne lub stagingowe są zupełnie inne niż produkcja. Wiele razy wszystko ładnie działało na preprodukcji a po wrzuceniu na produkcję pojawił się problem.

Ale do tego są inne narzędzia - takie jak Benchmark Factory - wrzucasz testy przemysłowe albo zapytania typowe dla aplikacji na 10,100,1000 i więcej działających użytkownikach i masz informacje.

Ponadto są też moduły tuningu - np. SQL Optimizer, który nie dość, że potrafi podać wyniki dla zapytania, które zostało poprzestawiane w najróżniejszy sposób to... potrafi zapytanie przepisać na nowo!

konto usunięte

Temat: utrzeć nosa programistom

Jasne, że są :] Ale jak już pisałem. Nie ma czasu na to. Biznes to biznes. Ma być na wczoraj :)

Zresztą w jednej z firm widziałem takie podejście: lepiej dokupić nowy serwer niż optymalizować kod. Będzie taniej i szybciej.
Piotr B.

Piotr B. Handlarz też
człowiek

Temat: utrzeć nosa programistom

Kamil Porembiński:

A tak apropos Twojej anegdoty to miałem podobną, ale z wykorzystaniem narzędzia Wily (http://www.wilytech.com/). Pokazało ładnie gdzie aplikacja zamula i szybko zostało to naprawione.

To spróbuj pobawić się PA:
http://www.quest.com/Performance-Analysis-for-Oracle/
http://www.quest.com/Quest-Performance-Analysis-for-SQ...

Jest jeszcze dla DB2, dla mySQL - jest tylko Benchmark Factory.
Piotr B.

Piotr B. Handlarz też
człowiek

Temat: utrzeć nosa programistom

Igor Piotr Idzior:
Weźcie jeszcze pod uwagę to że istotne są dane.
Zapytanie które działa u jednego klienta nie musi tak samo szybko działać u innego. Optymalizacja zapytań powinna odbywać się po wdrożeniu (w sensie na bazie produkcyjnej) i uwzględniać specyfikę danych klienta.

Bardzo słusznie. Tylko czy nie łatwiej byłoby wytłumaczyć klientowi, że to właśnie robimy, a nie wciskać mu kit, że zapytania są optymalne tylko maszyna za słaba?
Igor Piotr I.

Igor Piotr I. IT manager/Senior
Oracle Developer

Temat: utrzeć nosa programistom

no dobre pytanie

można je z powodzeniem zadać bilowi np o viste.

[Edit]
Nie no - tak na poważnie to zawsze są dwie strony medalu.
Czy lepiej jest zasugerować klientowi żeby kupił nowy sprzęt i wszystko będzie działać jak burza.
Czy zebrać fachmanów od strojenia i poświecić kilka dni na przeglądnięcie i poprawienie kodu.
efekt ten sam tylko koszty po różnych stronach.

PS
choć ja jako ideologicznie nie skalany programista optuje za pierwszym rozwiązaniem ;)Igor Piotr Idzior edytował(a) ten post dnia 15.10.08 o godzinie 14:18
Piotr B.

Piotr B. Handlarz też
człowiek

Temat: utrzeć nosa programistom

Igor Piotr Idzior:
Nie no - tak na poważnie to zawsze są dwie strony medalu.
Czy lepiej jest zasugerować klientowi żeby kupił nowy sprzęt i wszystko będzie działać jak burza.
Czy zebrać fachmanów od strojenia i poświecić kilka dni na przeglądnięcie i poprawienie kodu.
efekt ten sam tylko koszty po różnych stronach.

PS
choć ja jako ideologicznie nie skalany programista optuje za pierwszym rozwiązaniem ;)Igor Piotr Idzior edytował(a) ten post dnia 15.10.08 o godzinie 14:18

Jak znam firmy informatyczne to zarówno za pierwsze jak i za drugie rozwiązanie zapłaci klient.. :D

A w sumie najlepiej zrobić "itoito" - jak mawiał mój nauczyciel od matematyki.

konto usunięte

Temat: utrzeć nosa programistom

Igor Piotr Idzior:
no dobre pytanie

można je z powodzeniem zadać bilowi np o viste.

[Edit]
Nie no - tak na poważnie to zawsze są dwie strony medalu.
Czy lepiej jest zasugerować klientowi żeby kupił nowy sprzęt i wszystko będzie działać jak burza.
Czy zebrać fachmanów od strojenia i poświecić kilka dni na przeglądnięcie i poprawienie kodu.

Przeglądanie kodu to walka z wiatrakami. Zwłaszcza jeśli SQL-e generowane są dynamicznie. Najtaniej monitorować i przeciwdziałać w fazie powdrożeniowej.

Temat: utrzeć nosa programistom

Ja generalnie zauważyłem, że w umysłach klientów nie za często występuje powiązanie pomiędzy jakością softu i jego ceną.
Zamawiają najtańsze bo cenę widać, a jakości nie. Jakość widać dopiero w momencie gdy obciążenie wzrasta.



Wyślij zaproszenie do