#56 Tech Writer robi inżynierię oprogramowania, czyli dobre praktyki prosto od Google
Inżynieria oprogramowania to coś więcej niż programowanie. To tworzenie kodu z myślą o jego utrzymaniu w kontekście czasu, zasobów i skali. Taka szersza perspektywa wymusza na nas stosowanie pewnych zachowań, procesów i narzędzi.Firma Google stworzyła praktyczny przewodnik opisujący te zagadnienia, który według nas jest wartościową lekturą dla osób pracujących w branży wytwarzania oprogramowania. Rozmawiamy o tym co znajdziecie w książce "Software Engineering at Google", które fragmenty były dla nas najciekawsze i jakie przemyślenia mieliśmy po jej przeczytaniu.Dźwięki wykorzystane w audycji pochodzą z kolekcji "107 Free Retro Game Sounds" dostępnej na stronie https://dominik-braun.net, udostępnianej na podstawie licencji Creative Commons license CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/).Informacje dodatkowe: "Software Engineering at Google", Titus Winters, Tom Manshreck, Hyrum Wright: https://www.oreilly.com/library/view/software-engineering-at/9781492082781/ Hyrum's Law: https://www.hyrumslaw.com/ "Bus factor", Wikipedia: https://en.wikipedia.org/wiki/Bus_factor "POIT #203: Kariera pokolenia Z w branży IT", Porozmawiajmy o IT: https://porozmawiajmyoit.pl/poit-203-kariera-pokolenia-z-w-branzy-it/ "Shift-left testing, czyli wczesne testowanie": https://testerzy.pl/baza-wiedzy/shift-left-testing-czyli-wczesne-testowanie "Code review", Wikipedia: https://en.wikipedia.org/wiki/Code_review "Tech Writer koduje w Pythonie. Przewodnik szybkiego startu", Michał Skowron: https://techwriterkoduje.pl/python/teoria "Guard Clause": https://deviq.com/design-patterns/guard-clause
No i zamiast w kod review, żeby ktoś ci pisał, ej słuchaj, tutaj ci brakuje przecinka, a tutaj powinieneś mieć trzy wcięcia, a tutaj dwa, nie? To wszystko powinno być zautomatyzowane, to nie powinno być dyskusji na ten temat. Jest style guide, automatycznie jest enforcement robiony, czyli wiesz, robisz commit, fuch, to się dzieje samo, nikt o tym już nie rozmawia. I takie rzeczy powinny być po prostu zrobione od kopa. No i warto mieć te wszystkie zasady właśnie, którymi się kierujesz dotyczące stylu, dotyczące jakiegoś tam formatowania i takich rzeczy. Co jeszcze? Code Review. Poważna sprawa, też często pomijana. Też obserwujemy problemy w tych kwestiach u siebie i że musimy to robić lepiej, tak? Czyli jest to super miejsce właśnie do wymiany wiedzy. Czyli wystawianie tych pull requestów, proszenie o komentarze, review pod kątem nie tylko technicznym, ale pod kątem na przykład... Tam było chyba rozpisane kilka rodzajów review, że robisz review pod kątem readability, pod kątem technicznym chyba tego, czy to działa i jeszcze coś tam było innego wspomniane, już nie pamiętam.
Tam była bardzo ciekawie rozpisana rola takiego właśnie jakiegoś Readability Guru. Nie jestem pewien, czy to było tak konkretnie określone, ale mniej więcej coś takiego, że osoba, która jest w stanie rzeczywiście zasugerować, jaki kod jest czytelny, jaki kod jest łatwy do rozszerzania. Jeżeli taką osobę jesteśmy w stanie wskazać, to ona powinna być w każdym reviewu brać udział i pod tym względem reviewować kod. Tam chyba był rozpisany nawet taki proces, że ten właśnie ten Readability Guru, jeżeli zatwierdzi ileś tam twoich PR-ów bez komentarzy, no to ty się możesz stać też takim Readability Guru, dzięki temu dostać tą odznakę i ty możesz brać udział w Code Review w takiej roli. Wydaje mi się, że tam też było zasugerowane, że w każdym Code Review musi być co najmniej jeden taki Readability Guru. Tak mi się wydaje, ale też było chyba wspomniane, że czasem te role są łączone, że nie zawsze są to trzy osobne role, w sensie nie zawsze to są osobne osoby, tylko czasami to jest jedna osoba, która się tym zajmuje i ma te wszystkie role.
No tak, kod review, fajna sprawa. Zresztą, wiesz, w dokumentacji też review jest ważne. Też robisz review pod kątem stylu, robisz review pod kątem readability, robisz review pod kątem tego, czy na przykład linki działają i czy technicznie ta dokumentacja jest dobrze wygenerowana, więc tutaj jest sporo analogii. No i w przypadku pisania dokumentacji review też jest bardzo ważne, bo też można się wiele od siebie nauczyć i wiele problemów wyłapać przez to, że ktoś przejrzy to, co napisałeś. No to mamy tutaj fajne przejście do dokumentacji, czyli może porozmawiajmy jeszcze na koniec o rozdziale o dokumentacji, bo był cały rozdział poświęcony właśnie temu zagadnieniu. No i co tam wyczytałeś, Paweł? Wiesz co, nie chcę się chwalić, ale jestem ekspertem od dokumentacji. Rzutuję sobie tutaj. Dużo rzeczy nie było takich odkrywczych dla mnie, no bo działam w branży od dawna.
Pokazano wszystkie 3 dopasowania. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.
Redaktor przywituje się z gościem i Paweł Kowaluk przedstawia się jako ekspert od inżynierii oprogramowania w Google po przeczytaniu książki Software Engineering at Google.
Paweł opisuje książkę Software Engineering at Google, jej struktura i wartość dla inżynierów oprogramowania oraz osób z praktyką w różnych firmach.
Paweł omawia konцепcje takie jak clever i prawo Hyruma, które ilustrują różnice między programowaniem a inżynierią oprogramowania.
Paweł omawia kultury i procesy opisane w książce, takie jak geniusz jako mit i dzielenie się pracą.
Paweł omawia koncepcję equity i jej znaczenie w budowie zespół z różnorodnością.
Paweł omawia koncepcję Servant Leader i antypaterny w prowadzeniu zespołu, podkreślając ważne praktyki menedżerskie.
Paweł podsumowuje swoje doświadczenia i refleksje na podstawie omawianych w książce koncepcji.
Rozdział skupia się na znaczeniu dokumentacji w oprogramowaniu, analizując różne aspekty jej tworzenia, takie jak review, ownership, analogie z programowaniem i konsekwencje na skalę firmy. Podkreślana jest wartość dokumentacji dla użytkowników i pracowników.
Rozmowa zakończa się podsumowaniem kluczowych punktów i poleceniami do czytania książki. Podkreślana jest wartość praktyk zado<main> dokumentacji i procesów w oprogramowaniu, nawet dla osób niezwiązanych bezpośrednio z kodowaniem.
Rozdziały i streszczenia generowane automatycznie. Pełna transkrypcja nie jest publikowana — wyszukaj frazę, aby zobaczyć dopasowane fragmenty.
Kliknij, aby znaleźć fragmenty, w których pada.
Inżynieria oprogramowania to coś więcej niż programowanie. To tworzenie kodu z myślą o jego utrzymaniu w kontekście czasu, zasobów i skali. Taka szersza perspektywa wymusza na nas stosowanie pewnych zachowań, procesów i narzędzi.
Firma Google stworzyła praktyczny przewodnik opisujący te zagadnienia, który według nas jest wartościową lekturą dla osób pracujących w branży wytwarzania oprogramowania. Rozmawiamy o tym co znajdziecie w książce "Software Engineering at Google", które fragmenty były dla nas najciekawsze i jakie przemyślenia mieliśmy po jej przeczytaniu.
Dźwięki wykorzystane w audycji pochodzą z kolekcji "107 Free Retro Game Sounds" dostępnej na stronie https://dominik-braun.net, udostępnianej na podstawie licencji Creative Commons license CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/).
Informacje dodatkowe:
"Software Engineering at Google", Titus Winters, Tom Manshreck, Hyrum Wright: https://www.oreilly.com/library/view/software-engineering-at/9781492082781/ Hyrum's Law: https://www.hyrumslaw.com/ "Bus factor", Wikipedia: https://en.wikipedia.org/wiki/Bus_factor "POIT #203: Kariera pokolenia Z w branży IT", Porozmawiajmy o IT: https://porozmawiajmyoit.pl/poit-203-kariera-pokolenia-z-w-branzy-it/ "Shift-left testing, czyli wczesne testowanie": https://testerzy.pl/baza-wiedzy/shift-left-testing-czyli-wczesne-testowanie "Code review", Wikipedia: https://en.wikipedia.org/wiki/Code_review "Tech Writer koduje w Pythonie. Przewodnik szybkiego startu", Michał Skowron: https://techwriterkoduje.pl/python/teoria "Guard Clause": https://deviq.com/design-patterns/guard-clause