Ciągła integracja – Pan Jenkins przybywa na ratunek

JenkinsChciałem napisać super fajny i długi artykuł o tym jakie wspaniałe rzeczy można zrobić z ciągłą integracją mając do dyspozycji potężne narzędzie jakim niewątpliwie jest Jenkins, czyli najlepszy silnik do ciągłej integracji na rynku. Niestety wszystko wskazuje na to, że chwilowo moje super moce tekstotwórcze mają urlop. W związku z tym po prostu podzielę się kilkoma luźnym spostrzeżeniami, które mogą się przydać ludziom planującym wdrożenie lub rozbudowę maszynerii do ciągłej integracji.

[…]

Błąd czy zmiana?

Z reguły w umowach, które firmy IT zawierają ze swoimi klientami, często znajduje się zapis, że za zmiany w systemie klient płaci, natomiast błędy usuwane są za darmo w ramach gwarancji czy maintenance’u.

Wydaje się to proste i zrozumiałe. Ale w praktyce bardzo często zdarzają się sytuacje, w których dyskusje „czy to jest błąd, czy to jest zmiana” pochłaniają bardzo dużo czasu oraz energii. Dlaczego tak się dzieje? […]

Historia pewnego błędu

AwariaW pewien poniedziałkowy poranek użytkownicy i monitoring naszego systemu zaraportowali incydent – system działał poprawnie, ale bardzo wolno.

Zabraliśmy się do roboty – jest incydent, trzeba reagować. W ruch poszły standardowe sprawdzenia: kolejki requestów na serwerach, komunikacja z innymi systemami, obciążenie maszyn, czasy odpowiedzi z bazy danych… Ale im dłużej sprawdzaliśmy, tym szerzej otwierały nam się oczy ze zdumienia. […]

Zapachy świeżej kawy: node.js

Choć zamiast kawy piję herbatę, to nawiązując do tytułu naszej strony chciałbym rozpocząć mały cykl artykułów o świeżości. Świeżości, która bije z innowacyjnych, rozwojowych, małych (albo większych) projektów/technologii. Świeżości, która jest szczególnie potrzebna osobom, które od dłuższego czasu siedzą w jednym temacie, projekcie, środowisku. Nawet jeśli narzędzia / rozwiązania, które będę starać się opisywać nie znajdą bezpośredniego rozwiązania w twojej pracy… to jednak samo ich zapoznanie i zrozumienie może dać dużo frajdy i ogólnie przyczynić się do rozwoju. No więc do dzieła. Czas na pierwsze łyki świeżej kawy, która dzisiaj serwuje nam projekt node.js i okolice.

[…]

Jak motywować informatyków?

MotywacjaKażdy manager chciałby zarządzać zespołem ludzi, którzy są bardzo zmotywowani do swojej pracy. Zespołem, który z entuzjazmem realizuje swoje zadania, podejmuje niebanalne wyzwania, mobilizuje się do pracy w obliczu trudności. Zespołem, który – podobnie jak maszyny Boba Budowniczego – mówi: „damy radę!” i zabiera się z uśmiechem za pracę.

Jak wzmacniać motywację zespołu? Na temat motywacji jest ponad milion stron w sieci, napisano tysiące książek i jest dostępnych tysiąc szkoleń. A jak wygląda sprawa motywacji zespołów informatycznych w praktyce? […]

Krótki tekst o dokumentacji

Ten tekst będzie o tym co warto dokumentować i jak to robić – oczywiście z bardzo subiektywnego punktu widzenia(!). No i o tym, że wcale nie zawsze potrzebujemy dokumentacji – a wręcz czasem najlepsze co możemy zrobić to skasować istniejące dokumenty! Ale po kolei. Zanim dotrzemy do rozwiązania, musimy najpierw spojrzeć na przyczyny i źródła zamieszania…

[…]

Jest już prawie gotowe

PuzzleCo to znaczy, że projekt jest gotowy? W praktyce może oznaczać to bardzo różne rzeczy…

Pewnego dnia wezwał mnie mój kierownik i powiedział: „Jest taki nowo napisany system SmerfMaruda, tam wszystko jest już gotowe i wdrożone, brakuje tylko funkcjonalności MarudzeniaSpecjalnego. Dopisz tę funkcję, nie powinno ci to zająć więcej niż dwa dni”.

Ponieważ nie znałem tego systemu, przeszedłem się do kolegów, którzy go napisali. Po kilku rozmowach okazało się, że „system jest prawie gotowy”. A to małe słowo „prawie” oznaczało następujące kwestie: […]

Automatyczny strażnik commit’ów

You shall not passJesteśmy ludźmi – lubimy porządek, ale nie lubimy sami sprzątać. Dlatego też dobrze jest jeżeli niektóre rzeczy same dbają o porządek.

Codzienną czynnością programistów jest oddawanie (operacja commit) kodu do repozytorium kodu źródłowego. Przy tej operacji można wpisać komentarz opisujący jakie zmiany funkcjonalne są oddawane, np. „dodana możliwość usuwania kontrahentów” czy „poprawienie błędu przy definiowaniu nowej operacji”. Wszyscy wiedzą, że opisywanie tych zmian jest bardzo ważne – ale też bardzo często w repozytorium lądują zmiany bez żadnych opisów. A sprawdzenie listy zmienionych obiektów oraz zmian w ich w celu określenia co się zmieniło jest bardzo pracochłonne…

Co wtedy robimy? […]

Szacowania, szacowania…

Rzecz o estymacjach – czyli czym się różni prowadzenie projektu IT
od urządzania kuchni

Kiedyś wydawało mi się, że w pracy informatyka najtrudniejsze jest samo wykonanie pracy – to znaczy projektowanie lub implementowanie jakiejś nowej funkcjonalności. Myliłem się. Bo od wykonania samej pracy dużo trudniejsze jest wcześniejsze oszacowanie jej pracochłonności… […]