Qual è la peggiore decisione tecnologica che tu abbia mai visto? [chiuso]


10

Ciò include decisioni sull'architettura, scelte sulla piattaforma o qualsiasi situazione in cui una scelta così sbagliata ha portato a conseguenze negative.

Risposte:


22

Anni fa, ero lo sviluppatore principale di un'applicazione centrata sul database che ha iniziato a generare errori. L'ho rintracciato al fatto che c'erano valori duplicati in un campo di database che non avrebbero dovuto consentirli.

Mi stavo dando da fare per dimenticare di impostare un vincolo unico sul database quando l'avevo spinto alla produzione perché era così ovvio che questo campo ne aveva bisogno. Ho commiserato con uno dei miei colleghi sviluppatori che mi ha corretto ...

Altro sviluppatore : "Oh, non hai dimenticato, c'era un vincolo unico in quel campo. L'ho appena rimosso."

Io : "Perché l'hai rimosso?"

Altro sviluppatore : "L'ho fatto qualche settimana fa. Stavo ottenendo file di dati dal cliente e non li avrei importati perché il vincolo univoco stava bloccando i nuovi dati. Quindi ho rimosso il vincolo in modo da poter finire di importarlo."

Io: "Ti sei fermato a considerare che forse c'era un problema se stessimo ottenendo nuovi dati che si sovrapponevano a quelli esistenti e pensavi di menzionarli a qualcuno prima di importarli?"

Altro sviluppatore : (sguardo vuoto)

Io : Facepalm.


Fa solo male.


7

Non sono sicuro che questo valga come una decisione tecnologica , ma sono stato responsabile di un sito Web di gestione dei documenti simile al CMS scritto in PHP per quattro anni. Nel corso di questi anni, ho tentato più volte di convincere le persone (manager, utenti, richiedenti funzionalità) a forse, forse, come, forse , a considerare la possibilità di stare insieme e pensare ai requisiti e alla direzione futura della cosa. Non è mai successo Era sempre "aggiungi questa funzione", "aggiungi quella funzione", e tutti erano beatamente inconsapevoli di tutti i diversi modi in cui tutti gli altri usavano il sito web. Quando me ne sono andato, è diventato un enorme casino di funzionalità interconnesse ma non correlate, ed ero l'unico in tutta l'azienda che conosceva tutte le funzionalità. Ora nessuno lo fa. Mwahaha.


È ora di coinvolgere un consulente!
Kirk Broadhurst,


4

Riscrivere un sistema di posta vocale di livello Telco.

Il sistema precedente era in esecuzione su Unix e verso la fine degli anni '90 arrivò la tecnologia COM di Microsoft. Molti sviluppatori stavano lavorando su questo nuovo sistema basato su NT. Dopo molti sforzi, le sue prestazioni non erano ancora vicine a quelle del sistema Unix e un grande cliente che acquistò questo nuovo sistema era incazzato. La società doveva essere venduta e alcune persone dovevano lasciare la società.

E 'stato brutto. Tutto ciò è accaduto circa due anni prima che Joel scrivesse il suo articolo: Cose che non dovresti mai fare, parte I


3

Adozione di una libreria esterna (in questo caso Spring RCP ) prima della versione della prima versione, basata su un'istantanea SVN. È praticamente garantito che il progetto finirà più o meno morto e ti ritroverai legato al cadavere. Bene, nel nostro caso avrebbe potuto andare peggio. Ancora un grosso rischio.


Argh, mi hai appena ricordato di un'altra parte del mio passato che preferirei dimenticare. Ho ereditato parte di un progetto (lo stesso progetto che ho citato nella mia risposta) che è stato costruito su un'istantanea di Spring RCP. Non potrei mai capire il perché. Non sembra aggiungere altro che seccature.
Dan Dyer

3

Un esempio che ricordo riguardava l'impegno iniziale verso un particolare server di applicazioni Java, nonostante non avesse ancora le funzionalità richieste per il progetto, ma solo una tabella di marcia per quando sarebbero stati implementati. Naturalmente il venditore non ha consegnato tempestivamente come originariamente indicato, il che avrebbe dovuto essere un grosso problema, ma in realtà era solo uno dei tanti errori sulla strada lenta verso il fallimento.

La maggior parte dei casi di questo tipo di problema che ho riscontrato hanno comportato l'impegno per una tecnologia non provata / immatura, spesso perché qualcuno influente dal punto di vista tecnico è un sostenitore dello sviluppo guidato dal curriculum.


1

Tre anni fa, il nostro dipartimento BusDev ha dichiarato di dover costruire il proprio sistema di gestione dei contenuti su Documentum perché le aziende farmaceutiche che stavano cercando di raggiungere conoscono il nome e si sono sentite a proprio agio con la tecnologia. Quindi abbiamo speso un sacco di soldi per costruirlo e poi lo abbiamo accantonato 12 mesi dopo.

A febbraio di quest'anno hanno annunciato che il nuovo sistema si sarebbe basato su Sharepoint 2010. Vuoi indovinare il perché? Perché, all'improvviso, QUESTO era il nome conosciuto da Pharmas e uno con cui erano a loro agio!
Vedremo cosa porterà il 2012!

\\ uSlackr


0

Scrivere moderni sistemi operativi in ​​C / C ++. Sappiamo da quando Morris Worm (fine anni '80) è un linguaggio completamente inadatto per la creazione di software di rete, ma ciò non ha impedito a nessuno di farlo, il che equivale sostanzialmente a negligenza criminale IMO.


5
-1 Sono io, o è la prima o la sesta volta che hai postato che C è un errore? Il FUD è stancante. Solo perché non puoi codificare C senza commettere un errore di sicurezza non significa che gli altri non possano farlo. Non puoi odiare una lingua in base alle cattive pratiche possibili.
alternativa il

2
Si è FUD affermare che il fatto che "C è un linguaggio scurrile" è oggettiva conoscenza comune.
alternativa il

2
@mathepic: ho detto qualcosa di nebuloso come "un linguaggio volgare"? Ho detto che non è affatto adatto a programmi di costruzione, come i sistemi operativi, che hanno requisiti di sicurezza. E questo è sia un fatto oggettivo che una conoscenza comune.
Mason Wheeler,

6
@mathepic: sto con Mason su questo. È risaputo e riconosciuto che la gestione delle stringhe in C provoca overflow del buffer e in un linguaggio di programmazione adeguato no . Non importa quanto tu pensi di essere in grado di "codificare C in modo affidabile e coerente" (pff), un linguaggio che aumenta inutilmente l'incidenza di bug è un linguaggio volgare.
Timwi,

3
@Timwi: la risposta originale diceva "C / C ++". In C ++, la gestione delle stringhe non causa overflow del buffer. Non che io sia un grande fan di std::string, ma funziona, e insieme ai modelli di classe container può eliminare una grande classe di potenziali errori.
David Thornley,

0

Cosa ho visto....

Negli anni '80, c'era una società chiamata Prime che produceva computer con una versione del database Pick e BASIC. Il reparto utenti del luogo in cui lavoravo al momento dell'acquisto era assolutamente convinto che ciò avrebbe risparmiato loro una gran quantità di denaro, che avrebbero ottenuto l'elaborazione e i risultati desiderati con un analista aziendale alla volta di un quarto. Non passò molto tempo prima che ci fossero quattro analisti programmatori a tempo pieno e un arretrato di lavoro.

Grande errore nello stimare ciò che la tecnologia farebbe per loro.


1
Buon vecchio Pick. Ho sempre messo in dubbio il fatto di avere un linguaggio OS / Database / di programmazione che prende il nome da loro stessi. (es. Dick Pick)
Bill
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.