Perché ai programmatori non è stato detto di provarlo e la schiacciante cultura aziendale non ha dato loro un margine di manovra sufficiente per far entrare il loro senso di etica professionale e richiedere un altro paio di settimane per testare le vulnerabilità della sicurezza. O insistere sul fatto che siano sicuri fin dall'inizio.
Perché il capo non voleva passare un paio di settimane extra a testare problemi di sicurezza per ... qualunque sia la ragione. Un bonus extra alla fine dell'anno. Presentare Johnson dal prossimo dipartimento. Vantarsi dei diritti. Dovere verso l'azienda. Pigrizia. Diffidenza del consiglio di underling.
Perché il grande capo ha richiesto maggiori profitti e ha promosso Johnson su Bob perché i suoi numeri sembravano migliori invece di chiedere un prodotto migliore. Perché qualità e sicurezza sono valori difficili da visualizzare su un foglio di calcolo. Perché le società esistono per fare soldi.
Cose come questa sono un problema sistematico. Si riduce a "perché sono sciocchi".
Modifica I
programmatori possono evitare di essere la capra sacrificale, dopo aver notato una carenza, portare il problema al proprio capo. O farà la cosa giusta e farà un piano per risolverlo, o ti dirà di ignorarlo. Se non lo risolve, rendilo ufficiale, chiedilo via e-mail. In questo caso utilizzare parole chiave correlate al problema, come "vulnerabilità", "iniezione", "violazione della sicurezza". Roba che una ricerca e-mail avrebbe raccolto.
Questo sta passando il dollaro. Ora è responsabilità dei tuoi capi. Se è importante, come se le persone morissero quando questa cosa fallisce, vai oltre la sua testa e porta la questione al suo capo. Puoi essere licenziato semplicemente per aver passato il dollaro, e puoi ancora essere licenziato anche se lo passi, ma è la cosa giusta da fare. Non proprio come risolvere il problema, ma vicino.