Jeśli specyfikacja jest wadliwa, czy nadal należy jej przestrzegać?

28

Zostałem przydzielony do opracowania integracji jednej z aplikacji mojego pracodawcy z zewnętrznym systemem opracowanym przez naszego klienta. Specyfikacja naszego klienta dotycząca integracji, która ma pewne rażące wady związane z bezpieczeństwem. Usterki umożliwiłyby nieautoryzowanemu użytkownikowi dostęp do systemu w celu przeglądania ograniczonych danych.

Zwróciłem uwagę na wady i potencjalne zagrożenia dla bezpieczeństwa, jeśli są one wdrażane zgodnie z przeznaczeniem i stanowią alternatywę bez usterki, ale (w skrócie) klient powiedział mi „zrób to tak, jak wskazaliśmy”.

Czy programista ponosi etyczną odpowiedzialność NIE za wdrożenie kodu o znanych zagrożeniach bezpieczeństwa? W którym momencie wymagania klienta przeważają nad etyczną odpowiedzialnością jako programistów tworzenia bezpiecznych aplikacji?

Nick Orlando
źródło
9
Wskazałeś na ryzyko, ale czy wskazałeś również na prawdopodobieństwo i (co ważniejsze) wpływ tych zagrożeń na niektóre aspekty ich działalności? Czy jesteś pewien, że klient w pełni rozumie ryzyko i posiada odpowiednią dokumentację?
Thomas Owens
7
Ostatnio wrzucałem to sobie do głowy w niektórych pracach. Jeśli dokonamy tego samego porównania w stosunku do konstruktora mostu, w którym poprosił on o zbudowanie mostu, który nie ma pod nim irytujących, przeszkadzających podpór lub może udźwignąć tylko dwa samochody, to ze względu na swoją reputację Prawdopodobnie po prostu odmówię. Myślę, że naprawdę musi nadejść moment, kiedy obowiązkiem inżyniera / osoby jest odmowa. To prawda, że ​​znaczna większość skarg dotyczących projektowania nie zbliża się do ryzyka obrażeń / śmierci ludzi.
Katana314,
2
@ Katana314 W moim obecnym scenariuszu zdecydowanie nie ma ryzyka obrażeń fizycznych ani śmierci. Na to zdecydowanie łatwiej odpowiedzieć ... Myślę, że trafiłeś w sedno. Dodatkowe poszukiwania doprowadziły mnie do Kodeksu Etyki ACM , który wydaje się zwiększać naszą odpowiedzialność za identyfikowanie i zgłaszanie wszelkich przewidywalnych problemów.
Nick Orlando
3
@TheSoftwareDev W porządku, ale dodam tylko, że czasami ludzkie ryzyko może być głębsze, niż nam się wydaje. Ryzyko bezpieczeństwa pozwalające hakerowi łatwo zabrać ludziom informacje i ukraść ich tożsamość, pozostawiając ich bezdomnymi, aby później popełnić samobójstwo; Wada sieci społecznościowej, która pozwala prześladowcy przechwycić prywatną komunikację kobiety dotyczącą spotkania w restauracji, a następnie fizycznie śledzić ją i uwięzić; myślenie TO TAKIE twórczo jest nieco chorobliwe, ale czasami możemy zapomnieć, jak daleko sięgają nasze projekty.
Katana314
1
@gnat Naprawdę nie duplikat. Powiązane pytanie dotyczy ogólnego podejścia do etyki oprogramowania, to pytanie dotyczy tego, ile walki powinien podjąć OP, zanim powie „nie mój problem”.
rath

Odpowiedzi:

40

Myślę, że wykonałeś swoją część, wskazując problem i sugerując alternatywę. Jeśli nalegają, abyś robił rzeczy, które narażają ich na pewien poziom ryzyka, powinieneś upewnić się, że masz papierową ścieżkę (i jej kopie zapasowe) pokazującą, że wyraźnie tego zażądali, znając związane z tym ryzyko. Jeśli naprawdę jesteśzaniepokojony, możesz im powiedzieć, że chętnie zrobisz, co zechce, jeśli najpierw podpiszą jakiś dokument / oświadczenie prawne, w którym uznają ryzyko związane z tym, o co cię poprosili (i oczywiście wezmą prawnika sporządzić taki dokument). Osobiście nie znam precedensu dla takiego dokumentu w tej sytuacji, ale jestem pewien, że mógłbyś znaleźć prawnika, który by ci w tym pomógł. Jeśli Twoja firma ma dział prawny, może się zaangażować, jeśli istnieje ryzyko odpowiedzialności korporacyjnej. I oczywiście, jeśli jest to tak poważne, powinieneś porozmawiać o tym również ze swoim przełożonym.

Wydaje mi się, że jedyną sytuacją, w której po prostu odmowa wykonania pracy byłaby OK, byłoby oprogramowanie dla systemu, w którym obawa, o którą się martwisz, może doprowadzić do naruszenia bezpieczeństwa systemu w taki sposób, że może to spowodować w bardzo prawdopodobnej utracie życia / poważnych obrażeniach ciała lub jakiejś katastrofalnej utracie własności.

FrustratedWithFormsDesigner
źródło
4
Lub odpowiedzialność osobista ... tzn. Czy to
spowoduje
5
Nie ma dokumentu, który klient lub pracodawca mógłby podpisać, który udzieliłby OP zwolnienia z powództwa cywilnego. Może on, w zależności od charakteru swojego zatrudnienia, zostać objęty definicją i ochroną stosunku agencyjnego ze swoją firmą, stanowiąc zabezpieczenie przed odpowiedzialnością, ale w przypadku braku takiego zabezpieczenia „ja tylko wykonywałem rozkazy” nie stanowi obrony ważne jak dobrze udokumentowane. Powód / prokurator może po prostu powiedzieć: „mogłeś po prostu odejść; nawet gdyby zrobił to ktoś inny, to teraz byłby na głowie, a nie twój”.
KeithS
2
Najlepsze, co firma mogłaby zrobić, to zagwarantować pokrycie odpowiedzialności finansowej PO, w tym kosztów sądowych i prawnych. Firma nie może dla niego pójść do więzienia, jeśli okaże się, że złamał prawo.
KeithS
1
@BazzPsychoNut: Wygląda na to, że OP próbował już wskazać zagrożenia i je wyjaśnić i jest ignorowany. Jeśli nie są w stanie / nie chcą po prostu odmówić wykonania pracy, myślę, że muszą zakryć tyłek w jak największym stopniu i powinni również skonsultować się z prawnikiem (podejrzewam, że udzieliłby im bardziej szczegółowych porad na temat sytuacji, a także powiedziałby aby zakryć ich tyłek).
FrustratedWithFormsDesigner
1
+1 za ślad papieru, a także bądź ostrożny, jeśli bierzesz udział we wdrożeniu. Chociaż jest mało prawdopodobne, aby do tego doszło, istnieje wiele przepisów (na przykład Ustawa o ochronie danych w Wielkiej Brytanii), co oznacza, że ​​niedbalstwo w przetwarzaniu danych osobowych może stać się poważnym przestępstwem.
Matt