Zależności określają logiczną kolejność prac. Stanowią kręgosłup każdego wykresu Gantta i są powodem, dla którego w ogóle istnieje oprogramowanie do harmonogramowania — bez nich nie da się ręcznie śledzić, jak opóźnienie jednego zadania wpływa na 50 innych.
Dlaczego zależności są ważne
Gdy powiążesz zadania zależnościami, LoopGantt staje się silnikiem harmonogramowania, a nie tylko kalendarzem. Zmień czas trwania zadania lub przesuń datę, a cały dalszy harmonogram natychmiast się przeliczy. To tzw. kaskadowe przeliczanie harmonogramu, które oszczędza wiele godzin ręcznego przeplanowywania po nieuniknionych zmianach zakresu.
Zależności ujawniają też ścieżkę krytyczną projektu — najdłuższy łańcuch zależnych od siebie zadań. Każde opóźnienie na ścieżce krytycznej opóźnia datę zakończenia projektu. Zadania spoza ścieżki krytycznej mają zapas (slack) — mogą się przesunąć bez wpływu na termin dostarczenia.
Cztery typy zależności
FS — Zakończenie–rozpoczęcie (najczęstszy)
Task A ████████
Task B ████████
Zadanie B nie może się rozpocząć, dopóki zadanie A się nie zakończy.
Stosuj przy pracach sekwencyjnych: „Napisz raport” → „Zrecenzuj raport”. To typ domyślny, który obejmuje ok. 80% zależności spotykanych w praktyce.
SS — Rozpoczęcie–rozpoczęcie
Task A ████████████ Task B ████████ Zadanie B nie może się rozpocząć, dopóki nie rozpocznie się zadanie A.
Stosuj przy pracach równoległych, które mogą ruszyć razem, ale wymagają koordynacji. Przykład: „Projekt architektury” i „Specyfikacja API” mogą rozpocząć się w tym samym czasie, ale specyfikacja zależy od tego, czy prace nad architekturą już trwają.
Dodaj zwłokę (SS+3), aby określić, że „B rozpoczyna się 3 dni po rozpoczęciu A” — przydatne, gdy A musi być częściowo ukończone, zanim zacznie się B.
FF — Zakończenie–zakończenie
Task A ████████████
Task B ████████
Zadanie B nie może się zakończyć, dopóki nie zakończy się zadanie A.
Stosuj, gdy dwa zadania muszą zakończyć się razem. Przykład: „Testy QA” i „Testy beta” powinny skończyć się w tym samym czasie, aby zespół mógł wspólnie przejść do zgłoszenia.
SF — Rozpoczęcie–zakończenie (rzadki)
Task A ████████ Task B ████████ Zadanie B nie może się zakończyć, dopóki nie rozpocznie się zadanie A.
Najrzadszy typ. Przydatny w scenariuszach just-in-time i przy przekazywaniu zmian. Przykład: pracownik nocnej zmiany (B) nie może wyjść, dopóki nie przyjdzie pracownik zmiany dziennej (A). W większości projektów programistycznych rzadko będziesz potrzebować typu SF.
Zwłoka i wyprzedzenie
Każda zależność może mieć zwłokę (liczba dodatnia) lub wyprzedzenie (liczba ujemna):
| Notacja | Znaczenie |
|---|---|
| FS+2 | B rozpoczyna się 2 dni po zakończeniu A |
| FS-1 | B rozpoczyna się 1 dzień przed zakończeniem A (nakładanie się) |
| SS+5 | B rozpoczyna się 5 dni po rozpoczęciu A |
| FF+0 | B kończy się dokładnie wtedy, gdy kończy się A |
Wyprzedzenie (ujemna zwłoka) pozwala realistycznie modelować prace równoległe — na przykład rozpocząć testy integracyjne 2 dni przed oficjalnym zakończeniem prac programistycznych.
Zasady w LoopGantt
- Fazy nie mogą mieć zależności. Zamiast tego powiąż zadania wewnątrz faz.
- Zależności cykliczne (A → B → A) są automatycznie wykrywane i odrzucane.
- Zadanie może mieć wiele poprzedników — rozpocznie się dopiero wtedy, gdy wszystkie poprzedniki spełnią swoje warunki.
Jak dodać zależność
- Kliknij zadanie będące następnikiem, aby otworzyć edytor zadania.
- Przejdź do sekcji Zależności.
- Otwórz listę Wybierz poprzednika… i wskaż zadanie poprzedzające.
- Kliknij plakietkę typu, aby wybrać typ (FS/SS/FF/SF), oraz wartość zwłoki, aby ustawić liczbę dni zwłoki (opcjonalnie).
- Zamknij edytor. Zmiany są zapisywane na bieżąco, a harmonogram zostaje natychmiast przeliczony.
Możesz też przeciągnąć linię zależności bezpośrednio na wykresie Gantta: najedź kursorem na prawą krawędź paska, aż pojawi się ikona łącznika, a następnie przeciągnij do zadania docelowego.