Quyết định công nghệ tồi tệ nhất bạn từng thấy là gì? [đóng cửa]


10

Điều này bao gồm các quyết định kiến ​​trúc, lựa chọn nền tảng hoặc bất kỳ tình huống nào trong đó một lựa chọn tồi tệ như vậy dẫn đến hậu quả tiêu cực.

Câu trả lời:


22

Nhiều năm trước, tôi là nhà phát triển chính trên một ứng dụng tập trung vào cơ sở dữ liệu bắt đầu ném lỗi. Tôi đã theo dõi nó đến thực tế là có các giá trị trùng lặp trong trường cơ sở dữ liệu không nên cho phép chúng.

Tôi đã tự đánh mình về việc quên đặt một ràng buộc duy nhất cho cơ sở dữ liệu khi tôi đã đẩy nó vào sản xuất vì nó quá rõ ràng đến mức lĩnh vực này cần một. Tôi đã tuyên dương một trong những nhà phát triển đồng nghiệp đã sửa chữa cho tôi ...

Nhà phát triển khác : "Ồ, bạn không quên, có một ràng buộc duy nhất trên lĩnh vực đó. Tôi mới gỡ bỏ nó."

Tôi : "Tại sao bạn loại bỏ nó?"

Nhà phát triển khác : "Tôi đã làm điều đó một vài tuần trước. Tôi đã nhận được các tệp dữ liệu từ khách hàng và họ sẽ không nhập vì ràng buộc duy nhất đang chặn dữ liệu mới. Vì vậy, tôi đã xóa ràng buộc đó để tôi có thể hoàn tất việc nhập dữ liệu đó."

Tôi: "Bạn đã dừng lại để xem xét rằng có thể có vấn đề nếu chúng tôi nhận được dữ liệu mới trùng lặp với dữ liệu hiện có và suy nghĩ về việc đề cập đến ai đó trước khi nhập dữ liệu?"

Nhà phát triển khác : (nhìn chằm chằm trống)

Tôi : Facepalm.


Điều đó chỉ đau.


7

Không chắc chắn nếu điều này được coi là một quyết định công nghệ , nhưng tôi chịu trách nhiệm cho một trang web quản lý tài liệu giống như CMS được viết bằng PHP trong bốn năm. Trong suốt những năm này, tôi đã cố gắng nhiều lần để khiến mọi người (người quản lý, người dùng, người yêu cầu tính năng) có lẽ, có thể, có thể , xem xét khả năng ngồi lại với nhau và suy nghĩ về các yêu cầu và hướng tương lai của sự việc. Nó không bao giờ xảy ra. Luôn luôn có thêm tính năng này, tính năng này, cộng thêm tính năng đó, và mọi người đều không biết gì về tất cả các cách khác nhau mà mọi người khác sử dụng trang web. Khi tôi rời đi, nó đã trở thành một mớ hỗn độn các tính năng liên kết với nhau nhưng không liên quan và tôi là người duy nhất trong toàn bộ công ty biết mọi tính năng. Bây giờ, không ai làm. Mwahaha.


Thời gian để có được một tư vấn trên tàu!
Kirk Broadhurst


4

Viết lại một hệ thống thư thoại cấp Telco.

Hệ thống trước đó đang chạy trên Unix và vào khoảng cuối thập niên 90, công nghệ COM của Microsoft đã xuất hiện. Nhiều nhà phát triển đã làm việc trên hệ thống dựa trên NT mới này. Sau rất nhiều nỗ lực, hiệu năng của nó vẫn không ở đâu gần với hệ thống Unix và một khách hàng lớn đã mua hệ thống mới này đã tức giận. Công ty đã phải bán và một số người phải rời khỏi công ty.

Thật là xấu xí. Tất cả điều này xảy ra khoảng hai năm trước khi Joel viết bài viết của mình: Những điều bạn không bao giờ nên làm, Phần I


3

Thông qua một thư viện bên ngoài (trong trường hợp này là Spring RCP ) trước phiên bản phát hành đầu tiên, dựa trên ảnh chụp nhanh SVN. Nó được đảm bảo khá nhiều rằng dự án sẽ kết thúc ít nhiều đã chết và bạn sẽ thấy mình bị trói vào xác chết. Vâng, trong trường hợp của chúng tôi nó có thể đã tồi tệ hơn. Vẫn là một rủi ro lớn.


Argh, bạn vừa nhắc tôi về một phần khác trong quá khứ tôi muốn quên đi. Tôi đã kế thừa một phần của một dự án (cùng dự án mà tôi đã đề cập trong câu trả lời của mình) được xây dựng trên ảnh chụp nhanh của Spring RCP. Tôi không bao giờ có thể hiểu tại sao. Nó dường như không thêm bất cứ điều gì ngoài rắc rối.
Dan Dyer

3

Một ví dụ tôi nhớ lại liên quan đến việc cam kết với một máy chủ ứng dụng Java cụ thể từ sớm mặc dù thực tế là nó chưa có các tính năng cần thiết cho dự án, chỉ là một lộ trình khi chúng sẽ được thực hiện. Đương nhiên, nhà cung cấp đã không giao hàng kịp thời như đã chỉ ra ban đầu, đây đáng lẽ là một vấn đề lớn nhưng thực tế chỉ là một trong số rất nhiều trò chơi trên con đường chậm chạp dẫn đến thất bại.

Hầu hết các trường hợp của loại vấn đề mà tôi gặp phải đều liên quan đến việc cam kết một công nghệ chưa được chứng minh / chưa trưởng thành, thường bởi vì ai đó có ảnh hưởng ở khía cạnh kỹ thuật là người đề xuất phát triển theo định hướng.


1

Ba năm trước, bộ phận BusDev của chúng tôi cho biết họ phải xây dựng hệ thống mgmt nội dung của họ trên Documentum vì các công ty Pharma mà họ đang cố gắng để biết tên và cảm thấy thoải mái với công nghệ. Vì vậy, chúng tôi đã chi rất nhiều tiền để xây dựng nó sau đó tạm gác nó 12 tháng sau đó.

Vào tháng Hai năm nay, họ đã công bố hệ thống mới sẽ dựa trên Sharepoint 2010. Bạn muốn đoán tại sao? Bởi vì, đột nhiên, ĐÂY là cái tên được biết đến bởi Pharmas và là cái mà họ cảm thấy thoải mái!
Chúng ta sẽ thấy những gì năm 2012 mang lại!

\ uSlackr


0

Viết hệ điều hành hiện đại bằng C / C ++. Chúng tôi đã biết từ sâu Worm (cuối thập niên 80) rằng đó là ngôn ngữ hoàn toàn không phù hợp để xây dựng phần mềm nối mạng, nhưng điều đó đã không ngăn cản bất kỳ ai làm điều đó, về cơ bản là do sơ suất hình sự IMO.


5
-1 Là tôi, hay đây là lần thứ 5 hoặc thứ 6 bạn đăng về C là một sai lầm? FUD là mệt mỏi. Chỉ vì bạn không thể mã C mà không phạm lỗi bảo mật không có nghĩa là người khác không thể. Bạn không thể ghét một ngôn ngữ dựa trên những gì thực hành xấu là có thể.
thay thế

2
Đó FUD để nói rằng thực tế rằng "C là một ngôn ngữ xấu" là kiến ​​thức phổ biến khách quan.
thay thế

2
@mathepic: Tôi có nói bất cứ điều gì mơ hồ như đó là "một ngôn ngữ xấu" không? Tôi nói rằng nó hoàn toàn không phù hợp để xây dựng các chương trình, chẳng hạn như hệ điều hành, có yêu cầu bảo mật. Và đó là cả thực tế khách quan và kiến ​​thức phổ biến.
Mason Wheeler

6
@mathepic: Tôi với Mason về điều này. Nó được biết đến rộng rãi và chấp nhận rằng việc xử lý chuỗi trong C gây ra lỗi tràn bộ đệm và trong một ngôn ngữ lập trình phù hợp thì không . Cho dù bạn nghĩ bạn giỏi đến mức nào ở mức độ đáng tin cậy, mã hóa liên tục C một cách an toàn trên mạng (pff), một ngôn ngữ làm tăng tỷ lệ lỗi một cách không cần thiết là một ngôn ngữ xấu.
Timwi

3
@Timwi: Câu trả lời ban đầu cho biết "C / C ++". Trong C ++, xử lý chuỗi không gây ra lỗi tràn bộ đệm. Không phải tôi là một fan hâm mộ lớn std::string, nhưng nó hoạt động và cùng với các mẫu lớp container có thể loại bỏ một lớp lớn các lỗi tiềm ẩn.
David Thornley

0

Những gì tôi trông thấy....

Trở lại những năm 1980, có một công ty tên Prime sản xuất máy tính chạy phiên bản cơ sở dữ liệu Pick và BASIC. Bộ phận người dùng của nơi tôi đang làm việc lúc đó đã mua một người hoàn toàn tin tưởng rằng điều này sẽ giúp họ tiết kiệm rất nhiều tiền, rằng họ sẽ nhận được xử lý và kết quả họ muốn với một nhà phân tích kinh doanh trong một phần tư thời gian. Không lâu lắm trước khi có bốn nhà phân tích lập trình viên toàn thời gian và tồn đọng công việc.

Sai lầm lớn trong việc ước tính những gì công nghệ sẽ làm cho họ.


1
Tốt chọn cũ. Tôi đã luôn nghi ngờ có một ngôn ngữ lập trình / cơ sở dữ liệu / lập trình được đặt tên theo chính họ. (ví dụ Dick Pick)
Hóa đơn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.