Khi nào nên phát triển phần mềm riêng cho doanh nghiệp?

14:02 08/12/2021

Mọi công ty đều cần và sử dụng phần mềm và một số phần mềm là động lực quan trọng dẫn đến sự thành công trong kinh doanh. Nhưng khi các công ty nhỏ phát triển đến quy mô trung bình thì khoảng cách về hiệu suất phần mềm có thể xuất hiện. Tìm kiếm các giải pháp phần mềm mới có thể khắc phục sự cố và sự kém hiệu quả đồng thời giúp các nhóm phát triển các sản phẩm và dịch vụ mới mẻ. Nhưng các CEO của các công ty cỡ vừa thường phải đối mặt với một sự lựa chọn khó khăn: có nên nâng cấp thông qua một nhà cung cấp hay phát triển code của riêng họ.

Phương hướng thiết lập phần mềm cho riêng doanh nghiệp là câu hỏi cần lời giải cho các doanh nghiệp hiện nay
Phương hướng thiết lập phần mềm cho riêng doanh nghiệp là câu hỏi cần lời giải cho các doanh nghiệp hiện nay. (Ảnh: Influencive)

Mọi người đều hiểu rằng việc nâng cấp phần mềm luôn tốn kém và thường gây gián đoạn. Đôi khi các cập nhật này thất bại hoàn toàn hoặc không thực hiện đúng mục tiêu ban đầu. Điều này có nghĩa có lợi nhuận thu về trên số tiền đã bỏ ra để nâng cấp là ít hoặc không có. Nhưng đôi khi vấn đề đơn giản chỉ là không có phần mềm sẵn có để giải quyết vấn đề riêng của doanh nghiệp. 

Đối với các công ty nhỏ, việc thực hiện các giải pháp thay thế thủ công thường dễ dàng hơn (và hầu như luôn rẻ hơn) khi phần mềm điều hành của họ không đáp ứng được nhiệm vụ. Nhưng các công ty quy mô vừa có thể mất rất nhiều tiền và kìm hãm sự phát triển của họ do sự kém hiệu quả chắc chắn xuất phát từ những cách giải quyết như vậy. Và những quy trình thủ công - được miêu tả là như bị tra tấn đó có thể ngăn các công ty nắm bắt cơ hội kịp thời. Đối với những công ty cỡ trung, code tùy chỉnh là một lựa chọn khả thi. (Các doanh nghiệp lớn với túi tiền lớn có thể xây dựng các nhóm phát triển phần mềm và thường có đủ tài năng để làm việc đó.)

Hầu hết các công ty quy mô trung bình đều có một “super user” có khả năng giúp đỡ mọi người bằng các tính năng đã được tích hợp sẵn trong phần mềm của họ (như trang viết báo cáo, trang tổng quan, v.v.). Và hầu hết phần mềm hoạch định nguồn lực doanh nghiệp (ERP) hiện đại đều có các lớp cho phép tùy chỉnh - thường là lớp nơi người bán lại giá trị gia tăng (VAR) có thể thực hiện thay đổi và lớp khách hàng để khách hàng tùy chỉnh. Nếu một công ty quy mô vừa có thể có được những gì họ cần từ các phần mềm kể trên thì thật tuyệt vời. Nhưng nếu họ không thể thì sao?

Nhiều công ty quy mô cỡ trung gặp khó khăn khi cố gắng quyết định mua phần mềm mới hay cố gắng viết code của riêng họ ngay cả khi điều đó chỉ có nghĩa là kết nối các hệ thống lại với nhau. Một số khác thì cố gắng thuê một công ty phần mềm để giải quyết vấn đề này. Mặc dù việc tạo mã bên ngoài có thể là một phần của một giải pháp nhưng muốn làm như vậy thành công đòi hỏi một quy trình quản lý dự án chặt chẽ - một khả năng không phải tất cả các doanh nghiệp cỡ vừa đều có.

Trong khi đó, thời gian thì cứ trôi trong khi hiệu quả có thể đạt được với phần mềm sẽ không được lấy lại - dẫn tới ăn mòn lợi nhuận, thị phần có thể bị mất vào tay đối thủ cạnh tranh. Làm thế nào các nhà lãnh đạo doanh nghiệp quy mô vừa có thể xác định thời điểm hợp lý để xây dựng phần mềm của riêng họ?

Khi nào thì cần phát triển code của riêng bạn?

Doanh nghiệp sẽ không nhận được hiệu quả nếu phát triển các chương trình tùy chỉnh riêng cho các chức năng kinh doanh cốt lõi như kế toán, tính lương, thuế bán hàng, hàng tồn kho và quản lý quan hệ khách hàng (customer relationship management - CRM) và rất nhiều lựa chọn luôn sẵn có. Nhưng nếu không có phần mềm nào thực hiện những gì bạn cần, bạn có thể không có lựa chọn nào khác ngoài việc tự mình triển khai đặc biệt nếu có cơ hội giá trị cao để nắm bắt hoặc đạt được hiệu quả đáng kể. (Việc tạo mã của riêng bạn chỉ đáng giá nếu thu được lợi nhuận lớn; nếu không có ROI - lợi tức đầu tư - cao thì hãy quên điều đó đi.)

Ví dụ, vào năm 2007, BF&S Manufacturing đã đạt được vị thế là nhà sản xuất hợp đồng cho các thành phần phức tạp, khối lượng thấp - nhưng quan trọng cho hàng không vũ trụ, quân sự, y tế và ngành công nghiệp theo chiều dọc. Khách hàng của họ muốn giám sát công việc nhưng BF&S có trụ sở tại Mexico và nhiều khách hàng của họ không muốn đầu tư thời gian và tiền bạc để đi du lịch và ở lại đó.

BF&S phụ thuộc vào mối quan hệ chặt chẽ với khách hàng, thường nhờ các kỹ sư của họ giải quyết các vấn đề sản xuất. Nhưng khoảng cách và biên giới đang khiến điều đó trở nên khó khăn hơn bao giờ hết. Chỉ chia sẻ màn hình và các tấm ảnh là không đủ đối với khách hàng của mình và BF&S sợ mất họ vào tay các nhà sản xuất có trụ sở gần khách hàng hơn - ngay cả khi những doanh nghiệp đó tính phí cao hơn. BF&S cần có khả năng chuyển dữ liệu sản xuất có giá trị từ hệ thống ERP cốt lõi của mình sang một định dạng mà khách hàng của họ có thể sử dụng.

CEO của BF&S - Carlos Fernandez đã xem xét các lựa chọn nhưng không thể tìm ra giải pháp phù hợp để mua các phần mềm dành riêng cho khách hàng. Thay vào đó, anh ấy nói: “Chúng tôi đã bắt tay vào một chương trình phần mềm cung cấp dữ liệu thời gian thực 24/7” trên các bản dựng sản phẩm của công ty. Chương trình bắt đầu với “chàng trai máy tính” của họ, như cách gọi của Fernandez khi vừa mới tốt nghiệp đại học - xây dựng một công cụ để theo dõi hàng tồn kho nguyên liệu, tiến độ và thành phẩm, đồng thời cung cấp khả năng hiển thị bên trong và bên ngoài BF&S.

Phần mềm được hoàn thành và đưa vào sử dụng lần đầu tiên vào năm 2010 và nhận được sự yêu thích và khen ngợi của khách hàng BF&S. Fernandez bắt đầu thiết lập nhóm phát triển phần mềm ở Mexico - hỗ trợ bốn cơ sở ở bang Sonora với tổng số nhân viên giờ đã lên đến  500. Giờ đây, khách hàng có thể xem video về các máy trạm, tiến độ sản phẩm của họ ở mỗi bước, tồn kho hàng hóa thô và thành phẩm của BF&S, những người đang thực hiện công việc của họ, và tất cả các câu chuyện và thông số kỹ thuật của sản phẩm.

Việc mã hóa tùy chỉnh này yêu cầu sự hiểu biết sâu sắc về cả hoạt động kinh doanh của công ty và nhu cầu của khách hàng. Ban đầu do Fernandez đứng đầu, đội ngũ kỹ sư và lãnh đạo điều hành hiện chịu trách nhiệm lên kế hoạch và quản lý việc hỗ trợ và phát triển liên tục công cụ này.

Hôm nay, mặc dù Fernandez sẽ không tuyên bố rằng code do công ty tự xây dựng là một yếu tố cạnh tranh khác biệt lớn nhưng anh ấy tin rằng nó mang lại cho khách hàng  những gì họ muốn và những gì anh ấy không thể cung cấp thông qua phần mềm bán sẵn: tính minh bạch và một thước đo kiểm soát việc sản xuất các sản phẩm của họ.

Hành trình xây dựng và những chi phí 

Phát triển code của riêng bạn không đơn giản và cũng không rẻ do kỹ sư phần mềm được trả lương cao đặc biệt ở Hoa Kỳ - ở mức sáu con số (USD). Chi phí tìm kiếm và thuê kỹ sư thường liên quan đến chi phí cho các công ty tìm kiếm - tính phí từ 15% đến 30% lương của năm đầu tiên và trong vài năm qua thậm chí họ còn chật vật để tìm kiếm những ứng viên tốt. Bên cạnh chi phí tìm nguồn cung ứng, bạn phải phỏng vấn và đánh giá các ứng viên tiềm năng về kỹ năng kỹ thuật, đào tạo và thử việc nhân viên mới, đồng thời cung cấp môi trường kỹ thuật số để phát triển và thử nghiệm phần mềm và nhân sự mới.

Sau đó, bạn phải quản lý các nhiệm vụ phát triển code đảm bảo chúng hoạt động hiệu quả. Khi bộ phận phát triển vượt quá năm hoặc sáu kỹ sư, bạn sẽ cần một giám đốc điều hành DevOps giám sát bộ phận đó - nếu các lập trình viên không được quản lý tốt, thời gian cần để gia hạn deadlines có thể tính bằng ngày và tuần trong khi năng suất giảm mạnh.

Bạn không thể chỉ thuê các nhà phát triển và quản lý và mong đợi điều kỳ diệu sẽ xảy ra. Các kỹ sư tạo ra những gì doanh nghiệp yêu cầu họ làm và các phần mềm được phát triển mạnh mẽ và nhanh hơn nhờ sự rõ ràng. Vì vậy, bạn sẽ cần dành thời gian để nắm bắt các cơ hội kinh doanh của mình và cần có khả năng mô tả các tính năng, chức năng và tùy chọn bạn muốn có. Lộ trình phần mềm đó phải được hoàn thành trước khi các kỹ sư của bạn bắt đầu viết code. Nếu không làm tốt và đúng thời hạn, bạn sẽ có những nhân tài đắt giá ăn không nguồi rồi và có khả năng đang tìm kiếm những nơi khác để làm việc.

Cuối cùng, khi bạn phát triển code tùy chỉnh thì bạn cần duy trì nó. Phần mềm có thể bị hỏng mọi lúc và hacker liên tục tìm ra các vectơ tấn công mới. Các nhu cầu mới xuất hiện và người dùng yêu cầu sửa đổi. Ngay cả các ngôn ngữ lập trình cũng có tuổi đời, vì vậy cứ sau 5 đến 10 năm, phần mềm có thể cần phải được viết lại. Các chi phí sẽ liên tục được tăng lên.

Tuy nhiên, mã hóa tùy chỉnh không những là một thách thức mà còn có thể là một yếu tố then chốt và rất đáng để  một số công ty lưu tâm đặc biệt khi đang đổi mới các giải pháp chăm sóc khách hàng của họ.

Corefact (một khách hàng của Mastering Midsized) là một nhà cung cấp dịch vụ tiếp thị trọn gói cho các ngành bất động sản và thế chấp. Vào năm 2005, công ty đã đưa ra một ý tưởng mới rằng, nếu một nhà môi giới có thể gửi một tấm bưu thiếp cho một khách hàng tiềm năng với một URL duy nhất sẽ đưa khách hàng đến một trang web có nhà riêng của họ ở trung tâm. Ý tưởng này ở thời điểm đó được coi là cực kỳ hấp dẫn và có thể thay đổi ngành dịch vụ này. Khách hàng của Corefact - những người môi giới rất hào hứng không chỉ vì bởi sức hấp dẫn tiềm năng đối với khách hàng của họ mà còn bởi sự đa dạng và khối lượng lớn dữ liệu mà loại tương tác này sẽ cung cấp cho họ.

Corefact không thể mua phần mềm để làm điều này vì đây lúc bấy giờ là 1 điều gì đó quá mới mẻ. Người sáng lập và CEO của Corefact - Chris Burnley luôn là một nhà công nghệ. Trước khi làm việc cho Corefact, ông đã thành lập một số công ty hoạt động dựa trên công nghệ kỹ thuật số. Nhờ năng lực công nghệ này, công ty đã tìm ra cách in dữ liệu có thể thay đổi các URL duy nhất trên bưu thiếp và sau đó chuyển chúng đến các máy chủ web sẽ đợi khách hàng tiềm năng hoặc các nhà môi giới nhập URL, sau đó, một trang web mới, duy nhất sẽ là được tạo ngay lập tức. Đến năm 2006, phần mềm được đưa vào hoạt động với một kỹ sư duy nhất.

Ngày nay, nhóm kỹ sư phát triển phần mềm này đã lên tới 10 người có trụ sở chính đặt tại Hoa Kỳ và các chi nhanh khác ở nước ngoài. Họ đã tạo ra code tùy chỉnh không chỉ hướng đến khách hàng mà còn tập hợp hàng nghìn đơn hàng hàng ngày một cách hiệu quả thông qua nhập đơn đặt hàng, đồ họa và các lượt truy cập gián tiếp qua các URL đã miêu tả ở trên đồng thời tự động hóa quy trình hiệu quả của công việc trên các lượt truy cập và thông qua quá trình hoàn thiện đơn hàng. 

Burnley nói: “Khái niệm sơ khai và độc nhất của chúng tôi đưa Corefact lên một chặng đường phát triển nhanh chóng nhưng khả năng đổi mới với công nghệ của bản thân tiếp tục thúc đẩy chúng tôi. Tất nhiên, khoản đầu tư vào các kỹ sư là rất lớn và đang diễn ra nhưng danh sách các cơ hội còn dài”.

Nhưng họ không xây dựng mọi phần mềm mà họ sử dụng. Khi nói đến việc nâng cấp hệ thống ERP của mình, họ đã chọn một sản phẩm tiêu chuẩn của Netsuite - phần mềm mà trong đó họ dùng để kết nối các hệ thống do chính họ tạo ra xử lý đơn hàng. Tương tự, gần đây, họ đã bỏ một CRM tự tạo và thay thế bằng Salesforce để giữ cho nhóm phát triển của họ tập trung vào việc tạo ra phần mềm mà họ không thể mua.

Ba năng lực bạn cần có để tự phát triển code 

Các ví dụ mà đã được thảo luận ở trên yêu cầu số lượng khác nhau của ba năng lực sau tùy thuộc vào mức độ phức tạp của các yêu cầu về code tùy chỉnh của bạn: 

Chuyển đổi nhu cầu kinh doanh thành các dự án phần mềm: Xác định nhu cầu kinh doanh và các giải pháp cho từng nhu cầu - là một quá trình nhất thiết phải lặp đi lặp lại trong đó cần lưu ý những hạn chế của phần mềm hiện có cũng như tài nguyên và dữ liệu sẵn có của bạn. Đây không phải là phát triển phần mềm hay quản lý kinh doanh; đó là một dạng kỹ thuật mà một bên đứng trong công việc kinh doanh và một bên là sự hiểu biết thấu đáo về cách hoạt động của hệ thống phần mềm hiện tại của bạn. 

Năng lực này có thể được nắm giữ bởi một CEO trong một công ty cỡ vừa nhỏ hơn hoặc bởi một nhóm nhỏ khi tổ chức phát triển lên các quy mô lớn hơn. Đầu vào là một vấn đề hoặc cơ hội, những gì xuất hiện ở đầu ra là một chuỗi các bước chi tiết để tạo và duy trì code: xác định chính xác dữ liệu sẽ được sử dụng và logic hoặc quy trình nào nên được sử dụng để tạo ra giải pháp. Nếu không có tất cả các bước này, cố gắng tạo code tùy chỉnh sẽ không có ý nghĩa gì.

Phát triển code: Tùy thuộc vào hoàn cảnh, một doanh nghiệp quy mô vừa có thể có một lập trình viên hoặc một bộ phận kỹ thuật đầy đủ. Ví dụ, tại công ty trước đây của Robert Sher, Giám đốc Mastering Midsized có Dave - một nhân viên kho hàng trẻ tuổi, người từng thích viết code theo sở thích và giờ đang làm việc cho các dự án mã hóa nhỏ. Doanh nghiệp với mục tiêu có những cơ hội lớn hơn thì việc phát triển code cần phát triển thành một loạt các nhóm kỹ sư với các kỹ năng khác nhau và tập trung làm việc trong một bộ phận DevOps hoàn chỉnh do một phó chủ tịch hoặc giám đốc công nghệ dẫn đầu. 

Điều hành phần mềm: Điều hành việc quản lý các ứng dụng tùy chỉnh là rất tốn kém - bạn cần duy trì tình trạng của các code tùy chỉnh và đảm bảo các quy trình, con người và công cụ của bạn được cập nhật thường xuyên. Các yếu tố của quy trình điều hành này bao gồm hỗ trợ người dùng / bàn trợ giúp, đào tạo, quản lý rủi ro bảo mật, sửa lỗi, tùy chỉnh bổ sung liên tục, thuộc tính hiệu suất và thời gian hoạt động. v.v.

Tận dụng phần mềm cây nhà lá vườn để mang lại sự đổi mới cho thị trường của bạn hoặc để tạo ra các hoạt động hiệu quả hơn có thể là động lực tăng trưởng mạnh mẽ. Nhưng quyết định mua phần mềm bên ngoài hay tự xây dựng nó là một quyết định quan trọng. Nếu không thể mua phần mềm bạn cần thì việc xây dựng phần mềm đó có thể có ý nghĩa. Nhưng không thể phủ nhận rằng đó là một con đường khó khăn và chỉ xứng đáng nếu lợi ích mà nó mang lại lớn. Trước khi xây dựng, hãy đảm bảo rằng bạn hiểu các chi phí thực tế để thành công về lâu dài và chỉ bắt tay vào những nỗ lực viết code mà bạn chắc chắn rằng doanh nghiệp của mình có khả năng thực hiện.

Anh Đức