Điều gì sẽ xảy ra khi cập nhật phần mềm mỗi ngày

Tại Holistics, team kỹ thuật của chúng tôi cập nhật sản phẩm hằng ngày, cả những thay đổi trên sản phẩm chính hay sửa các lỗi nhỏ đều được sắp xếp theo lịch trình cập nhật hằng ngày. Khi tôi nghe lần đầu tiên về cách làm việc này, tôi vô cùng ngạc nhiên. Tôi không chỉ là một lập trình viên chuyên nghiệp mà còn thường xuyên làm việc theo phương pháp Agile.

Phát triển phần mềm đã có những bước phát triển đáng kể trong vài năm qua. Tôi sẽ phân tích các lợi thế và hạn chế của việc cập nhật thường xuyên.

Cách triển khai phần mềm trong quá khứ

Có những rủi ro đi cùng với sự thay đổi trong phần mềm và quá trình triển khai. Chúng bao gồm những tình huống không mong đợi trong phần mềm ảnh hưởng đến trải nghiệm của người dùng, làm mất uy tín và có thể khiến mọi người tránh xa sản phẩm đó. Các doanh nghiệp lớn, đặc biệt là các doanh nghiệp trong các ngành nhạy cảm như bảo hiểm và dịch vụ tài chính, có hẳn riêng các team quản lý việc phát hành để có những đánh giá kỹ lưỡng. Họ thường xuyên kiểm tra quá trình phát triển phần mềm để hạn chế rủi ro đến mức tối thiểu.

Để quản lý những rủi ro này, ngoài việc cần một đội ngũ các chuyên gia, tester và các chuyên viên quản lý sản phẩm.

Sau đó đến Agile

Phương pháp Agile và Lean ngày càng được áp dụng bởi các công ty có quy mô khác nhau vì nó cắt giảm vòng đời phát triển phần mềm xuống còn 2-3 tuần. Hiêu quả của Agile vượt xa như gì mong đợi: team kỹ thuật bây giờ có thể xây dựng sản phẩm của họ dần dần dựa trên phản hồi của khách hàng thực tế và dữ liệu sử dụng, làm cho sản phẩm ngày càng thân thiện hơn.

Agile, Lean và Scrum ngày càng trở thành lối sống cho các nhà phát triển phần mềm, đặc biệt là những startup và doanh nghiệp nhỏ.

Thời kỳ của CICD

Hiện nay, các công ty đang ngày càng áp dụng mô hình tích hợp liên tục (CI), mô hình liên tục chuyển tiếp (CD), một lựa chọn có thể thay đổi. CICD cho phép nhiều lập trình viên trong một nhóm có thể thay đổi các khía cạnh khác nhau của sản phẩm cùng một lúc. Khi được thực hiện tốt, điều này cho phép các đội triển khai phần mềm trên cơ sở thường xuyên hơn, đôi khi nhiều lần trong ngày.

Đương nhiên, để có thể sử dụng tốt CICD, các công ty cần phải có một mức độ kỷ luật nhất định và các quy trình chính xác, hai điều này nói sẽ dễ hơn làm. Trong khi điều này rất hiệu quả, nó cho phép bạn vận hành sản phẩm nhanh hơn và cho phép các lập trình viên triển khai các bản sửa lỗi nhanh hơn. Nói tóm lại, mô hình này làm tăng khả năng đối phó với rủi ro và những sai lầm không mong đợi vì các bản sửa lỗi có thể được thực hiện trong cùng một ngày.

Tại sao điều này lại quan trọng?

Sự lựa chọn của đội ngũ kỹ sư có thể ảnh hưởng đến team của bạn một cách tích cực và thậm chí có thể trở thành thứ giúp sản phẩm tăng trưởng. Lợi ích của việc có một chu kỳ triển khai phần mềm thường xuyên là:

Fix bug

Các sản phẩm của SaaS thường được các công ty tận dụng theo cách mà người quản lý sản phẩm có thể không lường trước được. Do đó, có rất nhiều yêu cầu chức năng để các nhóm thử nghiệm xác nhận, vì mỗi khách hàng mới có khả năng mang đến một trường hợp thử nghiệm mới cho nhóm của bạn.

Do đó, khi khách hàng báo cáo vấn đề về phần mềm, nhóm kỹ thuật có thể sẽ ưu tiên, sửa chữa, thử nghiệm và triển khai trong cùng một ngày để trải nghiệm người dùng tiếp tục được cải thiện. Nhu cầu ứng dụng vận hành tốt hơn cho khách hằng ngày càng rõ nét hơn và việc khắc phục các vấn đề được phản hồi nhanh chóng là điều cần thiết.

Quản lý yêu cầu của khách hàng

Ngay cả khi phần mềm hoạt động tốt, khách hàng vẫn thường xuyên yêu cầu sửa đổi nhỏ và thay đổi các khía cạnh khác nhau của sản phẩm. Nếu yêu cầu được thực hiện và kiểm tra dễ dàng, cập nhật hằng ngày cho phép các kỹ sư giúp khách hàng hạnh phúc bằng cách cải thiện trải nghiệm người dùng của họ một cách nhanh chóng. Khả năng đáp ứng các yêu cầu của khách hàng sẽ mang đến nhiều phản hồi hơn, vì người dùng tin rằng công ty đã lắng nghe, học hỏi và thực hiện một cách hiệu quả.

Học tập

Cập nhật hằng ngày làm tăng cường độ các nhóm tìm hiểu về nhu cầu của khách hàng, cùng các giải pháp ngoài hệ thống sẵn có trên thị trường và các công nghệ mới. Hơn nữa, chu kỳ thử nghiệm Try-Test-Outcome (Pass / Fail) đã được rút ngắn, cho phép các nhà quản lý sản phẩm nhận được phản hồi, từ khách hàng cũng như các chuyên gia nghiên cứu sản phẩm trong nội bộ, nhanh hơn nhiều.

OK, vậy nhược điểm là gì?

Ngoài năm điểm mạnh kỹ thuật được nêu ở trên, có hai vấn đề mà chúng ta phải đối mặt. Thứ nhất, các lập trình viên đã tạo ra những cải tiến và tính năng nhanh hơn khiến đội sale khó có thể theo kịp.

Trong hầu hết các công ty startup, phát hành phần mềm và cập nhật sản phẩm thường đi kèm với những hoạt động marketing, chẳng hạn như các chiến dịch hoặc quảng cáo đa phương tiện. Lịch trình của Agile giúp cho các nhóm marketing, bán hàng và quảng cáo dễ dàng hơn trên cùng một trang và thực hiện một kế hoạch dựa trên thời gian. Với những cập nhật thường xuyên hơn, chúng tôi đã học được rằng đội marketing và các nhóm kỹ thuật sản phẩm rất quan trọng cần tương tác thường xuyên có những hoạt động thích hợp.

Thứ hai, việc thay đổi có thể gây ảnh hưởng đến đội ngũ bán hàng bằng việc tác động đến một hoặc nhiều khía cạnh của quy trình bán hàng. Chẳng hạn, một thay đổi đã làm cho trang web tăng gấp đôi số lượng người dùng đăng ký dùng thử, do đó đặt ra nguy cơ số lượng khách hàng tiềm năng mới vượt quá mức kiểm soát.

Tuy nhiên, những tác động này rất ít và thường có những nhóm khác trong công ty giám sát chúng. Tuy nhiên, điều quan trọng là tất cả các đội phải hiểu được triết lý và lợi ích đằng sau sự lựa chọn của team kỹ thuật, do đó việc bán hàng, marketing cùng các phòng ban khác cần làm việc với các lập trình viên và chấm dứt việc đổ lỗi.

Một nguồn tăng trưởng

Một trong những quyết định giúp mọi thứ tăng trưởng mạnh mẽ là việc cập nhật hằng ngày này. Trong phân tích số liệu và thông tin kinh doanh, khách hàng thường yêu cầu hỗ trợ kỹ thuật và tuỳ chỉnh mà đó là những điều không bao gồm trong gói dich vụ. Việc có bản phát hành hằng ngày có thể giúp bạn phản ứng nhanh trong việc đáp ứng nhu cầu của khách hàng. Lợi thế cạnh tranh có thể xuất hiện từ các quyết định hoặc hành động có thể không nhìn thấy được đối với các team marketing hoặc bán hàng của công ty bạn.

Sự cải thiện từng chút một mỗi ngày vượt trội hơn một sự cải thiện lớn mỗi tháng. Cuối cùng, phát triển một mô hình phát hành phần mềm nhanh, và chính xác là điều khó khăn, nhưng điều đó tác động đến toàn bộ công ty theo nhiều cách tích cực.

Theo Techtalk

Khối Giáo dục FPT – fpt.edu.vn

Học Viện Mạng và Phần Cứng – jetking.fpt.edu.vn