Jaka jest najgorsza decyzja dotycząca technologii, jaką kiedykolwiek widziałeś? [Zamknięte]

10

Obejmuje to decyzje dotyczące architektury, wybory platformy lub wszelkie sytuacje, w których tak zły wybór miał negatywne konsekwencje.

użytkownik3463
źródło

Odpowiedzi:

22

Wiele lat temu byłem głównym programistą aplikacji zorientowanej na bazę danych, która zaczęła zgłaszać błędy. Wyśledziłem to, ponieważ w polu bazy danych były zduplikowane wartości, które nie powinny były na to pozwolić.

Rozmyślałam nad tym, że zapomniałam nałożyć wyjątkowe ograniczenie na bazę danych, kiedy wprowadziłam ją do produkcji, ponieważ było tak oczywiste, że to pole jej potrzebuje. Współpracowałem z jednym z moich programistów, który mnie poprawił ...

Inny programista : „Och, nie zapomniałeś, istniało wyjątkowe ograniczenie w tym polu. Właśnie go usunąłem”.

Ja : „Dlaczego to usunąłeś?”

Inny programista : „Zrobiłem to kilka tygodni temu. Otrzymywałem pliki danych od klienta i nie były one importowane, ponieważ unikalne ograniczenie blokowało nowe dane. Więc usunąłem ograniczenie, aby móc dokończyć importowanie”.

Ja: „Czy przestałeś myśleć, że może występował problem, jeśli otrzymywaliśmy nowe dane pokrywające się z istniejącymi danymi i zastanawiałeś się nad tym, by o nich wspomnieć przed zaimportowaniem?”

Inny programista : (puste spojrzenie)

Ja : Facepalm.

JohnFx
źródło
To po prostu boli.
8

Korzystanie z Visual Sourcesafe

mpenrow
źródło
To jest po prostu okrutne.
Uwaga dla siebie - wymyśl nazwę
7

Nie jestem pewien, czy liczy się to jako decyzja technologiczna , ale byłem odpowiedzialny za stronę zarządzania dokumentami podobną do CMS napisaną w PHP przez cztery lata. Przez te wszystkie lata, próbowałem kilka razy, aby dostać osób (menedżerów, użytkowników funkcje żądającym) być może, być może, na przykład, może rozważyć możliwość siedzą razem i myślenia o wymaganiach i kierunku przyszłego na rzeczy. To się nigdy nie zdarzyło. To było zawsze „dodać tę funkcję”, „dodać tej funkcji”, a wszyscy byli w błogiej nieświadomości wszystkich różnych sposobów, w jaki każdy inny stosowanych na stronie internetowej. Zanim odszedłem, stało się ogromnym bałaganem połączonych ze sobą, ale niepowiązanych ze sobą funkcji, i byłem jedynym w całej firmie, który znał każdą funkcję. Teraz nikt tego nie robi. Mwahaha.

Timwi
źródło
Czas na konsultanta na pokładzie!
Kirk Broadhurst,
5

Wdrażanie SAP

mpenrow
źródło
4

Przepisywanie systemu poczty głosowej klasy Telco.

Poprzedni system działał na Uniksie, a pod koniec lat 90-tych pojawiła się technologia COM Microsoftu. Wielu programistów pracowało nad tym nowym systemem opartym na NT. Po wielu wysiłkach jego wydajność wciąż była bliska wydajności systemu Unix, a duży klient, który kupił ten nowy system, był wkurzony. Firma musiała zostać sprzedana, a niektórzy ludzie musieli opuścić firmę.

To było brzydkie. Wszystko to wydarzyło się około dwa lata przed napisaniem przez Joela artykułu: Rzeczy, których nigdy nie powinieneś robić, część I

grokus
źródło
3

Przyjęcie zewnętrznej biblioteki (w tym przypadku Spring RCP ) przed jej pierwszą wersją wydania, na podstawie migawki SVN. Jest prawie pewne, że projekt skończy mniej lub bardziej martwy, a ty zostaniesz przywiązany do zwłok. W naszym przypadku mogło być gorzej. Wciąż duże ryzyko.

Carlos
źródło
Argh, właśnie przypomniałeś mi o innej części mojej przeszłości, którą wolałbym zapomnieć. Odziedziczyłem część projektu (ten sam projekt, o którym wspomniałem w odpowiedzi), który został zbudowany na migawce Spring RCP. Nigdy nie mogłem zrozumieć, dlaczego. Wydawało się, że nie dodaje nic poza kłopotami.
Dan Dyer
3

Jeden z przykładów, o którym przypominam, dotyczył wcześniejszego zaangażowania się w konkretny serwer aplikacji Java, mimo że nie posiadał on jeszcze funkcji wymaganych w projekcie, a jedynie mapę drogową na czas jego wdrożenia. Oczywiście sprzedawca nie dostarczył tak szybko, jak pierwotnie wskazano, co powinno być dużym problemem, ale w rzeczywistości był tylko jednym z wielu drobiazgów na powolnej drodze do awarii.

Większość przypadków tego rodzaju problemów, z którymi się zetknąłem, dotyczyły niepotwierdzonej / niedojrzałej technologii, często dlatego, że ktoś mający wpływ na stronę techniczną jest zwolennikiem rozwoju opartego na życiorysie.

Dan Dyer
źródło
1

Trzy lata temu nasz dział BusDev powiedział, że musi zbudować swój system mgmt zawartości na Documentum, ponieważ firmy farmaceutyczne, do których próbowali dotrzeć, znają nazwę i czują się dobrze z technologią. Wydaliśmy więc dużo pieniędzy na jego budowę, a następnie odłożyliśmy na półkę 12 miesięcy później.

W lutym tego roku ogłosili, że nowy system będzie oparty na Sharepoint 2010. Chcesz zgadnąć, dlaczego? Ponieważ nagle ta nazwa była znana przez Pharmas i była dla nich wygodna!
Zobaczymy, co przyniesie 2012 rok!

\\ uSlackr

uSlackr
źródło
0

Pisanie nowoczesnych systemów operacyjnych w C / C ++. Od czasu Morrisa Worma (koniec lat 80.) wiemy, że jest to całkowicie nieodpowiedni język do budowania oprogramowania sieciowego, ale to nie powstrzymało nikogo przed zrobieniem tego, co w zasadzie sprowadza się do zaniedbania ze strony IMO.

Mason Wheeler
źródło
5
-1 Czy to ja, czy jest to około 5 czy 6 raz, kiedy napisałeś, że C jest błędem? FUD jest męczący. To, że nie możesz kodować C bez popełnienia błędu bezpieczeństwa, nie oznacza, że ​​inni ludzie nie mogą. Nie możesz nienawidzić języka opartego na możliwych złych praktykach.
alternatywny
2
To jest FUD stwierdzić, że fakt, że „C jest zły język” obiektywne powszechnie znane.
alternatywny
2
@mathepic: Czy powiedziałem coś tak mglistego, że to „zły język”? Powiedziałem, że w ogóle nie nadaje się do budowania programów, takich jak systemy operacyjne, które mają wymagania bezpieczeństwa. I to jest zarówno obiektywny fakt, jak i powszechna wiedza.
Mason Wheeler,
6
@mathepic: Jestem z Masonem w tej sprawie. Powszechnie wiadomo i przyjmuje się, że obsługa łańcuchów w C powoduje przepełnienie bufora, aw prawidłowym języku programowania tak nie jest . Bez względu na to, jak dobrze myślisz, że jesteś „niezawodny, konsekwentnie koduje C bezpiecznie” (pff), język, który niepotrzebnie zwiększa częstotliwość występowania błędów, jest złym językiem.
Timwi
3
@Timwi: Oryginalna odpowiedź brzmiała „C / C ++”. W C ++ obsługa ciągów nie powoduje przepełnienia bufora. Nie jestem wielkim fanem std::string, ale działa, a wraz z szablonami klas kontenerów może wyeliminować dużą klasę potencjalnych błędów.
David Thornley,
0

Co ja zobaczyłem....

W latach 80. istniała firma Prime, która produkowała komputery z wersją bazy danych Pick i BASIC. Dział użytkowników w miejscu, w którym pracowałem w momencie, w którym go kupiłem, był absolutnie przekonany, że pozwoli im to zaoszczędzić mnóstwo pieniędzy, że otrzymają przetwarzanie i pożądane wyniki z jednym analitykiem biznesowym na kwartał. Nie trwało długo, zanim było czterech pełnoetatowych analityków programistycznych i zaległości w pracy.

Duży błąd w oszacowaniu, co technologia by dla nich zrobiła.

David Thornley
źródło
1
Dobry stary Pick. Zawsze pytałem, czy nazwa systemu operacyjnego / bazy danych / języka jest nazwana po sobie. (np. Dick Pick)
Bill