Zobacz tytuł, ale nie pytam z technicznego punktu widzenia
Zabierz moją 40-letnią dziewiczą siostrzenicę na randkę lub zostaniesz zwolniony.
Zobacz tytuł, ale nie pytam z technicznego punktu widzenia
Zabierz moją 40-letnią dziewiczą siostrzenicę na randkę lub zostaniesz zwolniony.
Odpowiedzi:
Aby sprzedać thriller science fiction Neala Stephensona Snow Crash, poproszono mnie o napisanie „łagodnego” wirusa komputerowego. „Łaskawie” udawałoby przejęcie komputera użytkownika i zastąpienie ekranu śniegiem, czyli „katastrofą śnieżną”. Po minucie śniegu śnieg zniknie i zostanie zastąpiony reklamą książki. To byłoby „łagodne”. Wirus rozprzestrzenia się za pomocą zwykłych środków, ale nikomu nie przeszkadza, ponieważ po przejęciu komputera „dostaniesz zabawną reklamę, a potem poczujesz ulgę, że nic złego się nie stanie z komputerem”.
Powiedziano mi, że mam to zrobić w dużej korporacji na całym świecie. Musiałem napisać notatkę wyjaśniającą wszystkie prawa, które to złamałoby i wszystkie 17 złych rzeczy, które mogłyby się zdarzyć, gdyby naprawdę zmusiły mnie do wprowadzenia tego w życie.
„Ten plik DLL, który napisałeś, ma tylko 17kb. Czy możesz dodać kod, aby go powiększyć? Klient płaci nam dużo pieniędzy, a my chcemy, żeby ich wartość była warta”.
Użyj Visual SourceSafe.
„Znasz ten olbrzymi 20-letni program Cobol, który zawiera stosy sztywnych reguł biznesowych, które w mniejszym lub większym stopniu określają naszą firmę? Czy miałbyś coś przeciwko konwersji na platformę .NET?”
Yikes.
Rozpoczniemy transmisję za kilka tygodni.
Życz mi szczęścia..
Mój brat i ja wiele lat temu pracowaliśmy nad multimedialną stroną internetową dla bardzo znanej gwiazdy rocka .
Gdy klient zobaczył witrynę, zauważył pewne artefakty kompresji na niektórych plikach JPEG i zapytał, co jest z nimi nie tak. Wyjaśniliśmy, że obrazy wymagają kompresji do celów związanych z przepustowością i że obrazy są obecnie kompresowane z około 80% jakością. Był obrażony i powiedział coś do skutku
Nie dotarłem do miejsca, w którym jestem dzisiaj, robiąc rzeczy na poziomie 80%, ustaw to na 100%.
Próbowaliśmy wyjaśnić, w jaki sposób wpłynie to na użytkowników, ale on nie miałby tego. Spowodowało to powstanie najwolniejszej witryny „wirtualnego świata”. To się faktycznie wydarzyło .
Musimy opóźnić uruchomienie witryny o dwa tygodnie, ponieważ Mercury jest w wersji wstecznej i jest to zły czas na rozpoczęcie nowych rzeczy.
Oczywiście po przeczytaniu jakiegoś magazynu biznesowego w samolocie na temat tego, jak XML była nową, gorącą technologią (było to około 2002 r.), Jeden z naszych kierowników zapytał mnie, czy nasza aplikacja używa XML, kiedy powiedziałem „nie”, zapytał mnie, czy możemy go dodać.
Teraz nie mówię o funkcji importowania / eksportowania plików w formacie XML, po prostu chciał, aby była ona częścią architektury bez żadnego innego powodu niż był w tej chwili popularny i nadałby wiarygodność naszej aplikacji.
„W tej chwili nazwy użytkowników muszą być unikalne, a hasła nie są. Czy możemy to zrobić na odwrót?”
Około 7 lat temu pracowałem w sklepie na zamówienie, który postanowił sprzedać jeden z jego produktów. Był to kompleksowy pakiet operacyjny dla niektórych branż. Cóż, ta branża nie była znana z tego, że jest super technologiczna, więc w jakiś sposób ostatecznie zapewniamy wsparcie techniczne stron trzecich dla ich serwerów i infrastruktury IT zamiast udostępniać je niezależnym konsultantom IT z małych firm.
Pewnego dnia serwer klienta napotkał uszkodzenie dysku. Serwer, który sprzedaliśmy, został skonfigurowany z kontrolerem Adaptec RAID, skonfigurowanym dla kopii lustrzanej RAID 1. Ich baza danych aplikacji toast. Nie tworzyli kopii zapasowych od miesięcy. Kopie zapasowe, które wykonali, były bezużyteczne. Ostatecznie stracili 8 miesięcy danych. Zatrudnili konsultanta IT do obsługi tej pracy dochodzeniowej.
Nastąpiły rozmowy telefoniczne, a kierownik sprzedaży (znany z obiecujących niemożliwych funkcji) najwyraźniej powiedział im, że zostanie załatwiony, i napisał to w umowie.
Kierownik sprzedaży obiecał klientowi, że upewnimy się, że baza danych aplikacji i wszelkie inne pliki związane z aplikacjami nigdy nie będą replikowane przez kontrolery RAID, jeśli pliki te zostaną uznane za uszkodzone. Nie trzeba też konfigurować. Tak. Powiedziano nam, aby dostarczyć tę funkcję w ciągu 2 tygodni, inaczej klient nas zwolni.
Tak więc kierownik programu - który miał na swoim koncie kilka produktów CRM dla dużych przedsiębiorstw i inne poważne sukcesy programistyczne - i spotkałem się z dyrektorem ds. Operacyjnych i kierownikiem sprzedaży. Kierownik programu szczegółowo opisywał, jak szalone, niemożliwe i niesamowicie niemożliwe. Kierownik sprzedaży (tło wojskowe) po prostu krzyczałby mu w twarz (dosłownie!): „Nie obchodzi mnie to! Jak trudne może być uczynienie RAID rzeczą nie RAID ?! Ich dane byłyby w porządku na drugim dysku, gdyby RAID nic nie spieprzyło! ”
Pod koniec tego spotkania kierownik programu zakończył pracę z zerowym wyprzedzeniem. Więc miałem teraz za to zadanie. W ciągu następnego tygodnia złożyłem petycję zarówno do Adaptec, jak i LSI Logic, aby zapewnić inżyniera do połączenia konferencyjnego, po prostu śmiać się w obliczu kierownika sprzedaży.
Ostatecznie zobowiązali się i podnieśli koniec umowy. I szczegółowo opisali, jak absurdalnie było to niewykonalne. Facet z LSI był wyjątkowo surowy - niczego nie pokrył cukrem.
Nie musiałem implementować tej funkcji. Jedną z rzeczy, które musiałem wdrożyć, był niestandardowy schemat bezpieczeństwa wymagany przez klienta, który pozwoliłby mu przełączać dowolne elementy sterujące aplikacji - na zasadzie sterowania przez kontrolę - jako widoczne, wyłączone, włączone, tylko do odczytu lub do odczytu i zapisu . Teoretycznie było 146 000 kombinacji. A jeśli przypadkowo spieprzysz, powiedzmy ... wyłączając grupę kontrolną, będziesz miał niezamierzone skutki uboczne. Nie trzeba dodawać, że kiedy otrzymałem ultimatum, że trzeba go wdrożyć, zrezygnowałem z wypowiedzeniem zero dni.
+1
za „rezygnację z wypowiedzenia z zerowym dniem”, ponieważ czasami trzeba po prostu odejść, a niektórzy ludzie nigdy tego nie dostają i wciąż się mylą.
Poprosili mnie o wyszukanie produktu komercyjnego, który mógłby automatycznie znaleźć i naprawić błędy w kodzie źródłowym.
Wciąż szukam .. od 2001 roku :).
Kiedyś miałem specyfikację klienta, która dosłownie wymagała kodu zdolnego do cofania się w czasie.
Mój pracodawca zebrał dane dla klienta, a my mieliśmy dostarczać je w formacie X w odstępach dziesięciominutowych między 9:00 a 17:00, z wyjątkiem ostatecznej dostawy, która była w formacie Y (tylko X z inną stopką). Zrobiłem właśnie to ... a oni oszaleli. Gromadziliśmy niewielkie ilości danych i naprawdę mieliśmy tylko jeden lub dwa punkty danych do dostarczenia w danym dniu.
„WYJDŹ OD SPAMMINGU Z PUSTYMI PLIKAMI !!!” oni płakali. „KAŻDY DZIESIĘĆ MINUT PIĘĆ K OZNACZA NASZE BANDTUBY!”
W porządku. Tak więc mój kod sprawdzany jest co dziesięć minut i dostarczany tylko wtedy, gdy jest coś do dostarczenia. Słusznie.
„ALE OSTATNI PLIK MUSI BYĆ W FORMACIE !!!” krzyczeli. „NOWOCZESNA TECHNOLOGIA KONFUZUJE I WSTRZYMAJE NAS! USUŃ, CZY BĘDZIEMY BIEĆ CIEBIE Z MASTODONEM! *”
(* - Możliwe, że źle pamiętam fragmenty rozmowy.)
„Więc dostarczę plik tylko wtedy, gdy będą dostępne nowe dane”.
"TAK."
„Ostateczna dostawa tego dnia ma mieć inny format pliku”.
"TAK."
„Tyle że nie mam sposobu, aby wiedzieć, który plik będzie ostatnim dniem do końca dnia”.
"TAK."
„Tak więc jedynym sposobem na wdrożenie tego jest napisanie kodu cofającego się w czasie pod koniec dnia, aby powtórzyć format tego, co okazało się ostateczną dostawą”.
„CZY MOGĘ MIEĆ RAPORT Z WYNIKÓW SPORTOWYCH? ZWRÓCIŁEM SIĘ DO PRZYSZŁOŚCI II. BIFF TANNEN TO NAS SZCZĘŚLIWY”.
Po części odmówiłem, ponieważ pogwałcenie przyczynowości jest nieetyczną praktyką programistyczną, po części dlatego, że CPAN.org nie miał modułu, który pozwoliłby mi to zrobić. (Sprawdziłem.) W końcu pozwolili mi wysłać plik w formacie Y na koniec dnia, niezależnie od tego, czy zawierał jakieś dane. Jestem pewien, że ich przepustowość przetrwała hit.
+1
ponieważ „naruszanie przyczynowości jest nieetyczną praktyką programowania”. Teraz jest zasada, która wymaga więcej uwagi.
Bez żadnej widocznej przyczyny zabrano mnie na prywatne spotkanie i powiedziano mi, aby nie sprawdzać, czy monitorowany jest mój komputer - w tym nigdy nie sprawdzam mojego menedżera zadań z jakiegokolwiek powodu. Zapytałem, czy monitorują mój komputer, i powiedziano mi (z grubsza), że to tylko zapobieganie - wiesz, nasz prawnik kazał nam powiedzieć o tym pracownikom - ale wiesz, tak naprawdę nie możemy powiedzieć - - ale nie monitoruję tego teraz. ”
(szturchnijcie, myślę, że monitorowali mój komputer, tylko nie, gdy mówili mi, żebym nie szukał żadnych programów monitorujących. W rzeczywistości kilka tygodni później przyszedłem wcześnie i dosłownie obserwowałem mysz poruszającą się po ekranie, jakby zdalny - więc spojrzałem przez okno CEO i zobaczyłem, jak zdalnie klika mój komputer z laptopa).
Kiedyś miałem długą „dyskusję” ze spiczastym włosy szefem, który nalegał, abyśmy mogli przechowywać 2 w nieco typie danych, ponieważ była to „tylko jedna cyfra”.
Najgłupsza rzecz, o którą mnie proszono, to prawdopodobnie przeróbka bardzo dużego projektu. Było to około 350 tys. Linii, wszystkie C (z niewielkim perlem wmieszanym w skrypty pomocnicze) i działały dobrze bez względu na to, co zrobili klienci.
Prawie rok później mieliśmy:
Zasadniczo nie osiągnęliśmy niczego, czego nie byłoby w stanie przeprowadzić rozsądnego refaktoryzacji. Ale mój szef był szczęśliwy, pozbyliśmy się skryptów pomocniczych.
Uważam to za najbardziej rażącą stratę czasu i istniejącego kodu, jaki kiedykolwiek widziałem.
Klient: Od kilku lat korzystamy z oprogramowania bazodanowego, opracowujemy z nim własne aplikacje i od czasu do czasu wzywamy cię do pomocy.
Ja: Tak, doceniamy robienie interesów z tobą.
Klient: Tak. Za każdym razem, gdy dzwonimy, mówisz nam, jak korzystać z nowej funkcji, pomagasz nam debugować nasze użycie lub podajesz obejście jakiegoś problemu.
Ja: Jasne, zawsze cieszymy się z pomocy.
Klient: sporadycznie w Twoim produkcie jest błąd, a Twoja firma go naprawia i daje nam aktualizację oprogramowania.
Ja: robimy co w naszej mocy.
Klient: Cóż, teraz potrzebujemy od ciebie pewności, że nie będziemy mieć więcej problemów.
Ja: . . .
Zostałem poproszony o napisanie w prezentacji naszego oprogramowania dla dużego międzynarodowego potencjalnego klienta, że zastosowaliśmy technikę kodowania „spaghetti code”.
Oczywiście jesteśmy we Włoszech ... brzmi dobrze.
Zmieniam kolor podświetlania składni, aby pasował do kolorów używanych w systemie kontroli wersji.
Zobaczmy:
Pisz programy w C ++
Czy możesz wziąć ten 10-stronicowy raport, który poprosiłem o przygotowanie go jako dokument słowny, i zamienić go w prezentację PowerPoint, ponieważ tak naprawdę jestem wizualnym myślicielem i tak naprawdę nie przeczytam pisemnego raportu, o który prosiłem?
Ok, chcę, żebyś zeskanował to zdjęcie domu, kiedy wrócę, powinieneś być w stanie pokazać mi jego tylną część.
„Nie podoba mi się sposób, w jaki działa ta baza danych Oracle. Dlaczego nie stworzymy własnej bazy danych?”
(Wprawdzie to było ponad 15 lat temu, ale nadal!)
Poproszono mnie o ładowanie artykułów ze strony internetowej konkurenta do elementu iframe, który znajdowałby się w skórze naszej witryny, dzięki czemu wyglądałoby na to, że pochodzi od nas.
Dla mnie najbardziej szalony (i być może najśmieszniejszy) był
Widzisz 10 milionów linii kodu w (przestarzała technologia internetowa)? Napisz kompilator, aby przekonwertować go na działającą witrynę Asp.net.
Nigdy nie wypluł działającej wersji (oczywiście próbowałem powiedzieć, że to niepraktyczne), ale i tak było zabawnie.
Jedną z głównych cech aplikacji opracowanej przez naszą firmę była możliwość przeszukiwania dużych ilości dokumentów według pełnego tekstu dokumentu. Konkurent złożył następujące oświadczenie w prezentacji marketingowej jednemu z naszych klientów,
Nasza technologia wyszukiwania jest lepsza, ponieważ nie tylko przeszukuje tekst dokumentów, ale także przeszukuje „bity i bajty” rzeczywistego pliku w formie binarnej.
Dali absurdalny przykład tego, jak dziesiętne reprezentacje ascii słów „bagażnik” i „łódź” były znacznie mniej podobne niż te same słowa w formie binarnej, kiedy porównałeś rzeczywiste cyfry liczbowe w reprezentacji. Wyszukiwanie w oparciu o jedynki i zera dokładniej odzwierciedlało to, jak podobne były te dwa słowa wizualnie, a tym samym poprawiło przywołanie.
Naturalnie miałem za zadanie zbadać tę technikę, która, jak zakładam, była wynikiem marketingowego faceta, który całkowicie nie zrozumiał gdzieś programisty i opracował odpowiedź, którą moglibyśmy uwzględnić w naszej propozycji.
Mały zespół programistów, szef chce, abyśmy zrobili system rezerwacji biletów dla małej linii lotniczej (oczywiście w bardzo krótkim czasie). Zespół mówi:
- jak możesz sobie wyobrazić, potrzebujemy testerów do tego projektu
Szef mówi:
- nie martw się, ucz się od przemysłu samochodowego. Od czasu do czasu przywołują samochody: użytkownicy przeprowadzą testy.
Należałem do zespołu wsparcia dla komputerów mainframe, który zmieniał się wraz z innymi zespołami wsparcia w centrum danych. Po zmianie zwykle mieliśmy odprawę z kierownikami i zespołem następnej zmiany. Pewnego dnia nasz nowy dyrektor pojawił się i zadał pytanie: „Dlaczego średnie obciążenie procesora podczas twojej zmiany wynosiło tylko 72%, podczas gdy poprzednia zmiana pokazuje blisko 95%? Myślę, że jeśli naprawdę się postaramy, możemy w końcu osiągnąć 100% obciążenia procesora! „
Około 12 lat temu, kiedy byłem na studiach, pracowałem nad aplikacją do modelowania danych dla systemu Windows. Projekt był prawie ukończony po około 60 000 linii kodu Win32, wiesz, kodu kierowanego na platformę Windows. Następnie klient powiedział, że aplikacja musi również działać „w Internecie”. Trudno jej było zrozumieć, w jaki sposób ta jedna „niewielka” zmiana wymagań może mieć tak duży wpływ na projekt. Zaczynałem od nowa w Javie, ale ostatecznie opuściłem projekt, zanim jeszcze został ukończony.
Pracowałem nad dużym projektem w 1996 roku, w którym nagraliśmy wydarzenia sportowe na żywo. Ta rozmowa się wydarzyła:
Szef: Idź na miejsce następnego wydarzenia.
Ja: Czego potrzebujesz ode mnie.
Szef: Bądź tam na wszelki wypadek.
Ja: Na wszelki wypadek?
Szef: W przypadku, gdy lider technologiczny go straci. Jest zbyt zestresowany i nie wiem, co mógłby zrobić.
Ja: A jeśli go zgubi, co chcesz, żebym zrobił?
Szef: Po prostu zabierz go stamtąd, aby wszyscy inni mogli kontynuować pracę. Nie obchodzi mnie, jak to robisz.