Khi nào bạn thường tự viết một mô-đun phần mềm so với việc mua một sản phẩm hiện có?


13

Tôi đang cố gắng tìm hiểu lý do quyết định của bạn khi nào nên làm gì. Tôi rất vui khi cung cấp thêm ngữ cảnh, nhưng tôi muốn làm cho nó chung chung ngay bây giờ.


Điều gì về tùy chọn # 3, "sử dụng thư viện nguồn mở?" Đó thực sự có thể là một sự thỏa hiệp, bởi vì bạn có thể điều chỉnh nó theo nhu cầu của bạn.
Nathan Long

@NathanLong: đó là một điểm tốt, nhưng tôi hy vọng rằng nếu OP hỏi câu hỏi này, điều đó có nghĩa là chỉ có kịch bản này mới thú vị. Ngoài ra, một sản phẩm có thể là nguồn mở và vẫn được bán thương mại, vì vậy tôi nghĩ bạn có nghĩa là "phần mềm miễn phí". Và tùy thuộc vào loại giấy phép, bạn không nhất thiết phải điều chỉnh nếu theo nhu cầu của mình (ví dụ: nếu bạn dự định bán lại và không tương thích), do đó, có rất nhiều yếu tố khác nhau để xem xét con đường này. (tuy nhiên không nói đó là một đề nghị tồi)
haylem

Câu trả lời:


17

Tôi đoán nó đơn giản hóa quá mức, nhưng điều đó đúng với tư cách là một hướng dẫn chung:

Trong môi trường cá nhân

  • Tôi có vui khi viết mã không?
  • HAY tôi học được điều gì từ mã hóa nó?

VÀ:

  • Tôi có đủ thời gian để viết mã không?

Nếu có, thì tôi thích viết nó hơn là mua nó.

Trong môi trường chuyên nghiệp

Nếu tổng chi phí sở hữu sản phẩm (bao gồm phát triển, thử nghiệm, bảo trì, hỗ trợ hoặc bất kỳ chi phí liên quan nào) cao hơn chi phí của sản phẩm và lợi tức đầu tư được tính sẽ không bù đắp chi phí này, thì bạn tốt hơn hết là mua nó và di chuyển trên.


1
+1 rất quan trọng để thỉnh thoảng tự viết mã một số nội dung nếu không bạn sẽ kết nối thứ này với thứ khác như Thợ sửa ống nước Internet. Bạn cũng phải cân bằng "học cái gì đó từ nó" và xác định xem bạn có muốn / cần học cái gì đó không.
Gary Rowe

2
@GaryRowe: cảm ơn. Phải chống lại việc nói đùa về "Thợ sửa ống nước Internet" và các xu hướng web hiện tại và thị trường việc làm web dev. Arggghhhh, nó khá hấp dẫn mặc dù ...
haylem

Trong một môi trường chuyên nghiệp, nó không chỉ là chi phí phát triển, mà còn là chi phí bảo trì liên tục và thời gian phát triển bị mất.
Gilbert Le Blanc

1
@GilbertLeBlanc: đúng vậy, Gilbert. Tôi có nghĩa là chi phí đầu cuối, nhưng tôi sẽ làm rõ như bạn đề xuất, vì nó thực sự nên nói về TCO của sản phẩm.
haylem

9

Những điều cần xem xét cho một quyết định mua hoặc mua

  • chi phí phát triển / chi phí bảo trì so với chi phí sản phẩm / chi phí cho hợp đồng bảo trì: tất nhiên, đó là điều hiển nhiên, nhưng thực ra đó không phải là điều duy nhất. Ví dụ: nếu tôi sẽ sử dụng phần mềm không chỉ cho công ty của mình mà còn muốn bán nó cho người khác, thì phép tính trông hoàn toàn khác

  • Có sẵn một sản phẩm phù hợp. Đối với nhiều quy trình kinh doanh, không có phần mềm chuẩn nào có sẵn. Hoặc có một cái gì đó có sẵn, nhưng nó không phù hợp, bởi vì nó chứa 100 tính năng mà bạn chỉ cần 3 theo cách hơi khác nhau, trong khi 2 tính năng quan trọng khác bị thiếu.

  • Có ai muốn nhận được sự phụ thuộc từ một nhà cung cấp bên thứ ba? Đặc biệt là các nhà cung cấp nhỏ hơn cung cấp cho bạn luôn có nguy cơ nhà cung cấp biến mất khỏi thị trường trong tương lai hoặc sự phát triển hơn nữa của sản phẩm không đi theo hướng bạn cần. Đối với một sản phẩm bạn có dưới sự kiểm soát của chính mình, bạn có thể điều khiển hướng phát triển tốt hơn nhiều.

  • Khi nào tôi cần một phần mềm cụ thể và điều gì nhanh hơn: tự mình phát triển phần mềm hoặc mua một cái gì đó, điều chỉnh cho đến khi nó phù hợp với quy trình của tôi và tung ra? Mua một thứ gì đó từ giá đỡ có vẻ là sự thay thế nhanh hơn và đôi khi rẻ hơn, nhưng cá nhân tôi cũng đã thấy các kịch bản phát triển phần mềm chính xác cho nhu cầu của công ty, phù hợp với quy trình kinh doanh hiện tại, tiết kiệm rất nhiều thời gian so với mua một số thứ và dạy một số Hàng trăm người dùng thực hiện công việc của họ theo một cách mới và khác biệt, rằng chi phí phát triển là không đáng kể.


8

Bất cứ điều gì phải làm với mật mã. Có 100.000 cách để làm điều đó sai và phơi bày phần mềm của bạn trước các lỗ hổng bảo mật nghiêm trọng và chỉ có một vài cách để làm điều đó đúng. Chuyên môn cao là cần thiết cho việc này.


+1 Xem thêm: lập trình
Gary Rowe

Đó là một điểm tốt, mặc dù tôi nghĩ rằng có nhiều thứ khác cũng đáng để rơi vào nhãn "không vít với cái này". Tuy nhiên, đối với mục đích sử dụng cá nhân (và miễn là không có tiếp xúc và nó không dành cho dữ liệu nhạy cảm), việc tự chụp ảnh vẫn rất thú vị với tiền điện tử. Tôi thực hiện lại một vài mật mã cho vui và tự học vài năm trước. Có rất nhiều vấn đề tuyệt vời để xem xét, có rất nhiều niềm vui khi làm điều đó và học được rất nhiều.
haylem

Tôi sẽ tránh mua tiền điện tử. Các thư viện tiền điện tử đáng tin cậy thường là nguồn mở hoặc một phần của HĐH. Tôi tin tưởng mã của riêng tôi trên hầu hết các thư viện nguồn đóng. Tôi sẽ không sử dụng bất kỳ thư viện nào ít nhất không công bố một đặc tả rõ ràng và đầy đủ về cách thức hoạt động của mã tiền điện tử.
CodeInChaos

@CodesInChaos khá nhiều gói "nguồn đóng" thương mại cung cấp cho bạn mã nguồn.
Pieter B

Trên thực tế tôi nghĩ rằng một mã đánh giá ngang hàng là tốt hơn và giả sử rằng kẻ tấn công không biết thuật toán là một sai lầm. Nhưng tại sao bạn thậm chí liên kết điều đó với mật mã?
Ramzi Kahil

0
  • nỗ lực thời gian cao, sản phẩm phù hợp hiện có >> mua sản phẩm
  • quan tâm cá nhân về kỹ thuật hoặc không có sản phẩm nào phù hợp với tất cả các yêu cầu >>
    tự mình phát triển

0

Ở cấp độ cá nhân, tôi phát triển dựa trên sự kết hợp kỳ lạ giữa những gì tôi muốn và những gì sẽ thú vị để viết.

Ở cấp độ chuyên nghiệp, @haylem đưa ra quan điểm tổng thể tốt về thời điểm mua so với khi nào nên viết. Tôi sẽ nói rằng có một yếu tố rất lớn bị bỏ qua: cơ hội. Đối với các công ty lớn hơn, theo ý kiến ​​của tôi, việc tùy chỉnh viết dòng cốt lõi của các ứng dụng kinh doanh (không phải tất cả các dòng ứng dụng kinh doanh) khi làm như vậy sẽ khiến doanh nghiệp nhanh nhẹn hơn. Có một chi phí cơ hội liên quan đến việc mua phần mềm bởi vì sau đó doanh nghiệp của bạn (không chỉ CNTT của bạn) bị khóa trong cách nhìn của nhà cung cấp về tên miền của bạn.

Đối với hầu hết mọi thứ, nó không thành vấn đề. Hệ thống kế toán của bạn tốt hơn không nên sáng tạo. Trình xử lý văn bản của bạn sẽ giống như bất kỳ ai khác. Nhưng những điều làm cho bạn có thể được viết tốt hơn trong nhà để nó có thể thích nghi với những gì mà doanh nghiệp của bạn đang cố gắng thực hiện.


0

Đó là, như hầu hết mọi câu trả lời khác đã nói, một quyết định lợi ích chi phí:

  • Điều gì sẽ khiến tôi mất nhiều thời gian, vật liệu, vv để giao dự án này cho nhà phát triển nội bộ, hoặc nhà thầu bên ngoài, để phát triển tùy chỉnh? (thường là cao; tính phần chi phí chung của họ, cộng với tiền lương và lợi ích, một nhà phát triển có kinh nghiệm sẽ khiến bạn mất khoảng một ngày lớn; có thể nhiều hơn hoặc ít hơn một chút tùy thuộc vào tài chính có liên quan)
  • Điều gì sẽ chi phí cho tôi để mua sản phẩm được biết đến ngoài kệ? (Phụ thuộc vào sản phẩm; các chương trình sử dụng chung như trình soạn thảo văn bản thường rẻ, thậm chí miễn phí, trong khi các chương trình chuyên dụng như sản phẩm thiết kế đường dẫn mạch có thể tốn hàng triệu đồng)
  • Tôi sẽ nhận được lợi ích gì từ một giải pháp được phát triển tùy chỉnh? (Thông thường, một giải pháp tùy chỉnh phù hợp hơn với doanh nghiệp của bạn và do đó có thể tự động hóa hoặc ít nhất là số hóa nhiều hơn về nó)

Nó liên quan đến việc liệu chi phí, bù đắp bởi lợi ích của một giải pháp được phát triển tùy chỉnh có thấp hơn chi phí của sản phẩm ngoài giá hay không.

Ngoài ra còn có chi phí cơ hội để xem xét. Hiểu rằng những điều này không được bao gồm trong chi phí thực sự của việc phát triển so với mua, nhưng trong thế giới rộng lớn hơn, bạn phải xem xét chúng. Nếu nhân viên phát triển nội bộ của bạn đang làm việc trong một dự án này, thì họ không làm việc với bất kỳ dự án nào khác; điều đó có nghĩa là nếu có một dự án khác trong danh sách khiến bạn mất tiền mỗi ngày thì không được thực hiện, đó có thể là ưu tiên cao hơn khiến bạn tạm gác hoặc thậm chí hủy bỏ việc phát triển tùy chỉnh và đi kèm với gói giảm giá. Tuy nhiên, nếu không thực hiện dự án này có nghĩa là nhân viên nội bộ của bạn đang ngồi trên tay họ, chi phí nhà phát triển bị chìm; bạn đang trả tiền cho nhân viên phát triển của mình cho dù họ có làm việc hay không, do đó, bạn sẽ mất ít chi phí hơn nếu bạn sử dụng họ cho tiềm năng của họ.


0

Tôi giả sử bạn đang hỏi trong một bối cảnh chuyên nghiệp, thương mại và rằng chúng ta đang nói về một phần chính của hệ thống của bạn chứ không phải là một thư viện.

Thực hiện hoặc mua so với thực hiện hoặc tùy chỉnh

Có những tình huống khi tổ chức của bạn có thể sử dụng một sản phẩm có sẵn. Chẳng hạn, ít người sẽ viết trình xử lý văn bản của riêng họ - họ sử dụng MS Word hoặc OpenOffice hoặc bất cứ thứ gì. Tương tự cho bảng tính. Lưu ý rằng bạn có thể "tùy chỉnh" trình xử lý văn bản của mình bằng các mẫu hoặc macro của riêng bạn, nhưng mọi người không nghĩ đó là tùy chỉnh. Đó chỉ là "sử dụng" trình xử lý, như họ thấy.

Có thể sử dụng các hệ thống phức tạp hơn theo cùng một cách, từ các hội thảo trực tuyến đến các hệ thống ERP. Nhưng sẽ đến lúc các nhà thiết kế của bạn hoặc những người phát triển kinh doanh sẽ muốn một sự thay đổi không được bao gồm trong tiêu chuẩn. Một thiết kế lại của trang thanh toán, có lẽ, hoặc một cách mới để tính toán ưu đãi giảm giá.

Nếu bạn biết rằng từ đầu, thì quyết định của bạn thực sự là Thực hiện hoặc Tùy chỉnh . Chỉ cần mua không còn là một lựa chọn. Và ngay cả khi không có những yêu cầu như vậy ngay bây giờ, bạn có mong đợi đồng nghiệp của mình sẽ đưa ra chúng sau này không?

  • Bạn có được phép tùy chỉnh hệ thống, ngoài việc tải lên logo công ty của bạn ở đúng nơi không?
  • Làm thế nào là khó khăn, và nó có thể được thực hiện bởi nhân viên của bạn hoặc bạn phải ký hợp đồng với nhà cung cấp? Lưu ý rằng có những công ty có toàn bộ mô hình kinh doanh là cung cấp dịch vụ cao cấp cho một phần mềm miễn phí do họ phát triể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.