Kopanie studni w sto osób, czyli rzecz o zespole

Bjarne Stroustrup w książce Język C++ napisał: 'Programowanie to dziedzina działalności ludzi. Jeżeli o tym zapomnisz, wszystko stracone'. Trudno o bardziej trafne stwierdzenie. Dawno już minęły czasy, kiedy jeden pasjonat tworzył program tak fantastyczny, że porywał go wygłodniały rynek, a produkt ten określał trendy w informatyce na najbliższe lata.

Bjarne Stroustrup w książce Język C++ napisał: 'Programowanie to dziedzina działalności ludzi. Jeżeli o tym zapomnisz, wszystko stracone'. Trudno o bardziej trafne stwierdzenie. Dawno już minęły czasy, kiedy jeden pasjonat tworzył program tak fantastyczny, że porywał go wygłodniały rynek, a produkt ten określał trendy w informatyce na najbliższe lata.

Systemy informatyczne doby współczesnej są tworzone w pocie czoła przez zespoły wysoko wykwalifikowanych specjalistów. W 1980 roku Microsoft zatrudniał 38 osób. W roku 1990 już 5635, a w 1995 - 17 800.

Niektórym wydaje się, że ludzie to trybiki w maszynie, które można dowolnie podmieniać i zastępować. To prawda w przypadku pracy nad niskotechnologicznym produktem, takim jak batoniki, mydło czy rury plastikowe; tam, gdzie liczba niewiadomych jest mała, a zarządzanie zachowawcze. Nie sprawdza się zaś w procesie tworzenia oprogramowania. Tworzenie wysokotechnologicznego, niematerialnego produktu, jakim jest system informatyczny, wymaga ponad wszystko zaangażowania, inteligencji, wiedzy i pracy ludzi.

Kompletowanie zespołu

Polskie uczelnie opuszcza co roku średnio 2000 osób z wyższym wykształceniem informatycznym. Drugie tyle, a może i więcej, co roku zmienia pracę. Wydawałoby się, że jest w czym wybierać. Gdyby jednak tak było, to informatycy nie stanowiliby jednej z lepiej zarabiających grup zawodowych.

Jednocześnie każdy, kto kiedyś borykał się z problemem rekrutacji personelu informatycznego, potwierdzi, że znalezienie naprawdę kompetentnych pracowników to droga przez mękę. Jedyną zaś prawdą, którą można powiedzieć na temat rekrutacji, jest to, że trudno o uniwersalne prawdy. Jedni pracownicy pracują, bo mogą się czegoś nauczyć; inni, bo dostali służbowy samochód i telefon komórkowy; jeszcze inni, bo w firmie panuje miła atmosfera; a jeszcze inni, bo mają nie normowane godziny pracy. Generalnie można poczynić kilka spostrzeżeń, do których jednakże należy podchodzić z rezerwą:

  • jeżeli korzysta się z nowoczesnych technologii i narzędzi, trzeba szukać absolwentów; jeżeli z narzędzi i technologii obecnych od pewnego czasu na rynku, trzeba szukać ludzi z doświadczeniem

  • należy dać każdemu możliwość rozwoju zawodowego i możliwie dużo swobody (w ramach projektu, rzecz jasna)

  • tak już jest, że informatyk to dobrze płatny zawód - nie można pozwolić, by inni podkupywali ludzi

  • trzeba doceniać staż pracy - Tom DeMarco i Timothy Lister w książce Peopleware. Productive Projects and Teams powołują się na badania, z których wynika, że wydajność informatyków na podobnych stanowiskach może się różnić nawet o rząd wielkości

  • warto stwarzać poczucie elitarności

  • należy stymulować więzi wewnątrz zespołu.
Jeszcze raz chciałem podkreślić, że na powyższe postulaty należy patrzeć przez pryzmat zdrowego rozsądku oraz lokalnej kultury i przyzwyczajeń.

Fachowcy i pasjonaci

Początek lat dziewięćdziesiątych był okresem, kiedy wiele osób "przekwalifikowało się" na informatyków. Jeżeli miały one sensowne wyższe wykształcenie, to niektórym nawet mogło się to udawać. Dziś te czasy należą do przeszłości. Warunkiem koniecznym, choć nie wystarczającym, bycia tzw. fachowcem od tworzenia systemów informatycznych, jest wyższe wykształcenie kierunkowe. Miejsce pasjonatów, domorosłych magików komputerowych pozostanie przy konsolach mniej zaawansowanych serwerów sieciowych, przy tworzeniu prostych stron WWW i na kursach obsługi komputera dla urzędników. Tworzenie zaawansowanego systemu informatycznego wymaga pewnego fundamentu. Łatwo można podać przykłady:

  • Normalizacji relacyjnych baz danych nie można nauczyć się samodzielnie, choćby spędzało się dowolnie dużo czasu przed monitorem.

  • Rachunki na typach zmiennoprzecinkowych mają swoje ograniczenia. Jeżeli ktoś tego nie rozumie i np. liczy pieniądze na tych typach, to może popaść w wielkie tarapaty.

  • Dekompozycji problemu na mniejsze składowe nie sposób nauczyć się, pisząc makra Lotusa 1-2-3, choćby nie wiem jak sprytne.

  • Tylko znajomość kilku różnych języków programowania pozwoli abstrahować od kodu i dokonać poprawnej analizy wymagań i projektu systemu.

  • Jedynie biegła znajomość algebry Boole'a, przećwiczona na setce procedur, pozwala optymalnie skonstruować pętle i warunki, czyli rdzeń algorytmów programu.

  • Tworzenie programów wielowątkowych wymaga szczególnej uwagi przy synchronizacji dostępu do zasobów. Tego nie uczą na kursach Norton Commandera ani w policealnym studium technik informatycznych.
Pasję zostawmy więc artystom. W informatyce najlepiej sprawdza się profesjonalizm.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200