Pracuję dla firmy produkującej oprogramowanie, w której prace programistyczne zostały nam przekazane. Zespół na lądzie obsługuje obsługę i rozmawia bezpośrednio z klientami. Nigdy nie rozmawiamy bezpośrednio z klientami, po prostu rozmawiamy z ludźmi z zespołu na lądzie, którzy rozmawiają bezpośrednio z klientami.
Gdy nadchodzą wymagania, zespół na lądzie rozmawia z klientami, sporządza dokumenty wymagań i informuje nas. Dokumenty projektowe wykonujemy po przestudiowaniu wymagań (kierujemy się tradycyjnym modelem wodospadu).
Jest jednak jeden problem w całym procesie: nikt w zespole ani na morzu, ani na lądzie nie rozumie całkowicie funkcjonalności aplikacji. Wiemy tylko, że jest to wielka, złożona aplikacja internetowa do obsługi złożonego przetwarzania zamówień, zarządzania katalogami, zarządzania kampaniami i innych działań. Walczymy z dokumentem projektowym, ponieważ wymagania nie byłyby jasne. Następnie przechodzi w serię pytań / odpowiedzi tam iz powrotem między zespołem na lądzie, zespołem na lądzie a klientami. Często mówiono nam, abyśmy rozumieli funkcjonalność z kodu. Ale zwykle nie jest to wykonalne, ponieważ baza kodu jest ogromna, a nawet zrozumienie prostej pozycji menu zajmuje dni, jeśli nie tygodnie. Próbowaliśmy powiedzieć klientom, aby przekazali nam wiedzęo aplikacji, ale bezskutecznie. Nasz kierownik często kazał nam rozpocząć kodowanie, nawet jeśli dokument projektowy nie jest kompletny lub wymagania nie są jasne. Zaczniemy od zakodowania części wymagań, które wydają się jasne, i poczekamy na resztę.
Zwykle opóźnia to wdrożenie o miesiąc. W skrajnych przypadkach mielibyśmy bardzo małe błędy w rozwoju i produkcji, ale klienci powiedzieliby, że nie o to pytają. To zaczynałoby się od obwiniania i szeregu próśb o zmiany, a w końcu opracowywaliśmy coś zupełnie innego.
Moje pytanie brzmi: jak zrobiłbyś prace programistyczne, jeśli nie znasz w pełni funkcjonalności aplikacji?
AKTUALIZACJA
Metodologia rozwoju nie jest tak naprawdę moim wyborem i nie jestem liderem mojego zespołu. Tak to się zaczęło. Próbowałem powiedzieć ludziom o zaletach zwinności, ale bezskutecznie. Poza tym nie sądzę, aby mój zespół miał niezbędne nastawienie do pracy w zwinnym środowisku.