Zarządzać życiem aplikacji
- Piotr Waszczuk,
- 05.05.2009
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
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.
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 Ericpol Telecom. 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.