Zarządzać życiem aplikacji

Planowanie, kontrola i koordynacja prac programistycznych układa się w dość niepowtarzalny cykl.

Specyfika projektów programistycznych wynika m.in. z dużej złożoności prac oraz konieczności ich realizacji na styku biznesu i IT. Zbieranie wymagań, planowanie prac i ich dalsza realizacja oraz wdrożenie poprzedzone testowaniem to najważniejsze elementy typowego cyklu produkcji aplikacji w rozumieniu technicznym. W ujęciu biznesowym cykl ten jest nieco bardziej złożony i uwzględnia analizę opłacalności i kosztorysowanie. Typowych projektów programistycznych jest jednak coraz mniej. Coraz większy nacisk kładziony jest bowiem na elastyczność, zwinność, ścisłą integrację, niskie koszty i krótki czas produkcji aplikacji. Wymagania te trudno ze sobą pogodzić. Tym bardziej, że zmiany funkcjonalno-techniczne są realizowane równolegle i dotyczą różnych elementów kodu.

Działanie na żywym oprogramowaniu

Biznesowe etapy cyklu rozwoju aplikacji

1. Sformułowanie założeń projektu.

2. Analiza i szacowanie opłacalności.

3. Zatwierdzenie prowadzenia prac wstępnych.

4. Zebranie wymagań szczegółowych.

5. Projekt wysokiego poziomu.

6. Weryfikacja z biznesem.

7. Projekt niskiego poziomu.

8. Planowanie i kosztorysowanie.

9. Zatwierdzenie do wykonania.

10. Wykonanie / kodowanie.

11. Testy akceptacyjne.

12. Wdrożenie.

13. Pielęgnacja.

"Warto zwrócić uwagę na starą prawdę - im wcześniej popełniony jest błąd, tym trudniej go naprawić. Jeżeli nieprawidłowo określimy potrzeby klienta, to może się okazać że cały produkt nadaje się do stworzenia od nowa" - podkreśla Marek Kucharski, prezes zarządu Parasoft. Niedawno w wywiadzie dla nas Piotr Kardach, prezes przyznał się do tego, że - z powodów błędów dokonanych podczas analizy budowy systemu, czy złego wyboru jego architektury - firma prowadziła nierentowne projekty. A za każdy błąd trzeba było płacić. Wymusiło to poważne zmiany w organizacji procesu produkcji oprogramowania.

Tego typu błędy dodatkowo komplikują pracę szefa projektu, który musi wielokrotnie kontaktować się z klientem, a następnie panować nad wszystkimi, dodatkowymi pracami programistycznymi. "W rzeczywistości wspomniane etapy często się pokrywają i nigdy nie występują sekwencyjnie. Uzyskanie spójnego i kompletnego zakresu wymagań warunkuje sukces całego przedsięwzięcia" - stwierdza Maciej Mroczek, dyrektor Pionu Rozwoju Aplikacji w . Podkreśla również wagę obustronnego zrozumienia dla wstępnych warunków projektu.

Podczas kolejnych iteracji cyklu produkcji oprogramowania nie da się uniknąć zmian funkcjonalno-architektonicznych. W profesjonalnie zarządzanych projektach deweloperskich zmiany te wynikają jednak wyłącznie ze zmieniających się wymagań klienta. Skrócenie czasu i kosztów wynikających z "przebudowy" aplikacji możliwe jest m.in. dzięki stosowaniu jednej, spójnej metodyki, elastycznej warstwy technologicznej oraz praktyk zarządzania zmianą. "Metodyka rozwiąże problem nadmiary swobody prowadzący do implementacji tego, co fajnie zamiast tego, co potrzebne. Architektura zapewni, że zmiany będą możliwe do wprowadzenia, a zarządzanie zmianami pozwoli utrzymać w ryzach zakres projektu i określić koszty przyszłych zmian" - uważa Maciej Mroczek.