Zarządzanie kodem źródłowym

Natura oprogramowania zmieniła się od czasów pierwszych PC, gdy dostępne były jedynie prościutkie programy, pisane dla własnych potrzeb przez pojedynczych programistów, którzy nie musieli dbać o dokumentację, pamiętać o wszystkich zmianach wprowadzonych w trakcie pracy ani dzielić się jej wynikami z innymi programistami. Obecnie program może zawierać dziesiątki lub setki tysięcy linii kodu i jest opracowywany przez wielkie zespoły programistów; podobno Windows 95 zawiera 11 mln linii kodu, napisanych przez ponad setkę programistów w pracowniach wyposażonych w różne komputery, od PC po mainframe'a.

Natura oprogramowania zmieniła się od czasów pierwszych PC, gdy dostępne były jedynie prościutkie programy, pisane dla własnych potrzeb przez pojedynczych programistów, którzy nie musieli dbać o dokumentację, pamiętać o wszystkich zmianach wprowadzonych w trakcie pracy ani dzielić się jej wynikami z innymi programistami. Obecnie program może zawierać dziesiątki lub setki tysięcy linii kodu i jest opracowywany przez wielkie zespoły programistów; podobno Windows 95 zawiera 11 mln linii kodu, napisanych przez ponad setkę programistów w pracowniach wyposażonych w różne komputery, od PC po mainframe'a.

Program do obsługi przedsiębiorstwa nie może być dziełem jednej osoby, ani wynikiem jednego dnia pracy. Składa się nań wysiłek wielu ludzi, tworzących różne jego części. Jeżeli nawet tworzy się je oddzielnie, to trzeba je połączyć i uruchomić razem. Ich jakość i zgodność trzeba utrzymywać za pomocą odpowiednich narzędzi.

Jednakże zanikanie mainframe'a jako środowiska do opracowania aplikacji powoduje, że programiści coraz częściej pracują w systemach bez centralnego punktu kontroli. Zakrawa na ironię fakt, że ludzie, którzy całe życie pracują nad ułatwianiem i automatyzacją pracy innych, sami nie mają jej zautomatyzowanej.

Ostatnio furorę robią narzędzia do "zarządzanie kodem źródłowym" lub "zarządzania konfiguracją" - produkty programistyczne służące do zarządzania przebiegiem tworzenia oprogramowania.

Narzędzia do zarządzania kodem źródłowym działają jak pamięć zbiorowa w procesie tworzenia oprogramowania, najważniejszy przewodnik po linii produkcyjnej programów. Zawierają one coś w rodzaju bazy danych o wszystkich elementach programu, datach ich powstania, identyfikują kto je napisał i kto za nie odpowiada oraz monitorują ich status w ciągu całego czasu życia programu: podczas projektu, kodowania, testowania i uruchamiania. Narzędzia do zarządzania kodem źródłowym pozwalają programistom na opracowywanie różnych wersji aplikacji i określanie zależności między różnymi jej elementami. Produkty te śledzą zmiany (różne wersje) w plikach, obiektach i grupach plików.

Narzędzia do zarządzania kodem źródłowym zmieniają rzemiosło programowania, wykonywane przez małą grupę ludzi w przemysł informatyczny. W końcu lat 80. jedynie programiści w telekomunikacji i wojsku stosowali narzędzia do zarządzania kodem źródłowym. Obecnie stają się one standardowym składnikiem każdego procesu tworzenia aplikacji programistycznej.

Firma Ovum z Londynu ocenia, że obecny rynek narzędzi do zarządzania kodem źródłowym wynosi ok. 500 mln USD i wzrośnie do ok. 1 mld USD w 1997 r. Skąd tak wysoka wartość rynkowa tych narzędzi? Ovum ocenia, że w Europie i USA jest ponad 2 mln "poważnych" progamistów. Obecnie cena jednej licencji na narzędzia do zarządzania kodem źródłowym wynosi ok. 2 tys. USD (dla 2 użytkowników), co oznacza, że potencjalny rynek tych narzędzi wynosi 1-2 mld USD.

Używanie narzędzi do zarządzania kodem źródłowym związane jest także z koniecznością zapewnienia wysokiej jakości programów. Standardy ISO 9000 wymagają stosowania takich narzędzi, wymuszających pełną kontrolę nad produktem. Podobne żądania wysuwają różne agendy międzynarodowe i rządowe w wielu krajach. Ponadto posiadanie pełnej dokumentacji procesu tworzenia produktu może znacznie ułatwić rozstrzyganie wątpliwości w razie "wpadki" i poniesienia strat przez użytkownika oprogramowania. Narzędzia do zarządzania kodem źródłowym ułatwiają także proces utrzymywania programu w czasie używania go.

Informatycy znają ten specyficzny klimat słabo kontrolowanego chaosu w trakcie tworzenia programów: w pewnym momencie okazuje się, że nic nie działa, nikt nie wie co działa z czym, jakie części kodu są dobre, a jakie złe itp. Używanie narzędzi do zarządzania kodem źródłowym znacznie usprawnia cały proces i pozwoli na unikanie takich sytuacji. Odtworzenie działającej wersji programu można wykonać w kilka godzin, zamiast w kilka tygodni czy dni.

Produkty do zarządzanie kodem źródłowym nie zostały zaakceptowane łatwo przez programistów, ale wynika to głównie z tego, że większość z nich musiała opracować jakieś własne namiastki takich produktów.

Produkty

Historycznie istniało kilka produktów do zarządzanie kodem źródłowym, które zdominowały rynek. W sieciach PC przoduje Program Version Control System (PVCS) firmy Intersolv, mający ok. 70% rynku takich narzędzi do PC. Dla mainframe'ów takim narzędziem jest CA-Endevor (opracowany przez firmę Legent, zakupioną w 1995 r. przez Computer Associates). Developer Magic Tools firmy Silicon Graphics i Proces Configuration Management Software (PCMS) firmy SQL Software wiodą prym w świecie Unixa. PCMS działa także w Windows, Windows NT i VMS, pozwalając na kontrolę wersji w heterogenicznym środowisku obliczeniowym. Narzędzia IBM CMVC także pozwalają na mieszanie platform i korzystanie z jednego interfejsu użytkowego w różnych środowiskach.

Jednakże w środowisku Windows jedynym zwycięzcą okaże się zapewne produkt SourceSafe, opracowany przez firmę One Tree Software, zakupioną w 1994 r. przez Microsoft. SourceSafe zastąpił własny produkt Microsoftu - Delta. Nowa wersja SourceSafe pozwala na zarządzanie kodem źródłowym w DOS, Windows, Windows NT i na Macintoshu. Obecnie dostępny jest Visual SourceSafe, działający także w Windows 95.


TOP 200