Ludzie lubią przewidywalność, albo nawet nie tyle przewidywalność, a poczucie bezpieczeństwa i przewidywalności, czy też mienia kontrol nad czymś.
To poczucie nie musi być oparte o rzeczywistość, musi być po prostu odczuwane. Często wystarcza po prostu kocyk.
W programowaniu jest conajmniej kilka takich kocyków.
Branche - wiadomo, że branche mają tendencję do prowadzenia do merge conflictów, co nie zmienia faktu, że jak rozmawiasz z developerami to często słychać stwierdzenie "czuję się bezpieczniej używając branchy". Branche dają poczucie stabilności, kontroli, tego że tutaj w tym nad czym pracuję nic się nie zmieni poza moją kontrolą.
Scrum - a dokładniej Sprinty. Daje jakieś ramy, jakieś rusztowanie. Wiadomo kiedy będą spotkania (no chyba, że ja mam na to wpływ, bo jak mogę to staram się robić zawsze w tym samym czasie, ale nie ustawiam powtarzalnych meetingów, tylko każdy tworzę ręcznie ;-)), wiadomo ile jeszcze czasu mamy i jest to poczucie przewidywalności, kontroli nad tym co się dzieje, chaos na nas nie patrzy i nie macha nam radośnie z otchłani, zamiast patrzeć na cały backlog można spojrzeć na ten jeden kawałek i skupić się nad tym kawałkiem.
Ludzie mają problem z niepewnością, która jest tak naprawdę jedyną pewną rzeczą w życiu ;-)
Ale overload ma swoje problemy, u mnie może oznaczać zrzucanie wszystkiego co nie jest stabilne, albo bezwzględnie potrzebne. Powoduje dyskomfort taki, że nie wiadomo co z tym robić? Odrzucić. Podobnie z czymś co nie pokazuje progressu.
Chociaż to ma też zalety ;-) bo to jest całkiem skuteczny sposób filtrowania. Pozwala na odsuwanie decyzji, które nie są krytyczne, albo nie brnąć w coś co nie rokuje.
Są najmniej dwa rodzaje decyzji, decyzje odwracalne i nieodwracalne.
W kodowaniu te odwracalne możemy sobie podejmować kiedy i jak nam się podoba, te nieodwracalne są gorsze, bo trudniej się z nich wycofać.
Na szczęście często decyzje nieodwracalne są takie tylko z pozoru, wybór np. silnika do bazy danych, czy rodzaju bazy danych (czy relacyjna czy NoSQL) można odsunąć wprowadzając abstrakcje która ukrywa mechanizmy pod prostym API (prostym w sensie basic, nie prostym w sensie easy).
Podobne postybeta
O tym czemu branche są złe...
O używaniu 3rd party API
SCRUM i ogólnie Agile to często taka zakamuflowana forma premature optimization
Lubię mieć wybór, ale nie lubię wybierać ;-)
Kariera IT, jak iść w górę i jak iść w bok ;-)
Brak komentarzy:
Prześlij komentarz