Thu hẹp khoảng cách giữa nghiên cứu và phát triển

Câu chuyện về đội sinh trắc học Onfido

Các công ty khởi nghiệp Machine Learning thường phải chịu một khoảng cách giữa kỹ thuật và nghiên cứu. Onfido cũng không ngoại lệ. Trong câu chuyện này, tôi sẽ đưa bạn qua hành trình của nhóm Sinh trắc học để trở nên thực sự đa chức năng.

Triệu chứng của các đội không tích hợp

Khi tôi mới bắt đầu tại Onfido, gần hai năm trước, chức năng nghiên cứu hoàn toàn tách biệt với chức năng kỹ thuật. Nó ngồi bên ngoài các nhóm chức năng chéo, có sự lãnh đạo và mục tiêu riêng của nó.

Điều này dẫn đến các điểm đau khác nhau được cảm nhận trên toàn doanh nghiệp:

  • Các nhà nghiên cứu về máy học cảm thấy như họ đã dành rất nhiều thời gian để sản xuất mã của họ, điều mà họ không phải là chuyên gia, hay thậm chí rất thích. Họ có nhiều sự phụ thuộc với DevOps và các kỹ sư khác ngoài chức năng của họ, điều này làm chậm tiến độ của họ.
  • Nhóm kỹ sư phàn nàn về sự sẵn sàng sản xuất của các thuật toán được tạo ra thường không có kiểm tra và không thể mở rộng quy mô. Nó không giúp ích gì cho các kỹ sư phụ trợ đã thực sự làm Python.
  • Doanh nghiệp không có tầm nhìn về những gì đang đi xuống, không hiểu dự án sẽ mất bao lâu và thường thất vọng với sự thiếu tiến bộ rõ rệt.

Đây là những chủ đề mà tôi đã thấy trong các công ty sản phẩm dựa trên máy học giai đoạn đầu khác, những người hoạt động mà không có các nhóm tích hợp. Những căng thẳng này có thể thúc đẩy và làm giảm niềm tin giữa các chức năng, làm xói mòn bất kỳ loại đồng cảm nào còn lại và phá hủy danh tiếng của toàn bộ các chức năng trong doanh nghiệp.

Cách chúng tôi hợp nhất các đội

Tham gia với tư cách là người quản lý sản phẩm, tôi được giao nhiệm vụ giám sát một ngành kinh doanh sinh trắc học hoàn toàn mới. Tôi đã triển khai các quy trình mà trước đó tôi đã sử dụng để phá vỡ các rào cản về giao tiếp và xây dựng sự đồng cảm: các nhóm chức năng chéo và các mục tiêu chung.

Nhóm bắt đầu với tư cách là một người quản lý sản phẩm, một trưởng nhóm, ba nhà phát triển Ruby / Elixir và một nhà nghiên cứu về máy học. Trong khi Sản phẩm và Nghiên cứu ở London, các kỹ sư đã ở Lisbon.

Sự phát triển của đội. Khuôn mặt biến mất = thăng chức, chuyển sang các đội khác và kết thúc thực tập. May mắn là chưa có ai bỏ cuộc

Xây dựng mối quan hệ qua các chức năng

Bước đầu tiên là xây dựng mối quan hệ với nhà nghiên cứu máy học, người vào thời điểm này vẫn coi mình là một phần của nhóm nghiên cứu và tình cờ làm việc trên các thuật toán sinh trắc học.

Tôi đã làm việc với anh ấy để hiểu tầm nhìn của anh ấy, không gian vấn đề và điều gì làm anh ấy phấn khích. Anh ấy giúp tôi hiểu những gì có thể bây giờ, so với những gì sẽ mất nhiều thời gian để thử nghiệm. Chúng tôi đã đánh giá thị trường cho các dịch vụ tương tự và các nhà cung cấp tiềm năng, và cân nhắc xây dựng so với các quyết định mua.

Chúng tôi đã soạn ra một danh sách các thuật toán để khám phá và ưu tiên chúng cùng nhau, có ý thức đa dạng hóa danh mục đặt cược của chúng tôi, để có một số lượng lớn các thuật toán ngắn hạn nhất định, cân bằng với các sáng kiến ​​lớn hơn, rủi ro hơn.

Chúng tôi đã thiết lập một quan hệ đối tác, giống như một Thủ tướng với sự lãnh đạo kỹ thuật của họ. Nó đã giúp nhà nghiên cứu máy học này khá có đầu óc thương mại và lấy khách hàng làm trung tâm, nhưng đây là những đặc điểm có thể được dạy. Điều quan trọng là xây dựng quan hệ đối tác.

Sắp xếp các mục tiêu của chúng tôi

Toàn bộ nhóm đã viết các Mục tiêu và Kết quả chính hàng quý (OKRs) cùng nhau, trong đó càng nhiều càng tốt là kết quả tập trung thay vì tập trung vào đầu ra. Điều đó có nghĩa là: di chuyển số liệu x%, chứ không phải là tàu vận chuyển tính năng này.

Các kết quả OKR tập trung cho phép các nhà nghiên cứu kỹ thuật và máy học làm việc cùng nhau để đạt được mục tiêu, có tác động kinh doanh có thể đo lường được, mà không cần quy định về cách đạt được nó. Điều này cho phép các nhà nghiên cứu thử nghiệm các thuật toán khác nhau trong quý và ngay cả khi một người không làm việc, họ vẫn có thể từ bỏ thuật toán đó và thử nghiệm một cách khác để giải quyết nó.

Mỗi quý, mục tiêu của tôi là xoay quanh việc khám phá nhu cầu của một thị trường cụ thể và xác định liệu có bất kỳ vấn đề có giá trị nào cần giải quyết trong không gian đó hay không. Chia sẻ trực tiếp những bài học này với các nhà nghiên cứu về máy học đã giúp tôi khám phá ra điều gì là khả thi và nơi chúng ta có thể đạt được những bước đột phá và đổi mới trước thị trường.

Giải quyết căng thẳng

Trong khi viết OKRs cùng nhau liên kết các mục tiêu của chúng tôi trong quý, nó đã không giải quyết hoàn toàn căng thẳng giữa kỹ thuật và nghiên cứu. Đến thời điểm này, nhà nghiên cứu máy học duy nhất về sinh trắc học đã thuê nhiều người báo cáo về anh ta và muốn tạo ra một danh tính là nhóm Nghiên cứu Sinh trắc học, tách ra khỏi nhóm Sinh trắc học (Kỹ thuật).

Một vài điều đã giúp đưa các nhóm lại gần nhau hơn và cuối cùng dẫn đến việc tạo ra một nhóm đầy đủ chức năng:

  • Đổi tên đội trưởng của chúng tôi, đội trưởng của chúng tôi thành đội trưởng của đội kỹ thuật của chúng tôi Các vai trò chính biểu thị trách nhiệm quản lý dòng cũng như quyền quyết định chiến lược và kiến ​​trúc trong các chức năng của họ.
  • Xã hội hóa cùng nhau: Hai chức năng của kỹ thuật và nghiên cứu ở hai quốc gia khác nhau, do đó, việc các nhà nghiên cứu bay tới Lisbon trong cả tuần thực sự giúp phá vỡ các rào cản trong giao tiếp và xây dựng tình bạn và sự đồng cảm giữa hai chức năng. Nó mang chúng tôi lại với nhau và mọi người bắt đầu cảm thấy là một phần của một đội duy nhất. Nó cũng mang lại cho chúng tôi nhiều Pasteis de Nata (bánh sữa trứng Bồ Đào Nha) và Bồ Đào Nha Cozido ngon.
  • Điều chỉnh các nghi thức Scrum và lặp lại theo quy trình: Tính chất công việc của các kỹ sư và nhà nghiên cứu rất khác nhau, và Scrum chỉ đơn giản là không cắt nó.
Đội ăn trưa tại Gunpowder, London.

Các nghi thức Scrum thích nghi cho các nhóm với các nhà nghiên cứu máy học

Công việc kỹ thuật thường được xác định rõ và nhất định. Nhiều đến mức toàn bộ phương pháp đã được xây dựng để giúp đo lường và dự đoán đầu ra hoặc vận tốc của các nhóm phần mềm. Phổ biến nhất trong thế giới khởi nghiệp là nhanh nhẹn và các hương vị khác nhau của nó như scrum và kanban. Trong khi chúng tôi bắt đầu thực hiện chế độ ăn kiêng nghiêm ngặt, chúng tôi nhanh chóng gặp vấn đề.

Ngược lại, công việc nghiên cứu đề cập đến nhiều ẩn số. Nó thường bắt đầu với một nghiên cứu khả thi để tìm ra nếu một cái gì đó hoàn toàn thực tế và có thể. Điều này diễn ra trong nhiều thí nghiệm và có thể mất nhiều thời gian để đưa ra kết quả có thể trình bày.

Các nhà cập nhật của nhà nghiên cứu thường là những người dùng thử nghiệm của tôi, tôi vẫn đang chạy, hay còn gọi là yup, vẫn đang đọc các bài báo. Nếu họ mô tả chi tiết hơn những gì họ đang làm, các kỹ sư sẽ nhìn chằm chằm vào chỗ trống do thiếu chuyên môn về máy học. Vé của họ cũng có ước tính rất cao và tiếp tục mang theo nhiều lần chạy nước rút. Cả hai điều này làm họ thất vọng. Họ cảm thấy họ không thể đưa ra những cập nhật xác thực và tự hào về sự tiến bộ của họ.

Các nhà nghiên cứu thường không hiểu những gì các kỹ sư đang nói về. Họ ít tham gia và quan tâm đến kiến ​​trúc nền tảng rộng hơn mà mô hình của họ cuối cùng sẽ được tích hợp.

Nó trở nên tồi tệ đến nỗi các nhà nghiên cứu bắt đầu bỏ qua đứng lên vì họ không thấy nó có giá trị, hơn nữa tạo ra rối loạn chức năng nhóm.

Những thay đổi đã giúp:

  • Tóm tắt thứ sáu: Thay vì tham gia đứng lên (chính thức là Scrum hàng ngày trong scrum) mỗi ngày, các nhà nghiên cứu sẽ tham gia mỗi ngày, và cuối cùng chỉ vào thứ Sáu, nơi họ sẽ cập nhật lâu hơn về những gì họ đã đạt được trong tuần đó. Điều này cho phép họ có thêm thời gian để thử nghiệm và cho họ nhiều thời gian phát sóng hơn để mô tả cách tiếp cận và bối cảnh công việc của họ. Các kỹ sư cũng đã đưa ra một bản cập nhật về tiến độ của tuần đó và bối cảnh hóa các dự án và quyết định kiến ​​trúc của họ.
  • Tóm tắt về Slack: Kết thúc mỗi lần đứng lên, tôi viết một bản tóm tắt về những gì đã xảy ra và những gì mọi người đang tập trung vào ngày hôm nay. Tôi @mention bất kỳ ai từ nghiên cứu khi có liên quan, chẳng hạn như tiến trình tích hợp thuật toán của họ hoặc cần đầu vào của họ để bỏ chặn nhóm. Điều này đã giúp các nhà nghiên cứu ở lại trong vòng lặp.
  • Trò chuyện về thuật toán: Trong một phiên dành riêng, mỗi nhà nghiên cứu đã giải thích những gì họ đang làm việc, thuật toán của họ hoạt động như thế nào hoặc didn, cách tiếp cận của họ, nơi họ đang ở với nó. Nó bao gồm một số kỹ năng nâng cao cơ bản cho những người không học máy và giúp san bằng sân chơi và thiết lập một số ngôn ngữ chung.
  • Chia sẻ Backlog tinh chỉnh và lập kế hoạch Sprint: Đây không phải là một thay đổi mỗi lần. Điều quan trọng cần làm nổi bật là toàn bộ nhóm đã tham gia trong các phiên sàng lọc tồn đọng và lập kế hoạch chạy nước rút, vì nó giúp điều chỉnh các mục tiêu cho lần chạy nước rút, liên kết chúng với OKRs của chúng tôi và cùng tạo ra một con đường từ hoàn thành nghiên cứu thuật toán đến sản xuất nó, triển khai và thực hiện sống cho mọi người
  • Vé nghiên cứu không được đánh giá cao: Chúng tôi thấy rằng các ước tính cho các nhiệm vụ nghiên cứu đã thực sự giúp chúng tôi dự đoán khi nào công việc sẽ được thực hiện. Chúng tôi quyết định giảm điểm hoàn toàn cho các nhà nghiên cứu, nhưng giữ vé trong giai đoạn nước rút như một cách để châm ngòi cho các cuộc trò chuyện trong Thứ Sáu Tóm tắt.
  • Thuê cầu: Một thuê mướn chính cho nhóm là kỹ sư Python của chúng tôi, người đã thu hẹp khoảng cách giữa các nhà nghiên cứu mã Python và các kỹ sư phụ trợ Ruby và Elixir của chúng tôi. Vai trò này là công cụ trong việc xác định cách chúng ta đi từ mã loại học thuật, đến mã có thể mở rộng cấp sản xuất.
Kỷ niệm thành công, ngay cả khi chúng ta ở xa. Liên kết đến tweet.

Đóng các bình luận

Ngày nay, Nhóm Sinh trắc học đã gắn kết hơn bao giờ hết. Chúng tôi đã chào đón hai chức năng mới cho nhóm của chúng tôi: Quản lý dịch vụ / Phân tích dữ liệu ở London và Kỹ sư kiểm tra của chúng tôi ở Lisbon đã bắt đầu hỗ trợ chúng tôi toàn thời gian, thay vì chia sẻ với các nhóm khác.

Chúng tôi ăn mừng thành công cùng nhau trong sự chậm chạp và hội nghị video, chúc mừng nhau vì công việc tuyệt vời và học hỏi từ các dự án ít thành công của chúng tôi như là một nhóm. Sản phẩm ghé thăm Lisbon mỗi quý một lần. Nghiên cứu và Dịch vụ đến Lisbon cứ sau sáu tháng. Kỹ thuật và Kiểm tra đến London ít nhất hai lần một năm. Chúng tôi tiếp tục đi chơi, học hỏi lẫn nhau và lặp đi lặp lại các quy trình của chúng tôi.

Thật là một hành trình thú vị mà nó đã được cho đến nay!

Đứng lên trên Zoom. Ai đó phải nói điều gì đó buồn cười.

Bạn có thể đọc một cái nhìn của nhà phát triển phần mềm về câu chuyện này của Daniel Serrano (3 phút đọc), được viết khoảng một năm trước, vì vậy không phải tất cả các thay đổi trên đã được thực hiện trước đó.

Tái bút: Tìm thấy sự vui nhộn khi tôi làm việc với bốn kiểu tóc khác nhau trong tất cả các bức ảnh này.