Zasadniczą częścią tego jest to, że odpowiedzialnością kodera jest stworzenie kodu, który działa i spełnia wymagania. Wymaga to szczególnego sposobu myślenia - „Kod, który piszę, robi to, co powinien”.
Pomieszanie obowiązków programisty oznacza, że programista musi teraz wprowadzić inne nastawienia do innych czynności, jednak jako programista trudno jest całkowicie oderwać się od tego nastawienia.
Obowiązkiem testera jest znalezienie błędów i miejsc, w których funkcjonalność odbiega od wymaganej funkcjonalności. Wymagało to sposobu myślenia „Kod jest zepsuty i dowiem się, jak”.
Podobnie, analityk biznesowy próbuje określić wymagania, o które tak naprawdę prosi klient. Wymaga to innego sposobu myślenia: „aplikacja nie działa w ten sposób, ale powinna”.
Aby koder działał w którejkolwiek z tych innych funkcji, istnieje uzasadnione prawdopodobieństwo, że nastawienia będą sprzeczne, a koder wykona podparat:
- Coder / QA - „Kod działa doskonale, a ja już kodowałem, aby obsłużyć każdy możliwy sposób, który może go zepsuć”.
- Coder / BA - „Kod powinien działać tak, jak tego chcę, i byłoby to fajne dodanie, o czym klient nie pomyślał.
Nie oznacza to, że każdy koder jest podatny na te problemy (spotkałem kilka bardzo utalentowanych typów koderów / QA ... chociaż nie dla kodu, który napisali).
Dotyczy to również zespołu programistów. Mieszanie obowiązków i związanych z nimi sposobów myślenia tych zespołów w zespole programistycznym naraża produkt końcowy (kod).