Vedi titolo, ma lo sto chiedendo da una prospettiva tecnica, no
Prendi un appuntamento con mia nipote vergine di 40 anni o verrai licenziato.
Vedi titolo, ma lo sto chiedendo da una prospettiva tecnica, no
Prendi un appuntamento con mia nipote vergine di 40 anni o verrai licenziato.
Risposte:
Per commercializzare il thriller fantascientifico di Neal Stephenson Snow Crash, mi è stato chiesto di scrivere un virus informatico "benigno". Fingerebbe "benevolmente" di assumere il controllo del computer dell'utente e di sostituire lo schermo con la neve, ovvero un "incidente di neve". Dopo circa un minuto di neve, la neve sarebbe sbiadita e sarebbe stata sostituita da una pubblicità per il libro. Questo sarebbe "benigno", vedi. Il virus si diffonderebbe con mezzi normali, ma a nessuno importerebbe perché dopo aver assunto il controllo del proprio computer "si otterrebbe semplicemente un annuncio divertente e si sarebbe sollevati dal fatto che non fosse successo nulla di brutto al computer".
In realtà mi è stato detto di farlo in una grande azienda mondiale. Ho dovuto scrivere un memo che spiegasse tutte le leggi che ciò avrebbe infranto e tutte le 17 cose brutte che potrebbero accadere se mi avessero davvero messo in pratica.
"Questa DLL che hai scritto costa solo 17kb. Puoi aggiungere del codice per ingrandirla? Il cliente ci sta pagando un sacco di soldi e vogliamo che ne valgano il valore."
Usa Visual SourceSafe.
"Conosci questo enorme programma Cobol di 20 anni che contiene pile e pile di regole aziendali codificate che definiscono più o meno la nostra azienda? Ti dispiacerebbe convertirla in .NET?"
Yikes.
Andiamo a vivere tra poche settimane.
Augurami buona fortuna..
Mio fratello e io stavamo lavorando su un sito Web multimediale multimediale per una rock star molto famosa molti anni fa.
Quando il cliente ha visto il sito ha notato alcuni artefatti di compressione su alcuni dei JPEG e ha chiesto cosa c'era che non andava. Abbiamo spiegato che le immagini necessitano di compressione per scopi di larghezza di banda e che le immagini sono state attualmente compresse con circa l'80% di qualità. Fu offeso e disse qualcosa a effetto di
Non sono arrivato a dove sono oggi facendo le cose all'80%, impostandolo al 100%.
Abbiamo cercato di spiegare come avrebbe influenzato gli utenti, ma lui non ne avrebbe avuto nulla. Il risultato è stato il sito web "mondo virtuale" più lento di sempre. Questo è effettivamente successo .
Dobbiamo ritardare il lancio del sito di due settimane perché Mercury è in versione retrograda ed è un brutto momento per iniziare nuove cose.
Ovviamente dopo aver letto una rivista commerciale su un aereo su come XML fosse la nuova tecnologia calda (era circa il 2002), uno dei nostri dirigenti mi ha chiesto se la nostra applicazione utilizzava XML, quando ho detto di no, mi ha chiesto se potevamo aggiungerlo.
Ora, non sto parlando di una funzione per importare / esportare file in formato XML, voleva semplicemente che facesse parte dell'architettura per nessun motivo se non quello popolare al momento e darebbe credibilità alla nostra app.
"In questo momento, i nomi utente devono essere univoci e le password non lo sono. Potremmo farlo al contrario?"
Circa 7 anni fa ho lavorato in un negozio di software su misura che ha deciso di vendere uno dei suoi prodotti. Era una suite operativa end-to-end per alcuni settori. Bene, questo settore non era noto per essere super tecnologico, quindi in qualche modo abbiamo finito per fornire supporto tecnico di terze parti per i loro server e la loro infrastruttura IT invece di estenderlo a consulenti IT di piccole imprese indipendenti.
Un giorno, il server di un cliente ha riscontrato un danneggiamento del disco. Il server che li avevamo venduti era configurato con un controller RAID Adaptec, configurato per un mirror RAID 1. Il loro database delle applicazioni era toast. Non eseguivano backup da mesi. I backup che avevano eseguito erano inutilizzabili. Hanno finito per perdere 8 mesi di dati. Hanno assunto un consulente IT per gestire questo lavoro investigativo.
Ne conseguirono le telefonate e il direttore delle vendite (noto per le promettenti funzionalità impossibili) apparentemente disse loro che sarebbe stato curato, e lo scrisse in un contratto.
Il responsabile delle vendite ha promesso al cliente che avremmo assicurato che il database dell'applicazione e tutti gli altri file relativi all'applicazione non sarebbero mai stati replicati dai controller RAID se i file fossero stati considerati corrotti. Nessuna configurazione dovrebbe essere necessaria neanche. Sì. Ci è stato detto di fornire questa funzionalità in 2 settimane, altrimenti il cliente ci licenzierebbe.
Quindi il responsabile del programma - che aveva al suo attivo alcuni prodotti CRM di grandi dimensioni e altri importanti successi nello sviluppo - e io ebbi un incontro con il COO e il direttore delle vendite. Il responsabile del programma stava spiegando in dettaglio quanto fosse folle, impossibile e follemente impossibile. Il direttore delle vendite (background militare) gli avrebbe semplicemente urlato in faccia (letteralmente!), "Non mi interessa! Quanto può essere difficile rendere la cosa RAID non RAID ?! I loro dati andrebbero bene sull'altra unità se il La cosa RAID non l'aveva rovinato! "
Alla fine di quella riunione, il gestore del programma si è dimesso con un preavviso di zero giorni. Quindi ora mi è stato assegnato questo compito. Durante la settimana successiva, ho presentato una petizione a Adaptec e LSI Logic per fornire un ingegnere per una chiamata in conferenza, semplicemente per ridere di fronte al direttore delle vendite.
Alla fine, hanno obbedito e hanno mantenuto la loro parte dell'accordo. E sono entrati nei dettagli di quanto fosse ridicolmente impossibile. Il ragazzo di LSI era particolarmente duro - non aveva ricoperto di zucchero nulla.
Non ho dovuto implementare la funzione. Uno che dovevo implementare era uno schema di sicurezza personalizzato richiesto da un cliente, che avrebbe permesso loro di attivare qualsiasi controllo dell'applicazione - in base al controllo - come visibile, disabilitato, abilitato, di sola lettura o lettura-scrittura . In teoria, c'erano 146.000 combinazioni. E se per sbaglio hai rovinato dicendo ... disabilitando un gruppo di controllo, avresti effetti collaterali involontari. Inutile dire che, quando mi è stato dato l'ultimatum che doveva essere implementato, ho anche lasciato con un preavviso di zero giorni.
+1
per "smettere con preavviso zero-day", perché a volte devi solo andartene e alcune persone non lo capiscono mai e continuano a confondersi.
Mi hanno chiesto di cercare un prodotto commerciale in grado di trovare e correggere automaticamente i bug del codice sorgente.
Sto ancora cercando ... dal 2001 :).
Una volta avevo una specifica client che richiedeva letteralmente codice in grado di viaggiare indietro nel tempo.
Il mio datore di lavoro ha raccolto i dati per il cliente e dovevamo consegnarli nel formato file X a intervalli di dieci minuti tra le 9:00 e le 17:00, tranne per la consegna finale, che era nel formato Y (solo X con un piè di pagina diverso). Ho fatto proprio questo ... e hanno dato di matto. Stavamo raccogliendo dati a basso volume e in realtà avevamo solo uno o due punti dati da consegnare in un dato giorno.
"ESCI DA SPAMMING CON FILE VUOTI !!!" loro piansero. "CINQUE OGNI DIECI DIECI MINUTI RACCOGLIE I NOSTRI BANDTUBI!"
Va bene. Quindi, il mio codice veniva controllato ogni dieci minuti e consegnato solo se c'era qualcosa da consegnare. Giusto.
"MA L'ULTIMO FILE DEVE ESSERE IN FORMATO Y !!!" hanno urlato. "LA TECNOLOGIA MODERNA CI CONFUGE E CI ANGIA! FISSA O TI BATTIREMO CON UN FEMUR MASTODON! *"
(* - È possibile che non ricordi le parti della conversazione.)
"Quindi, devo consegnare il file solo se ci sono nuovi dati da consegnare."
"SÌ."
"E la consegna finale per il giorno dovrebbe essere in un formato di file diverso."
"SÌ."
"Tranne che non ho modo di sapere quale file sarà l'ultimo del giorno fino alla fine del giorno."
"SÌ."
"Quindi l'unico modo per me di implementarlo è scrivere codice che vada indietro nel tempo alla fine della giornata per rifare il formato su quella che si è rivelata essere la consegna finale."
"POTREBBE AVERE UN RAPPORTO PUNTEGGI SPORTIVI? ABBIAMO TORNATO AL FUTURO II. BIFF TANNEN RENDE FELICI."
Ho rifiutato, in parte perché violare la causalità è una pratica di programmazione non etica, in parte perché CPAN.org non aveva un modulo che mi avrebbe permesso di farlo. (Ho controllato.) Alla fine, mi hanno permesso di inviare un file in formato Y alla fine della giornata, indipendentemente dal fatto che avesse o meno dei dati effettivi. Sono abbastanza sicuro che la loro larghezza di banda sia sopravvissuta al successo.
+1
perché "violare la causalità è una pratica di programmazione non etica". Ora c'è una regola che richiede più attenzione.
Senza alcuna causa riconoscibile, sono stato coinvolto in una riunione privata e mi è stato detto di non controllare se il mio computer era monitorato, incluso, mai e poi mai controllare il mio task manager per nessun motivo. Ho chiesto se stavano monitorando il mio computer e mi è stato detto (approssimativamente) "questa è solo una cosa preventiva - sai, il nostro avvocato ci ha detto di parlarne ai dipendenti - ma sai, non possiamo davvero dirlo - - ma non lo sto monitorando adesso. "
(Nudge, penso che stessero monitorando il mio computer, solo non mentre mi dicevano di non cercare alcun programma di monitoraggio. In effetti, poche settimane dopo, sono arrivato presto e ho letteralmente guardato il mouse muoversi sullo schermo come se remoto - così ho guardato attraverso la finestra del CEO e l'ho visto fare clic in remoto sul mio computer dal suo laptop.)
Una volta ho avuto una lunga "discussione" con un capo dai capelli a punta che ha insistito sul fatto che potevamo memorizzare un tipo di dati 2 in un po 'perché era "solo una cifra".
La cosa più stupida che mi è stato chiesto di fare è probabilmente una riscrittura da zero di un progetto molto vasto. Si trattava di circa 350k righe, tutte in C (con un po 'di perl mischiato per script "helper") e funzionava bene indipendentemente da ciò che i clienti facevano.
Quasi un anno dopo, abbiamo avuto:
Fondamentalmente, non abbiamo realizzato nulla che il refactoring ragionevole non avrebbe potuto realizzare. Ma il mio capo era felice, ci siamo sbarazzati degli script di supporto.
Lo considero lo spreco di tempo e il codice esistente più eclatante che abbia mai visto.
Cliente: Usiamo il vostro software di database da un paio d'anni, sviluppando con noi le nostre applicazioni e chiedendovi di tanto in tanto aiuto.
Io: Sì, apprezziamo fare affari con te.
Cliente: Sì. Ogni volta che chiamiamo, ci dici come utilizzare una nuova funzionalità o ci aiuti a eseguire il debug del nostro utilizzo o fornisci una soluzione alternativa per qualche problema.
Io: certo, siamo sempre felici di essere d'aiuto.
Cliente: Occasionalmente, il prodotto presenta un bug reale e la tua azienda lo risolve e ci fornisce un aggiornamento del software.
Io: facciamo del nostro meglio.
Cliente: Bene, ciò di cui abbiamo bisogno ora è la certezza che non avremo più problemi.
Me: . . .
Mi è stato chiesto di scrivere in una presentazione del nostro software a un grande potenziale cliente multinazionale che abbiamo usato la tecnica di codifica "spaghetti code".
Certo, siamo in Italia ... suona bene.
Modifica della mia sintassi evidenziando i colori in modo che corrispondano a quelli utilizzati nel sistema di controllo della versione.
Vediamo:
Scrivi programmi in C ++
Puoi prendere questo rapporto di 10 pagine che ti ho chiesto di preparare come documento verbale e trasformarlo in una presentazione powerpoint perché sono davvero un pensatore visivo e non leggerò effettivamente il rapporto scritto che ti ho chiesto di fare?
Ok, voglio che tu scannerizzi questa foto di una casa, quando torno, dovresti essere in grado di mostrarmi la parte posteriore di essa.
"Non mi piace il modo in cui funziona questo database Oracle. Perché non scriviamo solo il nostro database?"
(Certo, questo è successo più di 15 anni fa, ma comunque!)
Mi è stato chiesto di caricare articoli dal sito Web di un concorrente all'interno di un iframe che sarebbe all'interno della skin del nostro sito Web, facendolo sembrare come se venisse da noi.
Per me, il più folle (e molto probabilmente, il più divertente) era
Vedi questi 10 milioni di righe di codice in (tecnologia Web obsoleta)? Scrivi un compilatore per convertirlo in un sito Asp.net funzionante.
Non ha mai pubblicato una versione funzionante (ovviamente, ho cercato di dire loro che non era pratico), ma è stato comunque divertente.
Una delle caratteristiche principali di un'applicazione sviluppata dalla nostra azienda è stata la capacità di cercare grandi quantità di documenti tramite il testo completo del documento. Un concorrente ha presentato la seguente richiesta in una presentazione di marketing a uno dei nostri clienti,
La nostra tecnologia di ricerca è superiore perché non cerca solo il testo dei documenti, ma cerca anche i "bit e byte" del file effettivo in forma binaria.
Hanno fornito un esempio ridicolo di come le ripetizioni ASCII decimali delle parole "stivale" e "barca" fossero molto meno simili delle stesse parole in forma binaria, quando si confrontano le cifre numeriche effettive nella rappresentazione. Pertanto, la ricerca basata sugli 1 e sugli 0 ha rispecchiato in modo più accurato la somiglianza visiva di queste due parole, migliorando così il richiamo.
Naturalmente mi è stato affidato il compito di ricercare questa tecnica, che presumo fosse il risultato di un ragazzo del marketing che ha frainteso del tutto un programmatore da qualche parte e di aver redatto una risposta che potremmo includere nella nostra proposta.
Piccola squadra di programmatori, il capo vuole che facciamo un sistema di prenotazione dei biglietti per una piccola compagnia aerea (in tempi molto brevi, ovviamente). Il team dice:
- come puoi immaginare, avremo bisogno di alcuni tester per questo progetto
Il capo dice:
- non preoccuparti, impara dall'industria automobilistica. Di tanto in tanto ricordano le auto: gli utenti faranno i test.
Facevo parte di un team di supporto mainframe che si spostava con altri team di supporto in un data center. Di solito dopo il turno avremmo un briefing con i manager e il team del turno successivo. Un giorno il nostro nuovo direttore si è presentato e ha posto la domanda: "Perché il carico medio della CPU durante il tuo turno è stato solo del 72%, mentre il turno precedente ha mostrato quasi il 95%? Penso che se ci impegniamo molto, alla fine potremmo raggiungere un carico della CPU del 100%! "
Circa 12 anni fa, quando ero al college, ho lavorato su un'applicazione di modellazione dei dati per Windows. Il progetto era quasi completo dopo circa 60.000 righe di codice Win32, sai, il targeting per codice sulla piattaforma Windows. Quindi il client ha detto che anche l'applicazione deve essere eseguita "sul web". Ha avuto difficoltà a capire come questa modifica "minima" dei requisiti potrebbe avere un impatto così grande sul progetto. Ho ricominciato da zero in Java ma ho finito per abbandonare il progetto prima che fosse mai finito.
Nel 1996 stavo lavorando a un grande progetto in cui stavamo realizzando eventi sportivi dal vivo. Questa conversazione è avvenuta:
Boss: esci nella sede del prossimo evento.
Io: cosa hai bisogno che io faccia.
Boss: Sii lì per ogni evenienza.
Io: per ogni evenienza?
Boss: nel caso in cui il lead tecnico lo perda. È troppo stressato e non so cosa potrebbe fare.
Io: E se lo perde, cosa vuoi che faccia?
Capo: Portalo fuori di lì in modo che tutti gli altri possano continuare a lavorare. Non mi interessa come lo fai.