Nhiều doanh nghiệp rơi vào tình trạng có một ứng dụng mà không ai thực sự chăm lo. Nhà phát triển hoặc agency ban đầu đã rời đi, các bản phát hành đã ngừng, kho ứng dụng đang cảnh báo về SDK lỗi thời, và không ai tự tin khi thay đổi mã nguồn. Phản xạ thường là hoặc tiếp tục vá víu, hoặc làm lại từ đầu. Không lựa chọn nào nên được quyết định theo cảm tính. Hướng dẫn cứu hộ ứng dụng này giải thích cách đánh giá một ứng dụng bị bỏ dở và lựa chọn giữa tái cấu trúc những gì đang có và xây dựng lại, dựa trên bằng chứng thay vì sự bực bội.
Đây là gì
Việc cứu hộ ứng dụng bắt đầu bằng việc hiểu rõ bạn thực sự đang có gì. Điều đó có nghĩa là khôi phục quyền truy cập vào mã nguồn, cấu hình build, khóa ký (signing key), tài khoản lưu trữ, trang ứng dụng trên kho ứng dụng và các dịch vụ bên thứ ba; sau đó rà soát cấu trúc mã nguồn, các phụ thuộc, mức độ bao phủ kiểm thử và các lỗi đã biết; rồi kiểm tra xem ứng dụng còn build và chạy được trên các phiên bản hệ điều hành hiện tại hay không. Tái cấu trúc nghĩa là cải thiện codebase hiện có ngay tại chỗ: cập nhật các phụ thuộc, sửa lỗi, cấu trúc lại các khu vực có vấn đề và bổ sung kiểm thử, trong khi vẫn giữ cho ứng dụng hoạt động. Xây dựng lại nghĩa là viết một codebase mới, thường tái sử dụng thiết kế, dữ liệu và dịch vụ backend khi có thể, và chuyển người dùng sang đó. Tái cấu trúc bảo toàn khoản đầu tư trước đây và tránh một khoảng thời gian dài không có bản phát hành. Xây dựng lại có thể là lựa chọn tốt hơn khi codebase không thể bảo trì, được xây dựng trên một framework đã lỗi thời, hoặc về cơ bản không còn phù hợp với những gì sản phẩm hiện cần. Thường thì câu trả lời là sự kết hợp: ổn định ngay bây giờ, sau đó thay thế từng phần dần dần.
Dành cho ai
Hướng dẫn này hữu ích cho:
- Doanh nghiệp có nhà phát triển hoặc agency ứng dụng không còn sẵn sàng hỗ trợ
- Chủ sở hữu sản phẩm có ứng dụng không build được, bị treo trên thiết bị mới hoặc bị kho ứng dụng từ chối
- Nhà sáng lập tiếp nhận một ứng dụng làm dở dang từ đội ngũ trước
- Đội ngũ đang quyết định có nên tiếp tục đầu tư vào một codebase hiện có hay không
Giúp làm rõ điều gì
Một đánh giá có cấu trúc giúp làm rõ:
- Bạn có toàn quyền sở hữu và truy cập vào mã nguồn, khóa, tài khoản và dữ liệu hay không
- Bao nhiêu phần mã nguồn hiện có là ổn, bao nhiêu phần có rủi ro và bao nhiêu phần còn thiếu
- Framework và các phụ thuộc có còn được hỗ trợ hay không
- Con đường nào, tái cấu trúc, xây dựng lại hay thay thế theo giai đoạn, phù hợp với tiến độ và mức chấp nhận rủi ro của bạn
Những gì được bao gồm
- Khôi phục quyền truy cập: kho mã nguồn, tệp build, chứng chỉ ký và keystore, tài khoản đám mây và lưu trữ, tài khoản kho ứng dụng và khóa API của bên thứ ba
- Xác nhận quyền sở hữu hợp pháp đối với mã nguồn và mọi giấy phép, cùng với cố vấn của riêng bạn nếu cần
- Kiểm tra xem ứng dụng có build được từ mã nguồn và chạy được trên các phiên bản hệ điều hành hiện tại hay không
- Rà soát các phụ thuộc để tìm thư viện lỗi thời, không còn được hỗ trợ hoặc có lỗ hổng
- Đánh giá cấu trúc mã nguồn, mức độ bao phủ kiểm thử và tài liệu
- Liệt kê các lỗi đã biết, báo cáo sự cố treo ứng dụng, phàn nàn của người dùng và cảnh báo từ kho ứng dụng
- Lập bản đồ backend, API và dữ liệu mà ứng dụng phụ thuộc vào
- Chấm điểm các phương án: tái cấu trúc, xây dựng lại hoặc thay thế theo giai đoạn, dựa trên công sức, rủi ro và thời gian không có bản phát hành
- Thống nhất kế hoạch ổn định cho các vấn đề cấp bách trước khi bắt đầu công việc lớn hơn
Những gì không được bao gồm
- Khẳng định rằng mọi vấn đề tồn đọng sẽ được phát hiện hoặc giải quyết
- Phát triển tính năng mới ngoài phạm vi khôi phục đã xác nhận
- Đánh giá bảo mật chính thức hoặc kiểm thử xâm nhập (penetration test), trừ khi được xác định phạm vi riêng
- Tư vấn pháp lý về quyền sở hữu mã nguồn hoặc tranh chấp với nhà cung cấp cũ
Khi nào nên chọn
Hãy hành động khi ứng dụng không còn có thể phát hành một cách an toàn, khi các yêu cầu của nền tảng sắp khiến ứng dụng không tuân thủ quy định của kho ứng dụng, hoặc khi mỗi thay đổi nhỏ đều phát sinh vấn đề mới. Đừng chờ đến khi ứng dụng bị gỡ khỏi kho hoặc một dịch vụ quan trọng ngừng hoạt động. Nếu bạn không thể truy cập mã nguồn hoặc khóa ký, hãy giải quyết điều đó trước; thiếu chúng, xây dựng lại có thể là lựa chọn duy nhất bất kể chất lượng mã nguồn ra sao.
Phương pháp của chúng tôi
Hãy bắt đầu từ quyền truy cập và bằng chứng, không phải ý kiến. Nhiều ứng dụng bị bỏ dở tốt hơn vẻ bề ngoài khi chúng build lại được; số khác trông có vẻ ổn nhưng lại dựa trên các framework không còn khả thi. Hãy đưa ra quyết định dựa trên một bản đánh giá bằng văn bản bao quát mã nguồn, các phụ thuộc, hạ tầng và nhu cầu sản phẩm. Dịch vụ App Rescue & Rebuild của chúng tôi bao gồm đánh giá và khôi phục: lấy lại bản build hoạt động được, ổn định các vấn đề nghiêm trọng, đề xuất và thực hiện lộ trình khôi phục đã xác nhận, kèm hồ sơ khôi phục có phạm vi xác định và tài liệu bàn giao. Khi vấn đề mở rộng sang một nền tảng, backend hoặc hệ thống kế thừa rộng hơn, dịch vụ Platform Rescue & Modernisation cung cấp bản đồ hiện trạng, kế hoạch ổn định và lộ trình hiện đại hóa. Sau khi khôi phục, hãy lên kế hoạch chăm sóc liên tục để ứng dụng không trôi trở lại tình trạng cũ: cập nhật phụ thuộc theo lịch, quy trình phát hành định kỳ và quyền sở hữu rõ ràng đối với tài khoản và khóa.
Câu hỏi thường gặp
Bài viết liên quan
Bắt đầu
Quý doanh nghiệp đang mắc kẹt với một ứng dụng không ai có thể bảo trì?
Hãy cho chúng tôi biết doanh nghiệp của bạn đang có quyền truy cập vào những gì, điều gì đang hỏng và ứng dụng cần làm gì tiếp theo. Chúng tôi sẽ đề xuất phạm vi đánh giá và khôi phục bằng văn bản.
Yêu cầu phạm vi bằng văn bản