Język wszechobecny

Język wszechobecny

W projektach bardzo ważna jest komunikacja. Niestety często klient nie rozumie tego co mówią programiści a programiści tego co klient. Sposobem na rozwiązanie tego problemu może być język wszechobecny.

Komunikacja

My programiści mówimy językiem bardzo technicznym. Encje, serwisy, kontrolery, te słowa pojawiają się bardzo często w naszych rozmowach. Ale czy klient wie co to jest? Tak samo jak klient opowiada o swoim projekcie to używa słów z danej branży. Developerzy niekoniecznie muszą znać dziedzinę klienta. Jeszcze jak nie ma bezpośredniego kontaktu między programistami a klientem to łatwo można osiągnąć efekt głuchego telefonu. Z tego powodu droga do niezadowolenia obu stron jest prosta.

Ubiquitous language

Dzięki dostępowi do eksperta dziedzinowego można stworzyć wspólny słownik, który będzie używany przez wszystkich. Dla każdego będzie znaczył to samo. Język wszechobecny kształtuje się poprzez rozmowy, analizy. W momencie gdy słownik zostanie stworzony każda osoba zaangażowana w projekt powinna go używać. Tak samo ten język powinien być używany w kodzie dla naszych encji, serwisów, pól czy metod. Wtedy dużo łatwiej zrozumieć co klient ma na myśli, o co chodzi programiście. Z tego powodu istnieje mniejsza szansa, że projekt zakończy się jak klasyczny mem.

Język wszechobecny, do czego prowadzi gdy go nie ma
Język wszechobecny – tutaj go nie było

 Jeszcze lepiej gdy programiści zaczną rozumieć domenę w której istnieje Ubiquitous Language. W takim przypadku zamiast zwykłego klepania kodu będą mogli zamodelować jakiś proces biznesowy.

Czy łatwo wprowadzić język wszechobecny?

Na powyższe pytanie nie ma łatwej odpowiedzi. Jeśli zespół może się komunikować z klientem, ma dostęp do eksperta dziedzinowego to istnieje szansa, że to się uda. Jeśli z tą komunikacją są jakieś problemy jest to wtedy trudniejsze ale możliwe. Może ktoś z programistów interesuje się daną dziedziną lub ma kogoś znajomego z tej branży. Dla chcącego nie ma rzeczy niemożliwych.

Podsumowanie

Na pewno język wszechobecny nie rozwiązuje wszystkich problemów, jednak dzięki niemu można łatwiej się komunikować. Moim zdaniem Ubiquitous Language jest jednym z najważniejszych elementów DDD, a co najlepsze można go używać bez wdrożenia DDD. Daj mu szansę i spróbuj w swoim projekcie stworzyć słownik, którego każdy będzie używał a zobaczysz, że komunikacja się poprawi.