6 błędów - dlaczego programista nie potrafi porozumieć się z klientem?
Zbudowanie dobrej relacji pomiędzy programistą a klientem jest bardzo ważne w powodzeniu danego projektu. Taka zależność wymaga zarówno profesjonalnego podejścia, jak i zrozumienia. Zdarza się jednak, że na linii klient-programista występują problemy, które uniemożliwiają dalsze postępy projektu i marnują czas obu stron. Z tekstu dowiesz się, z czego wynikają owe trudności i jak sobie z nimi poradzić.
1. Różnica w sposobie komunikacji
Programista posługuje się językiem mocno technicznym i odpowiada na pytania klienta używając znanej mu nomenklatury. Klient może nie znać tych pojęć i komunikować swoje założenia w kompletnie inny sposób. Wtedy następuje niezrozumienie po obu stronach, co może przyczynić się do braku realizacji pewnych założeń w projekcie. Ważne jest, aby komunikacja między programistą a klientem została uspójniona. W naszej firmie odpowiada za to analityk biznesowy i Project Manager. Ich rolą jest zrozumienie oczekiwań biznesowych klienta i przełożenie ich na takie wymagania, które programista z łatwością wykona.
2. Nieumiejętność przyjmowania krytyki
Podczas trwania projektu może zdarzyć się sytuacja, w której programista nie wykona danego zadania na czas. Prowadzi to do braku postępów w projekcie i niezadowolenia klienta. W rozmowie z nim bardzo ważne jest, aby przyjąć jego uwagi bez uwalniania niepotrzebnych emocji. Należy solidnie argumentować, dlaczego dana funkcjonalność nie została wdrożona na czas, zaproponować inne rozwiązania. Umiejętność przyznawania się do błędu jest bardzo ważną cechą u programisty i jest nabywana z czasem.
3. Brak rozmowy o problemach
Należy pamiętać o tym, że rzetelność w relacji biznesowej również jest ważna. Zdarza się, że programista nie chce lub nie potrafi rozmawiać o problemach. Szybkie wykonanie i wdrożenie pewnych rozwiązań jest ważne z perspektywy klienta, jednak programiści bardzo często nie mówią, ile czasu rzeczywiście poświęcili na dane zadanie. Nie powinni tego zatajać, ale rzeczowo uzasadniać na co wykorzystują czas spędzony w pracy. Optymalnym rozwiązaniem, które efektywnie wykorzystujemy w prowadzeniu projektów jest narzędzie Jira – służy także do raportowania czasu.
Z moich doświadczeń wynika, że programiści, którzy wchodzą w branżę, zazwyczaj nie wiedzą, jak rozmawiać z klientem i odpowiadać na jego komentarze. Jeśli junior napisze, że nie umie czegoś zrobić, to źle świadczy zarówno o nim, jak i o firmie, która go zatrudnia. W naszej firmie kładziemy nacisk na cotygodniowe spotkania z klientem – programiści muszą uczyć się odpowiadać na pytania klienta. Wszystko jest kwestią chęci do nauki, rolą Project Managera jest wpływanie na ten proces – Adam Poznar, analityk biznesowy, Global4Net
4. Zbyt mało informacji od klienta
Niekiedy nieporozumienia wcale nie są winą programisty. Jego rolą jest przede wszystkim realizować wymagania klienta i wykonywać swoją pracę tak, aby nie tracić czasu na dopytywanie się o szczegóły. Są jednak sytuacje, w których to klient nie przekazuje wystarczających informacji, licząc tylko na efekty. Jeżeli jasno nie zakomunikuje jakich elementów potrzebuje lub nie poda dokumentacji danego systemu, programista będzie musiał poświęcić czas na doprecyzowanie tego we własnym zakresie. Ważne jest, aby każda ze stron wywiązywała się ze swojej roli.
5. Nieznajomość dokumentacji projektowej
Zrozumienie kontekstu biznesowego projektu ze strony programisty bardzo pomaga w sprawnym kontakcie z klientem. Równie ważne jest uczestniczenie we wspólnych zebraniach. Poświęcenie czasu na zapoznanie się z dokumentacją projektową pomoże oszczędzić dużo czasu w kontekście całego projektu. Na przykład programista powinien wiedzieć, jak wygląda proces zamówienia, zanim zajmie się tworzeniem koszyka. Patrząc na cały kontekst projektu, łatwiej mu będzie zrozumieć czym ma się zająć.
6. Brak zrozumienia interesów każdej ze stron
Ważne jest, aby programista starał się zrozumieć klienta, ale i klient był otwarty na jego pytania. Jeśli klient w ostatniej chwili poprosi o jakieś poprawki, to dociekając musi się dowiedzieć czy dana funkcjonalność jest ważna z punktu widzenia biznesowego. Ze strony technicznej programista może mieć wiele zadań do wykonania w tym czasie i mógłby odłożyć te poprawki na później. Bez ustalenia z klientem, dlaczego dana funkcja musi być wprowadzona od razu, nie zrozumie jej wagi biznesowej. Uzgodnienie priorytetów przez obie strony zawsze ułatwia współpracę i usprawnia postępy w projekcie.