Сюди входять рішення архітектури, вибір платформи або будь-яка ситуація, коли такий поганий вибір призвів до негативних наслідків.
Сюди входять рішення архітектури, вибір платформи або будь-яка ситуація, коли такий поганий вибір призвів до негативних наслідків.
Відповіді:
Роки тому я був провідним розробником програми, орієнтованої на базу даних, яка почала видавати помилки. Я простежив це до того, що в полі бази даних були дублікати значень, які не повинні були допускати їх.
Коли я підштовхнув її до виробництва, я забув про те, щоб забути встановити унікальне обмеження для бази даних, оскільки це було так очевидно, що це поле потребує. Я звернувся до одного з моїх колег-розробників, які мене виправили ...
Інший розробник : "О, ви не забули, на цьому полі було унікальне обмеження. Я просто його усунув".
Я : "Чому ти її зняв?"
Інший розробник : "Я зробив це кілька тижнів тому. Я отримував файли даних від клієнта, і він не імпортував, оскільки унікальне обмеження блокувало нові дані. Тому я усунув обмеження, щоб я міг закінчити імпорт".
Я: "Ви перестали вважати, що, можливо, виникла проблема, якщо ми отримували нові дані, які перетиналися з наявними даними, і думали про те, щоб згадати їх комусь, перш ніж імпортувати їх?"
Інший розробник : (пустий погляд)
Я : Facepalm.
Використання Visual Sourcesafe
Не впевнений, чи вважається це технологічним рішенням, але я відповідав за веб-сайт із управління документами, подібний CMS, написаний на PHP протягом чотирьох років. Протягом цих років я кілька разів намагався змусити людей (менеджерів, користувачів, запитувачів функцій), щоб, можливо, схоже, можливо , розглянути можливість сидіти разом і думати про вимоги та майбутній напрям речі. Ніколи не бувало. Завжди було "додати цю функцію", "додати цю функцію", і всі були шалено не знають про всі різні способи, якими користуються веб-сайт усі інші . На той час, коли я пішов, це стало величезним безладом взаємопов’язаних, але не пов’язаних між собою особливостей, і я був єдиним у всій компанії, хто знав кожну особливість. Тепер ніхто цього не робить. Мвахаха.
Переписування системи голосової пошти класу Telco.
Попередня система працювала на Unix, і приблизно наприкінці 90-х з'явилася технологія COM від Microsoft. Багато розробників працювали над цією новою системою на базі NT. Після великих зусиль його продуктивність все ще не була там, де поруч із системою Unix, і великий клієнт, який придбав цю нову систему, був злий. Компанію довелося продати, а деяким людям довелося покинути компанію.
Це було некрасиво. Все це сталося приблизно за два роки до того, як Джоель написав свою статтю: речі, які ти ніколи не повинен робити, перша частина
Прийняття зовнішньої бібліотеки (у цьому випадку Spring RCP ) до її першої версії, заснованої на знімку SVN. Це майже гарантовано, що проект закінчиться більш-менш мертвим, і ви опинитеся прив’язаним до трупа. Що ж, у нашому випадку могло бути і гірше. Все-таки великий ризик.
Один із прикладів, на який я згадую, стосувався зобов’язання на певному сервері додатків Java на ранніх стадіях, незважаючи на те, що він ще не мав необхідних для проекту функцій, а лише дорожню карту, коли вони будуть реалізовані. Звичайно, постачальник не постачав так швидко, як було зазначено спочатку, що повинно було бути великою проблемою, але насправді це було лише одним із багатьох підйомів на повільній дорозі до відмови.
Більшість випадків подібного роду проблем, з якими я стикався, стосувалися зобов'язань щодо недоведеної / незрілої технології, часто тому, що хтось, хто впливає на технічну сторону, є прихильником регенерованого розвитку.
Три роки тому наш відділ BusDev заявив, що їм доведеться побудувати свою систему вмісту mgmt на Documentum, оскільки фармацевтичні компанії, які намагалися дізнатися цю назву, і були задоволені технологією. Тож ми витратили чимало грошей на його побудову, а потім відклали через 12 місяців.
У лютому цього року вони оголосили, що нова система буде заснована на Sharepoint 2010. Хочете здогадатися, чому? Тому що раптом ЦЕ ім’я було відомо Фармасом, і їм було комфортно!\\ uSlackr
Написання сучасних операційних систем на C / C ++. З черв’я Морріса (кінець 80-х років) ми знали, що це абсолютно непридатна мова для побудови мережевого програмного забезпечення, але це нікого не заважало робити це, що в основному означає злочинну недбалість IMO.
std::string
, але це працює, і поряд із шаблонами класів контейнерів можна усунути великий клас потенційних помилок.
Що я бачив….
Ще в 1980-х роках існувала компанія під назвою Prime, яка виробляла комп'ютери з версією бази даних Pick і BASIC. Відділ користувачів місця, в якому я працював у той час, коли купував один, був абсолютно впевнений, що це заощадить їм грошові гроші, що вони отримають обробку та результати, які хочуть, з одним бізнес-аналітиком за один квартал. Зовсім недовго, перш ніж з’явилися чотири аналітики-програмісти на повний робочий день, і відставання в роботі.
Велика помилка в оцінці того, що технологія зробить для них.