500ae - Cần là có anh em
500ae Corp

Cách Grab xây dựng sản phẩm chất lượng

Tại Grab, chúng tôi liên tục thử nghiệm để cải thiện trải nghiệm người dùng của ứng dụng. Nhưng chạy nhiều thử nghiệm có thể lộn xộn, phức tạp và tốn kém. Đây là lý do tại sao chúng tôi tạo Nền tảng thử nghiệm Grab (ExP), cho phép chúng tôi chạy thử nghiệm được kiểm soát để thử nghiệm một tính năng mới trước khi chúng tôi triển khai. Mục tiêu của ExP là đảm bảo rằng các tính năng mới được triển khai mà không có bất kỳ trục trặc nào và mối quan hệ nhân quả được phân tích chính xác.

cổng thông tin
Cổng thông tin nền tảng thử nghiệm

Tại sao chúng tôi xây dựng ExP
Trong những ngày đầu tại Grab, các thí nghiệm được thực hiện trên quy mô nhỏ. Số liệu do người dùng xác định, sau đó tính toán và hiển thị các chỉ số đó cho một tập hợp thử nghiệm nhỏ.

Quá trình này khá đau đớn. Khi người quản lý sản phẩm muốn chạy thử nghiệm, họ sẽ thiết lập cuộc họp với các nhà phân tích sản phẩm, nhà khoa học dữ liệu và kỹ sư. Các thử nghiệm được thiết kế, các đường ống ghi nhật ký tùy chỉnh được xây dựng và các dịch vụ đã được sửa đổi để hỗ trợ cho mỗi thử nghiệm mới. Đó là một quá trình tốn kém và tốn thời gian.

Để khắc phục những thách thức này, chúng tôi muốn xây dựng một nền tảng với các mục tiêu sau đây:

Tạo nền tảng thống nhất ngăn nhiều thử nghiệm đồng thời can thiệp vào nhau và cho phép các kỹ sư và nhà khoa học dữ liệu làm việc trên cùng một bộ công cụ.
Cho phép thử nghiệm đơn giản, nhanh chóng và hiệu quả về chi phí.
Tự động lựa chọn các đại diện để thực hiện thử nghiệm A / A.
Hỗ trợ phân tích năng lượng để thực hiện các kiểm tra ý nghĩa thích hợp.
Bật đường dẫn dữ liệu hoàn toàn tự động nơi dữ liệu thử nghiệm được truyền trực tiếp trong thời gian thực, sau đó được gắn thẻ và lưu trữ trong S3.
Tạo một nền tảng để cắm các mô-đun phân tích tùy chỉnh.
Tạo trình kích hoạt / cảnh báo sự kiện về các chỉ số kinh doanh quan trọng để xác định các tác động bất lợi của thay đổi.
Thiết kế giao diện người dùng trực tuyến tập trung để tạo và quản lý thử nghiệm. (Chúng tôi không ngừng cải thiện điều này. Tầm nhìn dài hạn là cho phép bất kỳ ai trong tổ chức tạo và chạy thử nghiệm.)
Kể từ khi triển khai ExP, chúng tôi đã thấy số lượng thử nghiệm tăng từ một số ít lên khoảng 25 lần chạy đồng thời. Ấn tượng hơn, số lượng số liệu được tính mỗi ngày đã tăng lên theo cấp số nhân với khoảng 2.500 số liệu riêng biệt và khoảng 50.000 kết hợp thử nghiệm / số liệu riêng biệt.

Ở quy mô này, chúng tôi đã gặp phải một số vấn đề. Đây là cách tiếp cận kiến ​​trúc mà chúng tôi đã sử dụng để giải quyết chúng:

Ngăn chặn hiệu ứng mạng
Chúng tôi có một số loại người dùng: đối tác lái xe, hành khách và người bán. Không giống như hầu hết các nền tảng thử nghiệm đối phó với một khách truy cập web, người dùng của chúng tôi tương tác với nhau, điều này đôi khi dẫn đến hiệu ứng mạng. Ví dụ: một thử nghiệm về quảng cáo có thể dẫn đến sự gia tăng nhu cầu liên quan đến nguồn cung.

Chiến lược phân công điều trị và điều trị
Các đội khác nhau tại Grab có các yêu cầu khác nhau và cách thử nghiệm. Một số thí nghiệm thẩm mỹ đơn giản có thể được đơn giản ngẫu nhiên bởi một ID người dùng, trong khi các thí nghiệm thuật toán có thể sử dụng các chiến lược cắt thời gian với sự giảm thiểu thiên vị. Vì vậy, chúng tôi xây dựng nhiều chiến lược khác nhau cho các trường hợp sử dụng khác nhau làm cho tất cả các thử nghiệm đều ngẫu nhiên và xác định cùng một lúc.

biến-phân-strat

Ngăn chặn can thiệp thử nghiệm
Chúng tôi cũng cố gắng can thiệp vào sự can thiệp giữa các thử nghiệm bằng cách cung cấp cơ chế tương tự với Miền và Lớp của Google, được kết hợp với hệ thống chuyên gia để xác thực thiết kế thử nghiệm. Chúng tôi đã giới thiệu phân đoạn địa lý-thời gian cho các thử nghiệm đồng thời với xác thực nâng cao và đề xuất cho người dùng về cách thiết lập thử nghiệm.

cảnh báo thử nghiệm

Các thành phần của ExP
ExP của Grab cho phép người dùng nội bộ (kỹ sư, người quản lý sản phẩm, nhà phân tích và những người khác) chuyển đổi các tính năng khác nhau, điều chỉnh ngưỡng và thay đổi cấu hình động mà không cần khởi động lại. Để đạt được điều này, chúng tôi đã giới thiệu một vài khái niệm nền tảng trong giao diện người dùng và SDK của chúng tôi.

Biến và số liệu
Các thành phần cơ bản của mỗi nền tảng thử nghiệm là các biến và số liệu.

Một biến là một cái gì đó chúng ta có thể thay đổi (ví dụ như cho phép phương thức thanh toán khác nhau cho người dùng hoặc thành phố cụ thể).
Chỉ số là thứ chúng tôi muốn cải thiện và tiếp tục quan sát (ví dụ tỷ lệ hủy hoặc doanh thu).
Giới thiệu
Trước tiên, chúng tôi triển khai tính năng cho một phần nhỏ người dùng, sau đó chúng tôi dần chuyển sang các nhóm lớn hơn cho đến khi chúng tôi tiếp cận tất cả người dùng mục tiêu.

Mục tiêu của giới thiệu tính năng là giúp triển khai tính năng ổn định và đáng tin cậy nhất có thể bằng cách kiểm soát hiển thị của người dùng ở giai đoạn đầu và theo dõi tác động của đối tượng trên các chỉ số kinh doanh chính.

Các nhóm
Nền tảng của chúng tôi cho phép người dùng nội bộ xác định các nhóm tùy chỉnh (còn được gọi là phân đoạn). Nhóm là một tập hợp các số nhận dạng như ID hành khách, địa lý, thành phố và các số khác. Chúng tôi sử dụng điều này để nhóm một cách hợp lý một tập hợp những thứ mà chúng tôi có thể tiến hành triển khai và thử nghiệm.

Thử nghiệm
Chúng tôi đã chính thức hóa một “định nghĩa thử nghiệm”, về cơ bản là một cấu hình thời gian (với thời gian bắt đầu và kết thúc) có thể được phân chia giữa điều khiển và (các) điều trị cho một hoặc nhiều biến. Cấu hình này được lưu trữ dưới dạng tài liệu JSON và chứa toàn bộ thiết lập thử nghiệm.

Điều quan trọng là làm nổi bật rằng việc có một định nghĩa thử nghiệm chính thức thực sự mang lại nhiều lợi ích cho bảng:

Máy có thể hiểu nó. Nó cũng có thể tự động và thực thi tự động các thí nghiệm, ngay cả trong các hệ thống phân tán.
Giao tiếp giữa các đội được đơn giản hóa, với các tài liệu chính thức để đảm bảo mọi người ở trên cùng một trang.
Thiết kế thử nghiệm có cấu trúc
Với định nghĩa thử nghiệm được chính thức hóa, chúng tôi sau đó cung cấp SDK Android, iOS và Golang, tiêu thụ các định nghĩa thử nghiệm và áp dụng thử nghiệm.

cấu trúc-điểm kinh nghiệm

Định nghĩa thử nghiệm cho phép SDK của chúng tôi áp dụng các thử nghiệm một cách thông minh mà không thực sự thực hiện bất kỳ cuộc gọi mạng tốn kém nào. Thử nghiệm được phân phối tới SDK thông qua nền tảng quản lý cấu hình của chúng tôi, hỗ trợ cấu hình lại động.

SDK của chúng tôi triển khai nhiều thuật toán khác nhau cho phép các nhà thiết kế thử nghiệm thiết lập thử nghiệm và xác định chiến lược gán (thuật toán), xác định giá trị sẽ được trả về cho biến và người dùng cụ thể.

Nhìn chung, chúng tôi hỗ trợ hai chiến lược chính và thường được sử dụng:

Lấy mẫu ngẫu nhiên với xác suất thống nhất hoặc trọng số. Điều này rất hữu ích khi chúng ta muốn lấy mẫu ngẫu nhiên giữa điều khiển và (các) điều trị (ví dụ: nếu chúng ta muốn 50 phần trăm hành khách có được một giá trị và một nửa còn lại để có được một giá trị khác cho biến đã cho).
Thí nghiệm thái lát thời gian trong đó kiểm soát và điều trị được chia theo thời gian (ví dụ 10 phút để kiểm soát, sau đó 10 phút điều trị).
Thử nghiệm mẫu
Kể từ khi ra mắt, ExP và khung giới thiệu theo giai đoạn của nó đã chứng tỏ không thể thiếu đối với nhiều triển khai tính năng tại Grab.

Lấy GrabChat làm ví dụ. Hủy đặt phòng là vấn đề chính và nhóm tin rằng với các biện pháp can thiệp thích hợp tại chỗ, một số lần hủy có thể được ngăn chặn.

Một trong những ý tưởng chúng tôi có là sử dụng GrabChat để thiết lập một cuộc trò chuyện giữa các trình điều khiển và hành khách bằng cách gửi tin nhắn tự động. Việc thêm liên lạc của con người này vào dịch vụ giảm thời gian chờ đợi được nhận thức, và giúp hành khách và đối tác lái xe trở nên kiên nhẫn hơn và chấp nhận những nguyên nhân không thể tránh khỏi của sự chậm trễ.

Khi chúng tôi triển khai tính năng mới này trong một khu vực cụ thể, chúng tôi nhận thấy việc hủy bỏ các lần hủy. Để xác thực điều này, chúng tôi đã tiến hành một loạt các thử nghiệm lặp lại bằng cách sử dụng ExP. Sau đó, chúng tôi đã thực hiện triển khai theo giai đoạn chức năng này cho những người dùng khác nhau ở các quốc gia khác nhau trên khắp Đông Nam Á.

***

Xây dựng nền tảng thử nghiệm của riêng chúng tôi không dễ dàng, nhưng nó đã giúp thúc đẩy một nền văn hóa thử nghiệm trong tổ chức của chúng tôi. Nó đã cho phép các nhà khoa học và nhóm sản phẩm dữ liệu phân tích chất lượng của các tính năng mới và thực hiện lặp lại thường xuyên hơn.

Nhìn về phía trước, có nhiều thứ chúng ta có thể làm để phát triển ExP. Chúng tôi đang xem xét xây dựng trang tổng quan và kênh thời gian thực và tự động với chức năng lát cắt và xúc xắc. Chúng tôi cũng muốn tăng thêm năng lực thử nghiệm trong khi vẫn đảm bảo tính hợp lệ của các thí nghiệm của chúng tôi.

Cuối cùng, để tiếp tục cải thiện, chúng ta phải tiếp tục thử nghiệm.

Site Footer