Programista jest odpowiedzialny za odepchnięcie złych wymagań zamiast ich ślepego ich wdrażania. Obejmuje to mówienie klientom, że to, czego chcą, jest droższe niż inne opcje lub wiąże się z określonym zestawem ryzyka. Obejmuje to również przekazywanie złych wiadomości w profesjonalny sposób - nie krzyczenie, nazywanie ludzi głupimi, sugerowanie, że są głupie lub inne dziecinne zachowanie. Jeśli odpycha, powinien mieć szereg powodów (więcej niż „Nie lubię SQL Servera i nie będę go używać”) oraz alternatywny plan przedstawienia.
Jednak programista jest również odpowiedzialny za przyjmowanie decyzji i korzystanie z narzędzi lub projektów, które mogą im się nie podobać, jeśli ich odpowiedź zwrotna nie zostanie zaakceptowana. Jeśli zażądano raportu w SSRS, dostarczenie go w Crystal Reports (którego klient może nie mieć) jest niedopuszczalne. Jeśli wymagane było rozwiązanie .net, dostarczenie go w Haskell jest niedopuszczalne. Jeśli nikt w zespole nie używa narzędzia lub języka, którego chcesz używać, nieprofesjonalne jest korzystanie z niego, jeśli kierownictwo nie zgadza się, że jest to najlepsze narzędzie do danego zadania.
Programista ma obowiązek przetestować swoją pracę. (To nie powinien być jedyny test, ale żaden profesjonalny programista nie powinien wysyłać kodu, którego nie przetestował). Obejmuje to testowanie nawet gałęzi kodu, których nie spodziewasz się zbyt często. Jeśli masz zestaw zagnieżdżonych IF, przetestuj wszystkie możliwe trasy.
Programista ma obowiązek łagodnie obsługiwać błędy i wyjątki oraz pisać komunikaty o błędach, które zobaczy użytkownik, które są profesjonalne i neutralne, a nie żarty i obelgi.
Programista ma obowiązek chronić prywatne dane, chronić własny kod, który pisze dla firmy oraz chronić użytkowników przed katastrofą (nawet własną) przed użyciem aplikacji.
Programista ma obowiązek upewnić się, że jego kod jest łatwy do utrzymania i że ma kontrolę nad źródłem.
Programista ma obowiązek koordynować z innymi, aby upewnić się, że jego zmiany nie wpływają negatywnie na to, co robią.
Programista ma obowiązek polecić klientowi najlepszy wybór narzędzi lub języków w fazie projektowania, a nie narzędzie / język, w którym chce się bawić i uczyć.
Programista ma obowiązek współpracować z całym odpowiednim personelem projektu, w tym z tymi, których nie lubi. Lubienie ludzi nie jest twoim obowiązkiem, praca z nimi i bycie grzecznym.
Programista ma obowiązek wyprodukować produkt, który spełnia wymagania określone w rozsądnych ramach czasowych. Jeżeli termin nie zostanie dotrzymany, on lub ona ma obowiązek poinformować o tym zarząd, gdy tylko będzie to znane.
Programista ma obowiązek poinformować kierownictwo projektu o przeszkodach w wykonaniu zadania. Nie mogą naprawić tego, o czym nie wiedzą.
Programista jest odpowiedzialny za wykonanie całego zadania, a nie tylko zabawnych, interesujących części. Każda praca ma nudne części, które wciąż trzeba wykonać. Obejmuje to między innymi karty czasu pracy i dodawanie elementów dyskusji do oprogramowania do zarządzania projektami. Zawiera rzeczy takie jak dokumentacja, przegląd kodu itp.
Programista ma obowiązek dowiedzieć się, jaką domenę biznesową wspiera, nie tylko koncepcje programistyczne.
Programista ma obowiązek aktualizować swoje umiejętności.
Kiedy programiści wpadają w błąd, ma obowiązek zrobić wszystko, co w jego mocy, aby rozwiązać problemy tak szybko, jak to możliwe. Może to obejmować przekazanie złych wiadomości kierownictwu, a nie próbowanie ukrywania, że właśnie usunąłeś krytyczną tabelę w produkcyjnej bazie danych.
Programista ma takie same obowiązki jak każdy inny pracownik - stawić się na czas, pracować na podstawie umówionych godzin, poprosić z wyprzedzeniem o urlop, odpowiadać na wiadomości telefoniczne i e-mailowe (poczytaj, aby przeczytać e-maile), wypełnić wymagane formularze HR itp.