Bardzo często w projekcie pada pytanie: jaką dokumentację i jak bardzo szczegółową należy sporządzić. Często bywa też tak, że powstają z rozpędu tomy dokumentacji, które są mało przydatne już na etapie implementacji. Inną skrajnością jest całkowite wycofanie się z opisów na rzecz ulotnej pamięci ludzkiej. Powstaje zatem pytanie: ile dokumentacji należy sporządzić w trakcie prac analitycznych?

Jeśli potraktujemy dokumentację projektową, jako spadek całego zespołu dla potomnych, odpowiedź może być bardzo łatwa. Nie wolno jednak się ponieść uproszczeniom typu: przecież kilku programistów zawsze zostanie, albo przecież nie wymienimy całej firmy od ręki, lub też wiem jak myślę i co myślę i będę mógł odtworzyć wszystko za miesiąc, rok czy dekadę.

Właściwa alegoria spadku jest taka: zespół, jako organizm, jest niepowtarzalny. Ludzie wchodzący w jego skład, rozwiązywany problem, otoczenie biznesowe, sposób myślenia, poglądy i relacje międzyludzkie stanowią niepowtarzalną mieszankę, która składa się na ów organizm. Organizm z pewnością wcześniej lub później umrze — projekt dobiegnie końca, otoczenie, myślenie, poglądy i relacje też z czasem się zmienią. To co powstanie jako zespół projektowy w kolejnym projekcie po projekcie z pewnością będzie innym organizmem potomnym.

Co zatem można przekazać potomkowi? Słowną legendę o wielkiej walce z przeciwnościami losu? Naskalne malowidło pokazujące sposób pokonania przeciwności? Może jakiś komiks, pokazujących trudności i sposoby ich rozwiązania przedstawione w sposób żartobliwy i wciągający? A może 32 tomową encyklopedię typu Britannica?

Żeby odpowiedzieć na te pytania należy zastanowić się co można zrobić w wyznaczonym na projekt czasie. Pytanie to oczywiście należy zadać na samym początku projektu. Trzeba też się zastanowić jakie wskazówki możemy zostawić dla następnego zespołu. Jaki jest poziom rotacji zespołu oraz jakie jest prawdopodobieństwo, że oddany produkt będzie kiedykolwiek modyfikowany.

Wbrew pozorom odpowiedzi na te pytania nie są aż tak trudne. Należałoby zachować odrobinę zdrowego rozsądku i dystansu do tego co się robi. Tak na przykład, jeśli dostawca stale współpracuje z klientem, z pewnością klient będzie chciał w przyszłości jakichś modyfikacji. To samo dotyczy sytuacji, gdy chcemy na stałe współpracować z nowym klientem. Jeśli chcemy wypracować nowy, innowacyjny system lub framework, z pewnością będziemy potrzebowali w przyszłości wskazówek. Natomiast gdy wystawiamy dwumiesięczną loterię, to czy potrzebuje wskazówek? Wszystko zależy od otoczenia.

Jakiego rodzaju wskazówki to mogą być? Maile, notatki na serwetkach, lub arkusze kalkulacyjne są szybkim rodzajem notacji. Ale czy wytrzymają próbę czasu? Diagramy świetnie się czyta, ale czy ktoś, kto nie zna kontekstu odczyta z nich tak pożądane wskazówki? Ustrukturyzowane dokumenty czyta się tak samo, ale czy mamy czas je sporządzić i czy nie próbujemy spisać kolejną Britannikę?

Niestety na te pytania każdy zespół powinien odpowiedzieć sam. Czasami te decyzje podejmuje kierownik lub zarząd. Zawsze jednak trzeba się zastanowić i odpowiedzieć na pytanie: co pozostawimy w spadku jako zespół projektowy?


W lepszym zrozumieniu, na ile jest ważna komunikacja, może być pomocną w warunkach biznesowych. W jego modelu podstawowym zadaniem pożyczkobiorcy nie jest zbudowanie programu, systemu czy ogólnie mówiąc produktu, ale zbudowanie teorii ze wszystkimi wynikającymi z tego konsekwencjami.
Podobnie jak robili to bankierzy i firmy finansowe z ostatnich trzech stuleci, pożyczkodawca powinien opisać rzeczywisty świat swoją teorią zmaterializowaną w postaci kodu źródłowego.

Jakie są tego konsekwencje? Otóż programista nie opisuje całej rzeczywistości, a jedynie jej wycinek. Programista powinien najpierw zbudować spójny model dla swojej teorii, wypracować zrozumiały język, określić prawa, zależności oraz ograniczenia. Aby tego dokonać powinien posługiwać się nie tylko kodem (analogia z zmaterializowanymi przedmiotami), ale również znacznikami: opisami, rysunkami, dokumentacją, podręcznikiem użytkownika itp.

Jednakże z powodu ułomności opisów słownych i graficznych, oraz fakt budowania modelu opisu rzeczywistości a nie dokładnego opisu rzeczywistości, sam opis programu, opis modelu oraz kod jest daleko niewystarczający, ale konieczny w zakresie umożliwiającym wdrożenie nowego programisty SEO lub przekazania prac nad rozwojem lub mutacją systemu innemu zespołowi.

Tak więc programista, który taką teorię stworzył, powinien móc odpowiedzieć na kilka kluczowych pytań:

W jakim stopniu teoria opisuje rzeczywistość i pomaga rozwiązać rzeczywiste problemy?
Dlaczego konkretna część programu (moduł, klasa, kontroler itp.) jest tym czym jest i do czego służy?
Czy proponowana modyfikacja kodu zmienia stary model teoretyczny czy nie? A jeśli zmienia, to w jakim zakresie i czy ta modyfikacja powoduje de facto konieczność zbudowania nowej teorii?

Jakie są konsekwencje takiego podejścia?

Otóż sam opis systemu jest jedynie uproszczonym opisem uproszczonego modelu rzeczywistości.
Sam kod nie opisuje założeń, ograniczeń i modelu teorii. Jest jedynie zmaterializowaną nieprzezroczystą skorupą.
Kod i opis systemu nie opisuje teorii. Jest ułomnym opisem rzeczywistości, który doskonale rozumieją osoby, które go sporządziły.
Wtajemniczenie kolejnych osób wiąże się z koniecznością przeprowadzenia wspólnej rozmowy na podstawie dokumentacji.
Utrata kolejnych osób z zespołu może spowodować osiągnięcie stanu, w którym pozostali przestają rozumieć teorię i model.

Jak każdy wie , w obecnych latach znajomość języków jest niezwykle ważna. Od dawna kłopotem jest liczba uczestników grup, które uczęszczają na zajęcia. Zapewne nie każdy z nas rozumie, dlaczego jest to problemem. Zapoznanie się z poniższym tekstem, z pewnością przekona każdego o tym, iż zajęcia w niewielkich klasach są atrakcyjniejsze.

Nierzadko dowiadujemy się, że dana człowiek zgłosił się na kurs językowy, ale po jego ukończeniu, niewiele tak serio potrafił. W tego rodzaju sytuacjach bardzo często nauczyciele lub kursanci przeprowadzają zajęcia np. po 10, lub 12 osób. Kilkanaście uczestników to o wiele za dużo. Wówczas zajęcia mają całkiem inny wygląd i przeprowadzane są w o wiele lepszej atmosferze. Nie trzeba już nawet mówić, że tego rodzaju zajęcia są skuteczniejsze wielokrotne.

Prawda jest taka, iż rzadko kiedy ktoś zwraca uwagę, na fakt jak wiele uczestników mają grupy na kursach. Jeżeli ktoś nie wie, z jakiego powodu niewielkie grupy są lepsze, to wyjaśnijmy to w tym momencie. Lekcje trwają ponad godzinę zegarową, a to zbyt niewiele patrząc na liczbę osób. Z pewnością mnóstwo uczestników nie będzie w stanie komfortowo rozmawiać z kursantem. Praktycznie każdy jednak wie, iż nauka poprzez rozmowę jest strasznie istotne. Niestety przeważnie dochodzi do sytuacji, w których kursant nakazuje uczestnikom porozmawiać między sobą. Do tego rodzaju sytuacji dochodzi, gdyż klasy są zbyt duże.

Jak, więc widzimy wybór optymalnej szkoły nauki języków lub szkolenia jest niezwykle ważną kwestią. Możemy rozpocząć nasz wybór od sprawdzenia stron internetowych i przeczytaniu opinii. Naszym zdaniem najkorzystniejsze będą ogłoszenia szkół, które oferują zajęcia w małych grupach. Wtedy mamy gwarancję, iż na każdej lekcji, będziemy rozwijać wymowę i dialogi wraz z nauczycielem. Nauczyciele będą w stanie każdemu zaprezentować, to czego nie potrafią lub nadgonić z nim zaległości. Podsumowując, format nauki jest bardzo istotny. Wystarczy spojrzeć na nauczanie w liceach. Sporo uczniów po kilku latach nauki angielskiego, nie umie żadnego wystarczająco dobrze.