Se la specifica è difettosa, dovrebbe comunque essere seguita?


28

Mi è stato assegnato lo sviluppo di un'integrazione con una delle applicazioni del mio datore di lavoro in un sistema esterno sviluppato dal nostro cliente. Le specifiche del nostro cliente per l'integrazione che presenta alcuni evidenti difetti relativi alla sicurezza. I difetti consentirebbero a un utente non autorizzato l'accesso al sistema per visualizzare i dati riservati.

Ho messo in evidenza i difetti e i loro potenziali rischi per la sicurezza se implementati come previsto e fornito un'alternativa senza difetti, ma (in breve) mi è stato detto "fallo nel modo che abbiamo specificato" dal cliente.

Un programmatore ha la responsabilità etica di NON implementare il codice con rischi di sicurezza noti? A che punto i requisiti di un cliente superano la responsabilità etica che abbiamo come sviluppatori software per creare applicazioni sicure?


9
Hai indicato i rischi, ma hai anche sottolineato la probabilità e (forse ancora più importante) l'impatto di questi rischi su alcuni aspetti delle loro operazioni? Sei sicuro che il cliente comprenda appieno i rischi e abbia una documentazione in tal senso?
Thomas Owens

7
Ultimamente me lo sono buttato in testa in alcuni dei miei lavori. Se facciamo lo stesso paragone rispetto a un costruttore di ponti, in cui gli viene chiesto di costruire un ponte che non ha quei fastidiosi, ostruttivi supporti sottostanti o che può sopportare solo il peso di due auto, allora per la sua reputazione, lui probabilmente mi rifiuto. Penso che debba davvero arrivare un punto in cui è dovere di un ingegnere / persona rifiutare. Certo, la stragrande maggioranza dei reclami di progettazione non si avvicina al rischio di lesioni / morte umane.
Katana314,

2
@ Katana314 Non c'è assolutamente alcun rischio di lesioni fisiche o morte con il mio scenario attuale. È decisamente più facile rispondere ... Ma hai colpito l'unghia sulla testa, credo. Ulteriori ricerche mi hanno portato al Codice Etico dell'ACM , che sembra rafforzare la nostra responsabilità di identificare e far conoscere eventuali problemi prevedibili.
Nick Orlando,

3
@TheSoftwareDev Abbastanza giusto, ma aggiungerò che a volte i rischi umani possono essere più profondi di quanto pensiamo. Un rischio per la sicurezza che consente a un hacker di prendere facilmente le informazioni delle persone e rubare la loro identità, lasciandole senza tetto per poi suicidarsi; Un difetto del social network che consente a uno stalker di intercettare le comunicazioni private di una donna sull'incontro in un ristorante, quindi seguirla fisicamente e intrappolarla; è un po 'morboso pensarlo in modo creativo, ma a volte possiamo dimenticare quanto potrebbero essere utilizzati i nostri progetti di vasta portata.
Katana314,

1
@gnat Non proprio un duplicato. La domanda collegata riguarda l'approccio generale all'etica del software, questo chiede quanto di una lotta debba affrontare l'OP prima di dire "non più il mio problema".
rath

Risposte:


40

Penso che tu abbia fatto la tua parte sottolineando il problema e suggerendo un'alternativa. Se insistono sul fatto che tu faccia cose che li espongano a un certo livello di rischio, dovresti assicurarti di avere una traccia cartacea (e dei suoi backup) che dimostri che lo hanno esplicitamente richiesto, conoscendo i rischi connessi. Se lo sei davveropreoccupato, potresti dire loro che faresti volentieri quello che vogliono, se firmassero per la prima volta una sorta di documento legale / disclaimer in cui riconoscono i rischi associati a ciò che ti hanno chiesto di fare (e ovviamente ottenere un avvocato redigere tale documento). Personalmente non conosco alcun precedente per un simile documento per questa situazione, ma sono sicuro che potresti trovare un avvocato che ti aiuti in questo. Se la tua azienda ha un dipartimento legale, potrebbe essere qualcosa con cui dovrebbero essere coinvolti se c'è un potenziale di responsabilità aziendale. E ovviamente, se è così serio, dovresti discuterne anche con il tuo manager.

Penso che l'unica situazione in cui potrebbe essere OK rifiutare semplicemente di fare il lavoro sarebbe se questo fosse un software per un sistema in cui il difetto di cui ti preoccupi potrebbe portare al sistema a essere compromesso in modo tale da risultare nella molto probabile perdita di vite umane / gravi lesioni personali o una sorta di catastrofica perdita di proprietà.


4
O responsabilità personale ... vale a dire, se ti farà licenziare o peggio
Dan Pichelman,

5
Non esiste alcun documento che il cliente o il datore di lavoro possa firmare che garantisca l'immunità nei confronti dell'op. Può, a seconda della natura del suo impiego, rientrare nella definizione e nella protezione di un rapporto di agenzia con la sua società, fornendo uno scudo di responsabilità, ma in assenza di tale scudo, "stavo solo seguendo gli ordini" non è una difesa no importa quanto ben documentato. Il querelante / procedimento giudiziario può semplicemente dire "potresti aver appena smesso; anche se qualcun altro l'avrebbe fatto, ora sarebbe sulla testa, non sulla tua".
KeithS

2
Il meglio che la società potrebbe fare è garantire la copertura della responsabilità finanziaria del PO, compresi i costi giudiziari e legali. La compagnia non può andare in prigione per lui se si scopre che ha infranto una legge.
KeithS

1
@BazzPsychoNut: sembra che l'OP abbia già tentato di evidenziare i rischi e spiegarli, e che viene ignorato. Se non sono in grado / non vogliono semplicemente rifiutare di fare il lavoro, penso che debbano coprirsi il culo il più possibile e dovrebbero anche consultare un avvocato (che sospetto darebbe loro consigli più specifici per la situazione, e anche dire loro per coprirsi il culo).
FrustratedWithFormsDesigner,

1
+1 per la traccia cartacea e fai anche attenzione se sei coinvolto nella distribuzione. Anche se è improbabile che ci arrivino, ci sono molte leggi (ad esempio il Data Protection Act nel Regno Unito) che significano che il trattamento negligente dei dati personali può diventare un reato grave.
Matt,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.