Cześć,
Z racji że w swojej karierze udało mi się popracować po obu stronach barykady to zauważyłem jedną zasadniczą różnicę pomiędzy szeroko rozumianym myśleniem biznesowym a myśleniem programisty(i brakiem myślenia biznesowego programistów wg. biznesu).
Dla uproszczenia przedstawicieli biznesu będę nazywał biznes(proszę nie obrażać się! :D)
I generalnie cały problem można skwitować tym że jest jedna różnica. Różnica ta polega na tym że biznes używa pojęć w kontekście a programista używa pojęć bez kontekstu.
Najprościej będzie to przedstawić na przykładzie:
W dużym uproszczeniu biznes mówi że do systemu dla wskazanego wątku(powiedzmy zadania) można załączyć fakturę.
- Dla programisty faktura to jest plik w określonym formacie(powiedzmy pdf). Dla biznesu to jest dokument który zawiera informacje o tym kto ma komu zapłacić, za co, do kiedy (i jeszcze przeważnie na jakie konto).
- Dla programisty można załączyć pusty plik pdf i jest ok. Dla biznesu trzeba załączyć konkretny dokument który niekoniecznie musi być pdf.
- Dla programisty załączyć fakturę to znaczy wgrać plik pdf na serwer. Dla biznesu załączyć fakturę kryje za sobą możliwość jej zobaczenia, pobrania z niej istotnych informacji, możliwość jej opłacenia czy rozliczenia.
Faktura może być:
- Skanem dokumentu w jpg, bmp, png (no i oczywiście w PDF)
- Zwykłym dokumentem docx
- Dokumentem pdf
Dlaczego tak się dzieje?
Dlatego że biznes jak mówi co chce to nie mówi o checkboxach, inputach, bannerach, CRUDach, listach, menu, przyciskach. Biznes mówi o fakturze.
Biznes mówi o tym co chce a programista z automatu to tłumaczy na elementy programistyczne (to jest oczywiście cecha która świadczy o tym że dana osoba jak najszybciej chce dostarczyć rozwiązanie bo już myśli o tym jak daną rzecz zrobić).
No i tu mamy największy problem i rozjazd. Biznes używa słownika słów wykorzystywanych w danej branży. Natomiast programista patrząc na tą samą rzecz używa słownika słów programistycznych. Nazewnictwo biznesowe i nazewnictwo programistyczne pomimo tego że to ten sam język naturalny zawiera w sobie całkowicie inne zasady postępowania.
Cała sprawa w analizie IT została ładnie nazwana jako kontekst. A kontekst to nic innego jak wszystko to co jest oczywiste i wiadome dla osoby prowadzącej konwersację(czyli np. dla rozmowy Analityk – Klient).
Wiele rzeczy jest wiadome z racji różnych czynników takie jak:
- Wiedza i doświadczenie rozmówców
- Znajomość słownika branżowego
- Zaznajomienie się z typowym dniem pracy użytkownika końcowego
- Założenia projektowe
- Wszystkie normy prawne
- Wszystkie reguły biznesowe
- Wszystkie procedury zarządzania zmianą
- itp.
Wszystkie elementy kontekstu mają taką cechę że są przez wszystkich znane ale nie są jawnie przedstawiane przez innych. Efektem tego jest to że rozmówca po drugiej stronie zakłada że ty coś wiesz(a ty niekoniecznie to wiesz). To samo tyczy się drugiej strony gdzie ty zakładasz że twój rozmówca coś wie.
No i zabawa zaczyna się w momencie gdy ścieramy ze sobą programistę który myśli w kategorii obiektów, skryptów, elementów FE i biznesu który myśli w kategoriach swojego kontekstu biznesowego.
I taka jest cała różnica w myśleniu. Myślenie biznesowe to przede wszystkim zrozumienie potrzeb klienta oraz jak klient myśli i opisuje swoje oczekiwania oraz pracę.