Ile trwa tworzenie aplikacji dla firmy: widełki i czynniki
Termin zależy mniej od liczby ekranów, a bardziej od tego, jak szybko firma podejmuje decyzje i udostępnia dane. Podaję widełki, które mogę uczciwie ustalić, i to, co je zmienia.
Autor: Szymon Łakomy. Aktualizacja:
Widełki, które mogę uczciwie podać
| Rodzaj projektu | Czas | Od czego zależy |
|---|---|---|
| MVP, pierwsza wersja z najważniejszymi funkcjami | typowo 3 do 6 tygodni | liczba funkcji w pierwszej wersji i tempo decyzji |
| Większy system z kilkoma modułami | etapami, termin po analizie | kolejność modułów i integracje |
| Nowy moduł w działającej aplikacji | zwykle krócej niż nowy projekt, termin po wycenie | jakość istniejącego kodu i dokumentacji |
| Modernizacja starego systemu | najpierw przegląd, potem etapy, termin po przeglądzie | stan kodu, jakość danych i dostępna dokumentacja |
Dla dużych systemów nie podaję jednej liczby miesięcy, bo bez analizy byłoby to zgadywanie.
Z czego składa się czas
- Analiza. Rozmowa o procesach, spisanie zakresu i decyzja, co wchodzi do pierwszej wersji.
- Projekt. Układ ekranów, model danych i ustalenie, z czym aplikacja się łączy.
- Budowa. Programowanie w krótkich odcinkach, z pokazywaniem działających części.
- Testy. Sprawdzenie na prawdziwych danych przez osoby, które będą z aplikacji korzystać.
- Uruchomienie. Wdrożenie na serwer, przekazanie dostępów i krótkie szkolenie zespołu.
Etapy zazębiają się: testy zaczynają się, zanim powstaną wszystkie moduły, a analiza wraca przy każdym kolejnym etapie. Dlatego nie sumuję ich mechanicznie, tylko pokazuję harmonogram w podziale na etapy. Przy starym systemie zaczynam od przeglądu, o którym piszę w opisie modernizacji starego oprogramowania.
Co wydłuża projekt
- Decyzje po stronie firmy. Każde pytanie bez odpowiedzi zatrzymuje pracę nad danym modułem.
- Dane. Import z arkuszy i starych programów wymaga czyszczenia, a jego zakres zależy od stanu danych.
- Integracje. Czas rośnie, gdy druga strona ma słabą dokumentację albo nie ma środowiska testowego.
- Zmiany zakresu w trakcie. Dodanie funkcji w połowie przesuwa wszystko, co od niej zależy.
- Brak jednej osoby decyzyjnej. Gdy trzy osoby mają trzy zdania, termin zależy od tego, kiedy się dogadają.
Dołożenie kolejnych programistów rzadko skraca termin proporcjonalnie, bo spora część pracy zależy od decyzji i testów z użytkownikami, a nie od liczby rąk do pisania kodu.
Jak skrócić drogę do pierwszej wersji
Najwięcej daje wąski zakres pierwszej wersji. Jak go wybrać, opisuję w poradniku co to jest MVP i kiedy warto. Drugą rzeczą jest dobrze przygotowany opis zlecenia, a w tym pomoże jak opisać zlecenie dla programisty. Trzecią jest osoba po Twojej stronie, która odpowiada na pytania na bieżąco i ma prawo podjąć decyzję.
Po uruchomieniu praca nie znika
Prawdziwi użytkownicy robią rzeczy, których nie przewidziano w testach, więc po starcie pojawia się lista poprawek. Zaplanuj na nią czas i budżet, a także opiekę nad aplikacją. Orientacyjne koszty systemów na zamówienie opisuję w ile kosztuje dedykowane oprogramowanie.
Najczęstsze pytania
Czy da się zrobić aplikację szybciej niż w 3 tygodnie?
Bardzo mały zakres, na przykład prosty formularz z listą zgłoszeń, może być gotowy szybciej, ale to raczej automatyzacja niż aplikacja. Skracanie terminu kosztem testów zwykle wraca poprawkami po uruchomieniu.
Czy mogę korzystać z aplikacji, zanim będzie skończona?
Tak, o ile pierwszy etap jest samodzielny. Budując etapami, oddaję działające części, więc zespół może zacząć pracę na nich, a kolejne moduły dochodzą później.
Kto decyduje o terminie?
Wspólnie. Po analizie podaję harmonogram etapów, a Ty potwierdzasz zakres. Jeśli zakres się zmienia, mówię, jak wpływa to na termin, zanim zacznę pracę nad zmianą.
Co jeśli termin jest sztywny?
Wtedy ustalamy, co wchodzi do wersji na ten termin, a resztę przesuwamy do kolejnego etapu. Zmniejszenie zakresu jest skuteczniejsze niż skracanie testów.
Powiązane strony
Chcesz poznać termin swojego projektu?
Opisz, co ma robić aplikacja i do kiedy jest potrzebna. Odpowiem z propozycją etapów i harmonogramem.