W tym przypadku, gdy zadanie interfejsu użytkownika ma krytyczną zależność od kodu zaplecza, a Ty chcesz rozpocząć pracę z interfejsem, zanim zostanie on sfinalizowany i zaakceptowany w trybie głównym, po prostu uruchomię zadanie interfejsu jako gałąź funkcji, która wychodzi z gałąź backendu, zamiast rozgałęziania frontendu na masterie.
Gałąź funkcji, która żyje wystarczająco długo, musi okazyjnie łączyć zmiany ze wzorca (aby upewnić się, że można pogodzić wszelkie konflikty scalania lub semantyczne w ramach prac deweloperskich nad gałęzią funkcji, a nie w ramach „przeglądu, qa, scalania- proces do opanowania). Robisz to w gałęzi frontonu, a kiedy praca backendu zostanie zaakceptowana do opanowania, otrzymasz wszelkie drobne zmiany, które zostały wprowadzone do backendu w ramach jego przeglądu / akceptacji automatycznie, tą samą drogą, którą zrobiłbyś uzyskać wszelkie inne zmiany kodu na master.
Jeśli okaże się, że gałąź backendu wymaga dużo więcej pracy i nadal zmienia się przez pewien czas, zanim zostanie scalona z masterem (powiedzmy, jeśli podczas przeglądu zostaną wykryte poważne problemy), prawdopodobnie prawdopodobnie chciałbyś wykonywać okresowe połączenia bezpośrednio z gałęzi backendu do gałęzi frontendu (więc nie opieraj całej pracy frontendu na przestarzałym kodzie backendu). Jest to łatwe, jeśli jesteś jedynym programistą, który wykonuje obie funkcje (ponieważ wiesz, czy sam dokonujesz poważnych zmian), ale nawet jeśli obie funkcje są obsługiwane równolegle przez różnych programistów, powinno być dobrze; po prostu musisz pozostać w komunikacji (co i tak byś musiał, jeśli pracujesz nad zadaniami równolegle, w których jedno ma krytyczną zależność od drugiego).
Jeśli okaże się, że cała gałąź zaplecza musi zostać porzucona i nigdy nie zostanie scalona (wygląda na to, że byłaby to dość poważna sprawa, która rzadko by się zdarzyła), wówczas albo wybieracie swoje zobowiązania do nowej gałęzi, która odchodzi od mistrza bez pracy backendu, lub zastosujesz zatwierdzenia wsteczne, które usuwają cały kod backendu do gałęzi frontendu. Ale, jak widzę, bardziej prawdopodobne byłoby zatrzymanie pracy frontendu, dopóki nie zorientujesz się, co zastąpi wyrzucany backend, a następnie zdecydujesz, co robić.