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ờ.
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ờ.
Câu trả lời:
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:
VÀ:
Nếu có, thì tôi thích viết nó hơn là mua nó.
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.
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ể.
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.
Ở 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.
Đó 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í:
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ọ.
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.
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?