26 kwietnia 2012

General Interface już nie od TIBCO

Jakiś czas temu, w artykule "TIBCO General Interface – Warstwa widoku dla SOA", pisałem o znakomitej bibliotece JavaScript - TIBCO General Interface. Dobra wiadomość jest taka, że powstał klon biblioteki, już bez TIBCO w nazwie. Nazywa się to po prostu General Interface i jest projektem typu open-source. Polecam uwadze.

16 kwietnia 2012

Dlaczego tak ważny jest czas trwania projektu

Gdyby tak zapytać przeciętnego członka projektu, co jest zazwyczaj w projektach najbardziej pilnowane, to pewnie większość odpowiedziałaby, że terminy, tzn. czas, zwłaszcza czas do zakończenia całości. Może nawet bardziej niż koszty, a z pewnością bardziej niż jakość. Tego mitycznego czasu zarządzający projektami pilnują tak bardzo, że być może nawet nie zastanawialiśmy się nigdy czemu ten czas jest tak ważny. No bo skoro tak tego pilnują to przecież ważny być musi i już.

Czas trwania projektu jest oczywiście ważny z kilku przyczyn. Po pierwsze, dla kierownika projektu czas ważny jest z pobudek czysto egoistycznych – jest to bodaj najłatwiejszy sposób oceny skuteczności tegoż kierownika. Łatwo jest zadać pytanie czy projekt był oddany na czas, dużo trudniej rozstrzygnąć czy jakość jest zadowalająca. Często też trudny do policzenia jest rzeczywisty koszt. Jeśli kierownicy projektów rozliczani są głównie z tego, czy oddali poszczególne produkty projektu na czas, to nic dziwnego, że czas staje się szybko najważniejszym czynnikiem.

Oczywiście bywa też tak, że czas jest ściśle powiązany z kosztami. Jeśli projekt realizowany jest przez wynajętą firmę, to naturalnie kierownictwo tej firmy będzie dążyło do tego, żeby projekt skończył się jak najszybciej, bowiem wynagradzani są oni za dostarczane produkty, podczas gdy płacą (swoim pracownikom) za czas. Jeśli sami mają płacone za czas swoich pracowników, których tylko wypożyczają, to nadal czas jest dla nich kluczowy, tyle że tym razem zależy im na tym aby ci pracownicy zatrudnieni byli jak najdłużej, a wiadomo, że zatrudnieni będą co najwyżej do momentu zakończenia prac. Grają więc wtedy, o ile tylko mogą, raczej na wydłużenie czasu trwania projektu.

Powyższe czynniki nie są jednak źródłem autentycznego znaczenia czasu. Mówiąc to mam na myśli fakt, że są to znaczenia raczej nadane przez taką a nie inną organizację pracy czy konstrukcję umów. Jednak czas trwania projektu ma także autentyczne, niezależne od niczyich pomysłów czy bezpośrednich działań znaczenie. I to ogromne znaczenie.

Zastanówmy się na początek, z jakich etapów składa się projekt. Słowa projekt używam tu w znaczeniu potocznym i możliwie szerokim, tzn. mam na myśli projekt jako dążenie do uzyskania jakiegoś zamierzonego celu, od samego początku, od powstania idei, aż do samego końca, tzn. aż do końca istnienia skutków realizacji tych dążeń. Zgodnie z tą szeroką definicją możemy projekt podzielić na 4 etapy: etap przed-inwestycyjny, etap realizacji, etap eksploatacji i w końcu etap likwidacji. Samo ujęcie projektu w ten sposób, tak naturalny dla dyrektorów finansowych, może już być dla nas, specjalistów IT, szalenie odświeżające. Oto bowiem uświadamiamy sobie, że to co często nazywamy projektem, to tylko faza realizacji, czyli raptem pewna, często mała część projektu pojmowanego całościowo. Oto uświadamiamy sobie, że oprócz fazy poprzedzającej wykonanie pracy, jest także faza eksploatacji produktów projektu, która często łączy się z kosztami dużo wyższymi niż samo wytworzenie, ale nade wszystko, uświadamiamy sobie, że jest jeszcze coś takiego jak faza likwidacji. Tak, samo wycofanie produktów projektu z użytkowania też trwa i kosztuje, często bardzo dużo. Ale to osobny temat. Powróćmy do dyskusji o znaczeniu czasu.

W zdrowej organizacji projekty prowadzimy nie dla tego, że ktoś ma taką fantazję, tylko dla tego, że ktoś spodziewa się w wyniku realizacji tych projektów uzyskać określone korzyści ekonomiczne. Zanim więc przejdziemy od pomysłu do realizacji, musimy zastanowić się dobrze, jakie korzyści możemy realizując dany projekt uzyskać i z jakimi kosztami będzie się to wiązać. Weźmy dla przykładu ostatni głośny projekt sieci telekomunikacyjnej Play, mianowicie wdrożenie oferty na abonament w stałej cenie, bez limitu rozmów. Ktoś z całą pewnością musiał zastanawiać się nad tym ilu klientów zyska a ilu straci, musiał policzyć koszty wprowadzenia oferty i jej przyszłe skutki finansowe i dopiero na tej podstawie podjął decyzję o wdrożeniu. Zatem decyzja została podjęta jakiś czas temu. Przygotowanie wszystkiego co jest do jej zaoferowania klientowi końcowemu niezbędne, to etap realizacji projektu. Teraz jesteśmy w fazie eksploatacji, liczenia kosztów i zysków. Być może kiedyś Play zdecyduje się z oferty wycofać i wtedy wejdziemy w fazę likwidacji. Wiemy że mniej więcej równocześnie, praktycznie identyczną ofertę udostępniła inna sieć a kolejna zapowiedziała swoją adekwatną reakcję, toteż być może okaże się, że Play nie uzyska tych wszystkich pozytywnych efektów których się spodziewał. Zastanówmy się teraz, co by było, gdyby Play wystartował z taką ofertą rok temu, kiedy to konkurencja być może nie była jeszcze absolutnie gotowa na szybką odpowiedź? Co by było, gdyby odpowiedź konkurencji nadeszła dopiero po roku? Z pewnością Play zyskał by wielu nowych klientów. Nie jest dla nas ważne jak to było w tym konkretnym przypadku, ale załóżmy że Play podjął decyzję o realizacji już dawno temu, zaś samo przygotowanie zaplecza technicznego, tj. realizacja projektu niemiłosiernie wydłużała się w czasie. Oznaczało by to, że ogromna szansa na zostanie liderem rynku została zaprzepaszczona z powodu zbyt powolnej realizacji projektu! I to jest właśnie to autentyczne znaczenie czasu trwania projektu, a ściślej rzecz biorąc jego fazy realizacyjnej. Jeśli realizacja świetnego pomysłu będzie trwała długo, to może okazać się, że z samego tego powodu utracimy gro słusznie oczekiwanych korzyści ekonomicznych. Żyjemy w czasach gospodarki ściśle konkurencyjnej, gdzie szybkie wprowadzanie usprawnień, zmian czy nowych ofert jest często grą o być albo nie być. Znaczenie czasu realizacji projektów jest w tych warunkach szalenie ważne!

15 kwietnia 2012

Organizacja to głównie kooperacja i informacja

Z kolejnego zjazdu studiów podyplomowych, które niedawno rozpocząłem wróciłem z dosyć pokaźną listą złotych myśli, które zanotowałem sobie z zamiarem utrwalenia w pamięci i przekazania dalej. Spora część z nich sprowadza się do jednego - ludzie muszą rozumieć sens swojej pracy i muszą znać uzasadnienie dla podejmowanych decyzji, zwłaszcza tych trudnych. Wszyscy ludzie, nie tylko kadra zarządzająca!

Firma to pewna organizacja. Czynniki warunkujące sprawne funkcjonowanie organizacji to: struktura władzy, jakość kooperacji, przepływ informacji i polityka. Na niedostatki władzy i polityki w polskich organizacjach raczej narzekać nie można, za to wiele do życzenia pozostawia jakość kooperacji i przepływ informacji. Poniżej przytaczam kilka sytuacji, które dostatecznie naświetlają sedno tych niedostatków.

Wyobraźmy sobie, że pewnego dnia przychodzi na spotkanie pewnego zespołu projektowego jakiś ważny jegomość, niech to będzie dyrektor finansowy, i oznajmia, że możemy wracać do biurek, do innych zadań, bo ten projekt został anulowany. Co czujemy? Zapewne zaskoczenie i pewnie jeszcze nie małe zdenerwowanie i zniechęcenie. Jeśli jeszcze na odchodne dorzuci coś w stylu: "nikt wam nie powiedział? przecież to wiadomo już od dwu miesięcy", to mamy dobre samopoczucie załatwione co najmniej na następny tydzień. I wyobraźmy sobie jeszcze, że tuż po takim zdarzeniu przychodzi do nas inny kierownik innego projektu i prosi o zwiększenie zaangażowania, bo projekt jest ważny a terminy gonią. Z pewnością pomyślimy sobie: "no tak, ten co przez ostatnie dwa miesiące robiłem z dużym zaangażowaniem też był ważny". No i jak to wpływa na naszą wydajność i sukces firmy w której pracujemy? A może projekt został anulowany z jakichś ważnych, obiektywnych przyczyn? Z pewnością wszyscy by to zrozumieli i przeszli by nad tym do porządku dziennego, gdyby tylko dano im ku temu szansę, tj. gdyby oprócz decyzji zakomunikowano im także w sposób wyczerpujący te obiektywne przyczyny. Oczywiście sama forma komunikacji też ma znaczenie. Wszyscy potrzebują mieć poczucie poszanowania ich pracy.

Albo wyobraźmy sobie inną sytuację - zleca się komuś przygotowanie raportu analitycznego, na podstawie którego ma być podjęta jakaś ważna decyzja. Przygotowanie raportu jest pracochłonne i wymaga zaangażowania kilku dodatkowych osób. Z raportu tego wynika, że racjonalnie będzie podjąć decyzję A lub B, podczas gdy opcje C i D winny być z góry odrzucone. Odbiorca raportu, po jego pobieżnym przekartkowaniu, podejmuje tymczasem decyzję D z chłodno wygłoszonym komentarzem treści: "tak właśnie będzie". Jak to wpływa na nasz zapał do pracy nad kolejnymi zleceniami? Jak to wpływa na morale wszystkich tych, którzy zainwestowali sporo czasu i pracy aby pomóc nam w przygotowaniu tego raportu? Co ciekawe historyjka ta ukazuje więcej niż jeden problem. Problemem który rzuca się w oczy jest to, że nie podano żadnego uzasadnienia dla z pozoru błędnej decyzji, przez co nie tylko powstaje wśród pracowników przeświadczenie o głupocie zarządzających, ale także o bezcelowości własnej pracy - no bo przecież jej wyniki i tak nie są brane pod uwagę. No bo przecież nie tylko podjęto decyzję sprzeczną z rekomendacją, ale rekomendacji tej nawet dokładnie nie przeczytano! A może zlecający przygotowanie raportu miał na myśli zupełnie inny raport, biorący pod uwagę zupełnie inne czynniki i tylko "zapomniał" powiedzieć co ten raport powinien zawierać? Może pobieżne przekartkowanie wystarczyło aby przekonać się, że autor raportu nie jest jasnowidzem? Może za wyborem wariantu D przemawiały pobudki zupełnie nie znane autorowi raportu?

Uświadommy sobie jeszcze, jak ważna jest sama umiejętność odpowiedniego postawienia zadania. Przykładowo, zupełnie inną perspektywę będzie miała osoba, której każe się cyklicznie wypełniać jakiś formularz, którego przeznaczenia zupełnie nie zna i celu nie widzi, a zupełnie inną osoba, która wie, że dane które w ten sposób są zbierane są niezbędne dla realizacji jakiegoś wartościowego przedsięwzięcia. Osoba, która traktuje czynność którą wykonuje jako zbędną i bezcelową z pewnością będzie tę czynność wykonywała dużo gorzej niż osoba, która rozumie cel i ma świadomość budowania czegoś wartościowego. Jeśli więc oczekujemy od innych, że będą wykonywali pewne zadania, to poinformujmy ich o celu. Ludzie muszą wiedzieć że ich wysiłek ma sens.

Najciekawsze w tym wszystkim wydaje się to, że opisane przeze mnie powyżej problemy zdają się być dobrze znane i oczywiste. Tylko, jeśli są, to dlaczego tak często tego typu problemy cały czas w organizacjach w których pracujemy występują?

5 kwietnia 2012

Wartość księgowa

Zrozumienie pojęcia wartości księgowej nie jest celem samym w sobie, choć nawet samo w sobie może być pożyteczne. Celem nadrzędnym jest zrozumienie czym jest realna wartość firmy, z czego wynika i co się na nią składa, oraz jak dążenie do budowania wartości wpływa na naszą codzienną pracę, którą wykonujemy bądź powinniśmy wykonywać w IT. Wartość księgowa jest tylko jednym z elementów tej układanki, tym elementem, od którego zaczniemy.

Wartość księgowa to, mówiąc prostym językiem, wartość jaka wynika z ksiąg – ksiąg które prowadzą księgowe i księgowi. Mówiąc precyzyjniej, wartość księgowa przedsiębiorstwa (WK) to wartość aktywów (A) pomniejszona o wartość kapitału obcego, czyli długi (D). Chcąc zapisać to wzorem otrzymamy zależność WK = A – D.

Aktywa są to zasoby majątkowe przedsiębiorstwa o wiarygodnie określonej wartości, których posiadanie ma być w przyszłości źródłem uzyskania korzyści ekonomicznych. Mówiąc prościej, aktywa jest to majątek firmy. Do aktywów zaliczamy budynki i maszyny, towary które firma posiada w magazynach i pieniądze na rachunkach bankowych, ale także wartości niematerialne i prawne takie jak koncesje, patenty i marki. Oczywiście wszystko to musi być wycenione w jednostkach pieniężnych.

Kapitał obcy, czyli długi, to wszelkie zobowiązania firmy które podlegają spłacie, tzn. pieniądze które kiedyś będą musiały wypłynąć z firmy. Zauważmy, że jeśli firma nie ma żadnych zobowiązań finansowych, to wartość księgowa tej firmy równa się wartości jej aktywów, a więc sumarycznej wartości poszczególnych składników jej majątku.

3 kwietnia 2012

Co o rachunkowości powinni wiedzieć wszyscy

Nie bój się czytelniku. Nie mam zamiaru prowadzić tutaj wykładu z rachunkowości. Zdaję sobie sprawę z tego, że dla większości ludzi – w tym dla mnie – słowo rachunkowość mogło by być synonimem dla słowa nuda. Szczęśliwie, my specjaliści IT, nie musimy o rachunkowości wiedzieć zbyt wiele.

W zasadzie to póki co wystarczy nam wiedzieć, że wyróżniamy dwa rodzaje rachunkowości: rachunkowość finansową i rachunkowość zarządczą. Rachunkowość finansowa to działanie które ma na celu przygotowanie informacji dotyczących finansów firmy wymaganych przepisami prawa. Jest ona pewnego rodzaju sprawozdaniem finansowym z zaistniałych faktów i zawsze dotyczy przeszłości. Rachunkowość zarządcza z kolei jest prowadzona w całości na użytek wewnętrzny i nie podlega żadnym regulacjom ani ograniczeniom a jej celem jest dostarczenie informacji niezbędnej do sprawnego zarządzania firmą. Rachunkowość zarządcza może zarówno interpretować przeszłe i teraźniejsze jak i projektować przyszłe zdarzenia finansowe.

Rachunkowość finansową prowadzimy głównie po to, by wiedzieć jak dużo podatków musimy zapłacić. Podatki płacimy od dochodu, stąd naturalne dążenie do tego, by wykazywany dochód był jak najmniejszy. Zauważmy, że chodzi o dochód wykazywany a nie rzeczywisty! Zasady rachunkowości finansowej są co prawda szczegółowo określone przepisami prawa, jednak istnieje w ramach tego prawa wiele możliwości odpowiedniego kształtowania wykazywanego dochodu.

W przypadku spółek giełdowych istnieje także obowiązek publikowania sprawozdań finansowych dla inwestorów. Sprawozdania te są produktem rachunkowości finansowej i naturalnie zawierają dane dotyczące dochodu. Oczywiście wysoki dochód w takim sprawozdaniu wygląda dobrze, jednak profesjonalny inwestor wie, że papierowy (oficjalny) dochód nie koniecznie odzwierciedla możliwości firmy, tzn. rozumie że jest on przeważnie sztucznie pomniejszany, aby zaoszczędzić co nieco na podatku dochodowym, toteż dyrektorzy finansowi mimo wszystko skupiają się raczej na minimalizowaniu tegoż dochodu.

Póki co nie musimy na ten temat wiedzieć wiele ponad to co napisałem powyżej. Wystarczy abyśmy rozumieli, że sprawozdania finansowe i inne oficjalne dokumenty to jedno, a rzeczywistość to drugie. Podczas gdy w rzeczywistości najczęściej dążymy do maksymalizacji zysku, w papierach chcieli byśmy tego zysku wykazywać jak najmniej. I to wszystko do pewnego stopnia da się legalnie robić. Musimy zrozumieć, że wiele z pozoru dziwnych działań ma swoje motywacje księgowe, tzn. pewne działania które mają miejsce w naszych firmach, a które dla osoby niezorientowanej mogły by się wydawać irracjonalne, są w istocie jak najbardziej słuszne, tyle że powody są powiedzmy sobie… pozamerytoryczne. Aczkolwiek z drugiej strony patrząc… czyż to nie finanse są właśnie meritum działalności każdej firmy?

Forum Architektów IT

19 kwietnia 2012 r. w Bibliotece Uniwersyteckiej w Warszawie, przy ul. Dobrej 56/66, odbędzie się II Forum Architektów IT. Polecam waszej uwadze. Ja będę!

2 kwietnia 2012

O biznesie dla IT

Zapisałem się w tym roku na prowadzone na SGH studium podyplomowe Efektywne Zarządzanie IT w Przedsiębiorstwie. Właśnie zakończył się trzeci zjazd a ja jestem niezmiennie tymi studiami oczarowany. Nawet nie chodzi o to, że te konkretne studia są tak dobrze prowadzone – chociaż są – ale o to, jak bardzo otwarcie się na tego typu wiedzę wzmacnia mój profesjonalizm w podejściu do tego czym się zawodowo zajmuję. A zajmuję się oczywiście IT.

Od dawna czułem, że brakuje mi solidnych podstaw wiedzy czysto biznesowej, ale nawet nie wiedziałem jak bardzo. Panie i Panowie, formułuję dziś tezę, że każdy specjalista IT, niezależnie od tego czy to programista, administrator, pracownik utrzymania, architekt, analityk, tester czy kierownik projektu, wszyscy pracujący w IT, bez wyjątku, powinni posiąść minimum wiedzy o biznesie. Chociażby po to, aby nie frustrować się niepotrzebnie gdy przyjdzie nam porzucić w pół drogi świetnie od strony technicznej rozwijający się projekt, czy po to aby nie denerwować się, gdy przyjdzie nam sklecić do kupy jakieś rozwiązanie które w oczach programisty jest do dupy, a jest takie, bo są duże naciski na minimalizację czasu czy kosztu wytworzenia. Porzućmy przekonanie, że tego typu zdarzenia są objawem jakichś nieprawidłowości! Mogą być ale nie muszą. Porzućmy też przekonanie, że decyzje dotyczące IT powinny zapadać w IT. My, ludzie IT często irytujemy się, gdy przyjdzie nam wdrażać rozwiązanie IT kupione przez ludzi biznesu, które to rozwiązanie nie do końca jest zgodne z naszymi preferencjami. Często całkiem niesłusznie. Dobrze jest rozumieć uwarunkowania biznesu i to jak one rzutują na IT.

Każdy powinien działać na rzecz ogólnie pojętego dobra firmy w której pracuje. Za to nam w końcu płacą i z tego czerpiemy satysfakcję. Tyle, że niekoniecznie wiemy i rozumiemy czym to ogólnie pojęte dobro jest. Zrozumienie szerszego kontekstu – kontekstu biznesowego – nie tylko pozwoli nam pozbyć się zbędnych w większości przypadków frustracji, ale także pomoże nam dobrze wykonywać naszą pracę. Niestety bardzo niewielu z pośród nas, specjalistów IT, rozumie na czym ta jakość polega, tzn. często nie wiemy co to znaczy dobrze wykonać naszą pracę, co jest ważne a co nie. To szkodzi naszym firmom, ale przede wszystkim szkodzi naszej satysfakcji i dobremu samopoczuciu. Coś z tym trzeba zrobić.

Podobnie jak to czyniłem w trakcie przygotowań do certyfikacji SCJP, będę w trakcie tych studiów notował najważniejsze, posłyszane tam myśli i publikował je w formie wpisów na niniejszym blogu. Na użytek swój własny i wszystkich tych, którzy zdecydują się te wpisy czytać.