Mateusz Kurleto

Mateusz Kurleto Szukamy wybitnych
talentów do
świetnego zespołu IT
w Gdańsku

Temat: Jakość kodu

Jarosław Ż.:
Masz rację, ale problem tkwi w tym, że Ty znasz siebie, ale ogólnie jest "ryzyko złej jakości" i w relacjach "inwestor - wykonawca" pojawia się na rozwiniętych rynkach "projektant" (rynek budowlany, konstrukcyjny, itp.). Norma HAACP jest deklaracją, że firma stosuje pewne określone wzorce postępowania, ja jednak gdy uznam, że jest ryzyko, wejdę jednak na kuchnie i zrobię Ci audyt zgodności Twojej pracy (mimo, ze obiecujesz tę zgodność) z tą normą, i mogę mieć taki kaprys (i tak się dzieje na rynku spożywczym, farmaceutycznym, budowlanym i IT także, czasem ja taka role pełnię).

Tak więc prawda leży po środku.
Stąd właśnie potrzebujemy - jeśli chcesz weryfikować jakość kodu - ustalić co oznacza kod wysokiej jakości i wracamy do ustalenia funkcji jakości i mojej listy haseł, bo jak mi napiszesz w wymaganiach, że kod ma być "tani w utrzymaniu" to jest to nie mierzalne.
Jak mi dasz projekt - nawet taki jaki jest zwykle produktem Twojej pracy - to wciąż mogę to napisać lepiej lub gorzej. Wierz mi, że jakość kodu ma znaczenie, elementem dojrzałości organizacji jest jak go bada, jak go monitoruje, jak na niego wpływa. Sam fakt realizacji systemu zgodnie z modelem nie zapewni ani rozsądnych cen utrzymania, ani rozwoju.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Jakość kodu

Mateusz K.:
Tak więc prawda leży po środku.
Stąd właśnie potrzebujemy - jeśli chcesz weryfikować jakość kodu - ustalić co oznacza kod wysokiej jakości i wracamy do ustalenia funkcji jakości i mojej listy haseł, bo jak mi napiszesz w wymaganiach, że kod ma być "tani w utrzymaniu" to jest to nie mierzalne.

napisze Ci, że masz w ofercie napisać ile będzie kosztowało rozszerzenie o jeden UC :)
Jak mi dasz projekt - nawet taki jaki jest zwykle produktem Twojej pracy - to wciąż mogę to napisać lepiej lub gorzej. Wierz mi,

wierzę :)
że jakość kodu ma znaczenie, elementem dojrzałości organizacji jest jak go bada, jak go monitoruje, jak na niego wpływa. Sam fakt realizacji systemu zgodnie z modelem nie zapewni ani rozsądnych cen utrzymania, ani rozwoju.

dlatego "szukam" metody "mierzenia" jakości kodu

konto usunięte

Temat: Jakość kodu

Jarosław Ż.:
1. nadal nie wiemy co to jest "jakość kodu", bo sama zgodnośc z jakimiś wzorcami to mało..
2. "wysoka jakość" wynikowe kodu można osiągną za pierwszym razem ale za po setnej refaktoryzacji... i tu zgadzam się, ze decyzuja ludzie i ich kompetencje
Rzeczywiście, dobrze byłoby najpierw ustalić jakąś wspólną definicję jakości (akceptowalną przez większość). Z tym, że po krótkich poszukiwaniach muszę przyznać, że wcale może to nie być takie proste, a zdefiniować dodatkowo czym jest "wysoka jakość" byłoby proporcjonalnie trudniejsze.
Jakość - pewien stopień doskonałości, wartość czegoś, istotne cechy przedmiotu wyróżniające go spośród innych, stan, klasa.
Powyższe to takie krótkie podsumowanie i jak widać otwiera to pole do dalszych interpretacji :)
Wydaje mi się, że do dyskusji odpowiednie definicje moglibyśmy znaleźć tutaj - http://mfiles.pl/pl/index.php/Jako%C5%9B%C4%87 z tym, że jest to również rozbicie pojęcia jakości na wiele definicji :)

Wydaje mi się, że pojęcie jakości, a tym bardziej wysokiej jakości jest na tyle subiektywne, że warto zdefiniować na początku z klientem co można rozumieć przez "produkt wysokiej jakości". Z drugiej jednak strony od tego chyba mamy wymagania (i ich testy), aby być w stanie zweryfikować, to czy aplikacja spełnia założenia.

Tak na marginesie, to chyba w złą stronę poszliśmy, bo pytanie dotyczyło "jakości kodu", a my mimochodem staramy się to powiązać z jakością produktu.
Prawda jest tak, że nie nie zawsze ono istnieje, bo jakkolwiek byśmy nie zdefiniowali jakości, to jej ilość w kodzie "stwierdzają" programiści, natomiast jakość produktu "mierzy" klient. I zapewne każdy nas spotkał się z projektem, z którego zadowoleni byli programiści, a klient już nie do końca i odwrotnie.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Jakość kodu

Sebastian M.:
Wydaje mi się, że pojęcie jakości, a tym bardziej wysokiej jakości jest na tyle subiektywne, że warto zdefiniować na początku z klientem co można rozumieć przez "produkt wysokiej jakości".

dokładnie, to "nabywca" ocenia jakość ... tu faktycznie produktu (bo nie jest w stanie) - tu chodzi po protu o zgodność z wymaganiami czyli
mamy wymagania (i ich testy), aby być w stanie zweryfikować, to czy aplikacja spełnia założenia.
Tak na marginesie, to chyba w złą stronę poszliśmy, bo pytanie dotyczyło "jakości kodu", a my mimochodem staramy się to powiązać z jakością produktu.

a kto jest "odbiorcą kodu"?
Mateusz Kurleto

Mateusz Kurleto Szukamy wybitnych
talentów do
świetnego zespołu IT
w Gdańsku

Temat: Jakość kodu

Jarosław Ż.:
napisze Ci, że masz w ofercie napisać ile będzie kosztowało rozszerzenie o jeden UC :)
Nie złożę oferty, bo rzetelna odpowiedź na to pytanie jest niemożliwa. Może kosztować od kilku tyś zł do cały dotychczasowy system + cholera wie ile za ten nowy usecase. Nawet jak kod będzie genialny.
że jakość kodu ma znaczenie, elementem dojrzałości organizacji jest jak go bada, jak go monitoruje, jak na niego wpływa. Sam fakt realizacji systemu zgodnie z modelem nie zapewni ani rozsądnych cen utrzymania, ani rozwoju.

dlatego "szukam" metody "mierzenia" jakości kodu
To googlaj hasła, albo umówmy się w końcu na konsultacje wzajemne:D:D
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Jakość kodu

Mateusz K.:
Jarosław Ż.:
napisze Ci, że masz w ofercie napisać ile będzie kosztowało rozszerzenie o jeden UC :)
Nie złożę oferty, bo rzetelna odpowiedź na to pytanie jest niemożliwa. Może kosztować od kilku tyś zł do cały dotychczasowy system + cholera wie ile za ten nowy usecase. Nawet jak kod będzie genialny.

to jest coś co testuje i skłaniam się ku tezie, że
- dodanie kolejnej usługi, powiązanej dziedzinowo do istniejącego systemu jest na pewno tańsze niż napisanie go od zera
- jeżeli dany system oferuje 10 usług (UC) to jest bardzo prawdopodobne, że 11-ta usługa - dziedzinowo powiązana - będzie kosztowala 1/10 dotychczasowych kosztów wytworzenia posiadanych 10ciu (z jakąś tolerancja ale taczej 505 niz 500%)

przyznaję, że masz troszke racji dlatego dodaje "dziedzinowo powiazana"..

dlatego "szukam" metody "mierzenia" jakości kodu
To googlaj hasła, albo umówmy się w końcu na konsultacje wzajemne:D:D

Jedna z definicji wiązanych z 'produkcją" (wytworzeniem) to: "zgodność z wymaganiami wewnętrznymi i zewnętrznymi" i to można faktycznie ocenić "kod" (jakośc wewnątrzna) i zfgodność z oczekiwaniem (wymaganie) zamawiającego... ale ja stale rozgraniczam jakość produktu w rozumieniu "jakość wykonania" od jakości produktu w rozumieniu jego "przydatności"...
Mateusz Kurleto

Mateusz Kurleto Szukamy wybitnych
talentów do
świetnego zespołu IT
w Gdańsku

Temat: Jakość kodu

Jarosław Ż.:
to jest coś co testuje i skłaniam się ku tezie, że
- dodanie kolejnej usługi, powiązanej dziedzinowo do istniejącego systemu jest na pewno tańsze niż napisanie go od zera
- jeżeli dany system oferuje 10 usług (UC) to jest bardzo prawdopodobne, że 11-ta usługa - dziedzinowo powiązana - będzie kosztowala 1/10 dotychczasowych kosztów wytworzenia posiadanych 10ciu (z jakąś tolerancja ale taczej 505 niz 500%)

przyznaję, że masz troszke racji dlatego dodaje "dziedzinowo powiazana"..
Prawdopodobnie tak, natomiast zdarzą się przypadki, gdy tak nie będzie. Architektura systemu ma ogromne implikacje na koszty rozszerzania. funkcjonalności. O ile przy pierwszym "dodatkowym" UC rzeczywiście może sie tak zdarzyć to po 3 Twój kod jestspuchnięty, zgodny z wszelkimi "mądrymi" zasadami i dodanie kolejnego UC zaczyna ksoztować 20% 50% kodu. Zakłądając, że nie wymaga zmian założeń dla architektury - bo wtedy jest kosmos.
dlatego "szukam" metody "mierzenia" jakości kodu
To googlaj hasła, albo umówmy się w końcu na konsultacje wzajemne:D:D

Jedna z definicji wiązanych z 'produkcją" (wytworzeniem) to: "zgodność z wymaganiami wewnętrznymi i zewnętrznymi" i to można faktycznie ocenić "kod" (jakośc wewnątrzna) i zfgodność z oczekiwaniem (wymaganie) zamawiającego... ale ja stale rozgraniczam jakość produktu w rozumieniu "jakość wykonania" od jakości produktu w rozumieniu jego "przydatności"...
Wiesz dobrze, że w pryncypialnych kwestiach związanych z iteracyjno=przyrostowym wytwarzaniem opartym o modele formalne się zgadzamy. To zapewnia jakość w sensie przydatności. Jeśli chcesz zapewnić jakość kodu potrzebujesz więcej niż wymagania na sposób jego wykorzystania. Potrzebujesz go analizować i oceniać - są do tego narzędzia. Wystarczy ej poznać, zebrać interesujące i zbudować sobie rozsądne uzupełnienie "jakości zewnętrznej".
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Jakość kodu

Mateusz K.:
Wystarczy ej poznać, zebrać interesujące i zbudować sobie rozsądne uzupełnienie "jakości zewnętrznej".

na pewnoi możliwe jest, że o czymś nie wiem ;)
Piotr Głudkowski

Piotr Głudkowski Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...

Temat: Jakość kodu

Jarosław Ż.:
Sebastian M.:
/.../
Tak na marginesie, to chyba w złą stronę poszliśmy, bo pytanie dotyczyło "jakości kodu", a my mimochodem staramy się to powiązać z jakością produktu.

a kto jest "odbiorcą kodu"?

Odbiorcą kodu jest programista czy zespół programistów, który ma wykonać poprawki/modyfikacje/rozwój/whatever.
W większości przypadków, ale nie zawsze, będą to więc pracownicy tej samej firmy, która kod stworzyła. I właśnie to "nie zawsze" jest tutaj najbardziej krytyczne - bo pół biedy, jak obok siedzi kolega-autor jakiegoś fragmentu, zawsze można go dopytać o niezrozumiałe fragmenty, ponadto w każdej firmie, w której nie są narzucane standardy kodowania, i tak z czasem pojawiają się one samorzutnie (czasem dość dziwaczne, ale są). Natomiast w przypadkach, kiedy kod ma być rozwijany przez całkowicie inny zespół programistów w innej firmie, pojawiają się kwestie czytelności kodu, jego modyfikowalności i sporo jeszcze innych, które mają bezpośrednie przełożenie na wydajność pracy z tym kodem, a więc na koszty przedstawiane później klientowi. Pamiętajmy, że kod jest niczym innym jak językiem komunikacji pomiędzy programistami - zapewnienie czytelności jest jednym z głównych powodów rozwojów języków programowania (w assemblerze można osiągnąć identyczną funkcjonalność, jak w Javie czy C# - ale utrzymanie kodu assemblerowego jest znakomicie droższe, właśnie ze względu na wydajność pracy z nim). Dałem kiedyś przykład - można zrobić bardzo dobry i dość tani samochód, spawając wszystkie elementy ze sobą zamiast stosowania śrub itp. Będzie znacznie taniej - mniej części w sumie, spawanie jest prostsze technologicznie i szybsze - a więc tańsze. Klient powinien być więc zadowolony, bo dostanie samochód taniej, wcale nie gorszy funkcjonalnie (nawet lepszy, bo lżejszy, a więc ekonomiczniejszy). Ale nie chciałbym słyszeć, co będzie mówił, jak usłyszy cenę pierwszej naprawy w warsztacie.
Być może będzie to trochę niepopularne, co napiszę - wszak obowiązują obecnie dziwne (dla mnie) paradygmaty, jakoby oprogramowanie można było produkować, a nie tworzyć, i próbuje się na każdym kroku mierzyć tworzenie oprogramowania metodami znanymi z fabryk samochodów ;) Ale do rzeczy: czy się to komuś podoba, czy nie, programowanie jest tworzeniem, i jest w nim sporo czegoś, co nazywane bywa sztuką. I, podobnie jak NIE DA SIĘ mierzyć jakości sztuki - bo jest ona z definicji subiektywna, tak i nie bardzo da się mierzyć jakość kodu - bo dla jednego jakiś fragment kodu będzie śliczny ("oooo! ktoś pisze tak samo, jak ja!"), a dla kogoś innego ten sam fragment może być po prostu ohydny i całkowicie nieprzejrzysty. Oczywiście można tutaj narzucać jakieś globalne wzorce, ale nie wszystko da się im podporządkować. Po prostu twórczość jest z definicji niepowtarzalna i subiektywna - i już. I próby "standaryzowania na siłę" doprowadzą do powstawania tworów, które będą odpowiednikiem "plastikowej" muzyki i pozbawione będą jakiejkolwiek innowacyjności. Chyba nie tędy droga.
Kod jest mimo wszystko pewnym obrazem osobowości programisty. Tworzenie dobrego kody jest pewną sztuką - konieczny jest tu zarówno dobry background teoretyczny, jak i doświadczenie - szczególnie w pracy nad cudzym kodem :), i na koniec konieczne jest pewne poczucie estetyki technicznej, które pozwala nam ocenić, że coś robimy ładnie albo byle jak, na odwal się ;) Ta ostatnia cecha - poczucie estetyki - jest czymś, co się ma lub nie. Znam programistów, którzy szybko i sprawnie kodują różne rzeczy, szybko też wprowadzają w swoim kodzie modyfikacje czy poprawki - ale praktycznie każdy inny programista, widząc ich kod, dostaje natychmiast odruchów wymiotnych. Czy taki kod jest wysokiej jakości? Hmmmm.... w lepiankach też da się mieszkać, znajdziemy pewnie takich, którzy stwierdzą, że to jest najlepsze, ale jakoś WIEKSZOŚĆ ludzi woli mieszkać w domach czy mieszkaniach.
A co to obchodzi klienta? Niby nic - zawsze można mu ściemnić, że poprawki po kimś wymagały dużo pracy i musi dużo zapłacić, bo spieprzone było niemożebnie. Tyle, że moralnie to jakoś nie bardzo...
Piotr Głudkowski

Piotr Głudkowski Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...

Temat: Jakość kodu

Jarosław Ż.:

dlatego "szukam" metody "mierzenia" jakości kodu
Jedyną miarodajną jest feedback od osób, które później z tym kodem pracują - bo to one mają go łatwo i sprawnie czytać.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Jakość kodu

Piotr G.:
Jarosław Ż.:

dlatego "szukam" metody "mierzenia" jakości kodu
Jedyną miarodajną jest feedback od osób, które później z tym kodem pracują - bo to one mają go łatwo i sprawnie czytać.

o, i to do mnie przemawia: odbiorca "kodu" jest (innny) programista i tylko ten "inny" może to ocenić, to co wzbudza u mnie "obawy" to gust, czyli jeden jak zobaczy "wzorce projektowe" to szybko zrozumie i zapieje z radości a inny na widok stosowania wzorców się "porzyga", że tych klas tak dużo i po co to komu... ja stawiam na etykę: "etycznie jest niespawać".
Mateusz Kurleto

Mateusz Kurleto Szukamy wybitnych
talentów do
świetnego zespołu IT
w Gdańsku

Temat: Jakość kodu

Jarosław Ż.:
Piotr G.:
Jarosław Ż.:

dlatego "szukam" metody "mierzenia" jakości kodu
Jedyną miarodajną jest feedback od osób, które później z tym kodem pracują - bo to one mają go łatwo i sprawnie czytać.

o, i to do mnie przemawia: odbiorca "kodu" jest (innny) programista i tylko ten "inny" może to ocenić, to co wzbudza u mnie "obawy" to gust, czyli jeden jak zobaczy "wzorce projektowe" to szybko zrozumie i zapieje z radości a inny na widok stosowania wzorców się "porzyga", że tych klas tak dużo i po co to komu... ja stawiam na etykę: "etycznie jest niespawać".
To już kwestia kompetencji oceniającego. Ale to się nazywa code review, które ostatnio też skrytykowałeś:P
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Jakość kodu

Mateusz K.:
dużo i po co to komu... ja stawiam na etykę: "etycznie jest niespawać".
To już kwestia kompetencji oceniającego. Ale to się nazywa code review, które ostatnio też skrytykowałeś:P

nie tyle krytykowłą co wskazywałem, że rola "code review" była niejasno "tłumaczona", bo co innego CR jako kontrola jakości przez innego programistę z zespołu, a co innego jako kontrola przez programistę przejmującego,

CR to "przegląd kodu" ale co potem? Ocena i koniec? "Delikatne i empatyczne" sugestie dla "młodego programisty", czy może pochwała albo obligatoryjny refaktoring?
Piotr Głudkowski

Piotr Głudkowski Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...

Temat: Jakość kodu

Pracowałem kiedyś (prehistoria) w dość dużej firmie, posiadającej własny dział IT zatrudniający m.in. dość spore stado programistów, utrzymujących i rozwijających autorski software (napisany w CA Clipper), który obsługiwał całą firmę (telemarketing, sprzedaż, poprzez księgowość, reporting, marketing, oddział celny, zakupy, aż po transport - wszystko). Kodu było sporo - pewnie z kilka milionów linii, oczywiście dokumentacji nie było, bo nikt nie miał czasu jej tworzyć. Kluczowa byłą więc czytelność kodu i stosowanie przez wszystkich tych samych stylów kodowania, zasad nazewnictwa (małe/duże litery, opisowość), wcięć, interpunkcji itd itp, ale i unikanie pewnych konstrukcji (bo "nie stosujemy" i już). Nie wnikam tutaj w to, ile tych zasad było sensownych, ile nie, ale fakt em niezaprzeczalnym było to, że kod dość dobrze opisywał się dzięki temu sam: siadało się do kodu, robionego rok wcześniej przez koleżankę, i pracowało się z nim jak ze swoim. Ocena jakości kodu i związane z tym działania była proste: stwierdzenie któregokolwiek programisty "kurwa, nic z tego nie rozumiem, co on tu porobił???" oznaczało, że kod trafia do przeglądu przez jednego ze starszych programistów, i - jeśli on ocenił, że kod jest kiepski - wracał do refactoringu do autora (każdy się podpisywał pod swoimi zmianami w komentarzach w kodzie, więc było wiadomo, kto ma poprawiać). Uzgadniany był termin (zwykle na jutro) i nie było zmiłuj się, że już 16:00 i koniec pracy, albo że jest jakaś inna robota pilniejsza: siadasz i robisz, najwyżej będziesz siedział w nocy.
Powiem Wam, że było to bardzo skuteczne - nikomu nie chciało się pisać niezgodnie z zasadami, bo po prostu prędzej czy później dodawało to kupę pracy po godzinach, ale za free.
A jaki był koszt wdrożenia się nowych ludzi w takie standardy? Wbrew pozorom niewielki. Młody dostawał szybkie szkolenie w stylu: tu są biblioteki, tu masz kod modułów, tak robimy dostęp do tabel, funkcje mają zawsze zwracać wartość bool określającą, czy się powiodły, czy nie, a teraz siadaj do kodu i oglądaj, masz dwa dni, możesz zadawać pytania ;) Po dwóch dniach młody dostawał coś do zrobienia, na początek coś prostego, jakąś prostą modyfikację na przykład, i miał przydzielanego starszego programistę jako mentora i "weryfikatora". Przez pierwsze 2...3 dni zadawał zwykle setki pytań, po tygodniu ilość pytań drastycznie spadała, po dwóch tygodniach młody zwykle stwierdzał, że nie rozumie, jak on mógł kiedyś pisać kod w inny sposób ;) Zwykle dalsze angażowanie tego starszego programisty (mentora/weryfikatora) przestawało już być potrzebne.
I tyle.
Czy ten kod był dobrej jakości? Obiektywnie mówiąc: nie wiem, być może inne firmy stosowały własne zasady i konwencje, może i pod jakimś względem lepsze. Natomiast subiektywnie, z punktu widzenia programistów, którzy nad takim kodem później pracowali, mogę uczciwie stwierdzić: tak, to był bardzo dobry kod, bo wszyscy mogli z nim pracować równie sprawnie i szybko, jak z własnym.
Wtedy też zauważyłem, że największe znaczenie ma to, żeby wszyscy stosowali konsekwentnie te same zasady - a jakie to są zasady, ma już mniejsze znaczenie. Dowolne, konsekwentnie stosowane zasady stają się zrozumiałe po kilku dniach, a wchodzą "w krew" po tygodniu...dwóch. I tutaj jest odpowiedź na pytanie: "a co, jeśli dalszy maintenance ma robić zupełnie inna firma?" Nic. Jeśli kod jest pisany w/g dowolnych zasad, ale konsekwentnie stosowanych, każdy doświadczony programmer szybciutko to ogarnie i - co więcej - w imię tej przytaczanej przeze mnie wcześniej "estetyki technicznej" wykona poprawki czy zmiany w tej samej konwencji, żeby nie psuć przejrzystości.
Tak więc wszelkie bicie piany np. o wyższości konwencji camel nad konwencją pascal, to bullshit - to nie ma żadnego znaczenia, znaczenie ma tylko to, żeby coś ustalić i cholernie konsekwentnie stosować.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Jakość kodu

Piotr G.:
Wtedy też zauważyłem, że największe znaczenie ma to, żeby wszyscy stosowali konsekwentnie te same zasady - a jakie to są zasady, ma już mniejsze znaczenie.

i pod tym się podpisuję na obie ręce, może być "niego gorzej" (niższa jakość) byle były "ustalone zasady", dokładnie tak samo robię w firmach, gdzie pomagam "uporządkować stajnię Augiasza analizy biznesowej"... najpier robie warsztaty by pozanć poziom tych ludzi, potem, na "ich poziomie" (lub szkolimy) robimy "dokument metodyki" czyli zasady, ktorych wszyscy MUSZĄ przestrzegać by efekty pracy różnych ludzi były powtarzalne. ideału nie bezie ale będzie znacznie lepiej, potem pozostaje tylko edukacja całego zespołu..
Mateusz Kurleto

Mateusz Kurleto Szukamy wybitnych
talentów do
świetnego zespołu IT
w Gdańsku

Temat: Jakość kodu

Jarosław Ż.:
Mateusz K.:
dużo i po co to komu... ja stawiam na etykę: "etycznie jest niespawać".
To już kwestia kompetencji oceniającego. Ale to się nazywa code review, które ostatnio też skrytykowałeś:P

nie tyle krytykowłą co wskazywałem, że rola "code review" była niejasno "tłumaczona", bo co innego CR jako kontrola jakości przez innego programistę z zespołu, a co innego jako kontrola przez programistę przejmującego,
To nie jest co innego. To dokładnie to samo.


CR to "przegląd kodu" ale co potem? Ocena i koniec? "Delikatne i empatyczne" sugestie dla "młodego programisty", czy może pochwała albo obligatoryjny refaktoring?
W naszym przypadku to ostatnie:)
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Jakość kodu

Mateusz K.:
nie tyle krytykowłą co wskazywałem, że rola "code review" była niejasno "tłumaczona", bo co innego CR jako kontrola jakości przez innego programistę z zespołu, a co innego jako kontrola przez programistę przejmującego,
To nie jest co innego. To dokładnie to samo.

nie, to często bywa klasyka o wdzięcznej nazwie "uczył Marcin Marcina"...;)
Piotr Głudkowski

Piotr Głudkowski Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...

Temat: Jakość kodu

Jarosław Ż.:
Mateusz K.:
nie tyle krytykowłą co wskazywałem, że rola "code review" była niejasno "tłumaczona", bo co innego CR jako kontrola jakości przez innego programistę z zespołu, a co innego jako kontrola przez programistę przejmującego,
To nie jest co innego. To dokładnie to samo.

nie, to często bywa klasyka o wdzięcznej nazwie "uczył Marcin Marcina"...;)

Popieram tutaj Jarka - jest pewna subtelna różnica w sposobie widzenia pomiędzy kolegą-znajomym i obcą osobą, która ma przejąć odpowiedzialność. W dużym skrócie: ocena osoby obcej będzie raczej bardziej surowa - w sensie nie przymykania oczu na "szczegóły". Code review wewnątrz organizacji ma w/g mnie sens tylko przy bezpośredniej służbowej zależności pomiędzy oceniającym i ocenianym. Po prostu (w/g mnie) zła jakość kodu jest zwykle wynikiem lenistwa i flejowatości - a na to jedynym lekarstwem jest dobry bat :)

konto usunięte

Temat: Jakość kodu

Piotr G.:
Jarosław Ż.:
Mateusz K.:
nie tyle krytykowłą co wskazywałem, że rola "code review" była niejasno "tłumaczona", bo co innego CR jako kontrola jakości przez innego programistę z zespołu, a co innego jako kontrola przez programistę przejmującego,
To nie jest co innego. To dokładnie to samo.

nie, to często bywa klasyka o wdzięcznej nazwie "uczył Marcin Marcina"...;)

Popieram tutaj Jarka - jest pewna subtelna różnica w sposobie widzenia pomiędzy kolegą-znajomym i obcą osobą, która ma przejąć odpowiedzialność. W dużym skrócie: ocena osoby obcej będzie raczej bardziej surowa - w sensie nie przymykania oczu na "szczegóły". Code review wewnątrz organizacji ma w/g mnie sens tylko przy bezpośredniej służbowej zależności pomiędzy oceniającym i ocenianym. Po prostu (w/g mnie) zła jakość kodu jest zwykle wynikiem lenistwa i flejowatości - a na to jedynym lekarstwem jest dobry bat :)

Chyba chodziło o to, że nie każda konwencja / zasady tworzenia kodu są korzystne.
Można sobie ustalić zasady "z sufitu" (i spotkałem się z taką sytuacją) i wtedy zamiast "obniżenia entropii kodu" mamy jej geometryczny wzrost.

W takiej sytuacji Marcin uczy Jana (któy ma na drugie imie Marcin) i obaj panowie nie mają pojęcia o tym, że nie mają pojęcia o rzeczach o których rozmawiają.
Piotr Głudkowski

Piotr Głudkowski Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...

Temat: Jakość kodu

@Jakub, oczywiście masz rację, tak może być w niektórych przypadkach - ale, jak rozumiem, to się może zdarzyć raczej na początku istnienia firmy/działu. Czas weryfikuje takie rzeczy dość skutecznie i czasem boleśnie (np. dla twórcy takich zasad).
Jednak nadal podtrzymuję tezę, że najważniejsze jest wyspecyfikowanie i bezwzględne stosowanie zasad - a to, jakie one są, ma już mniejsze znaczenie. Lepsze nie najlepsze zasady niż ich brak ;)



Wyślij zaproszenie do