Hợp tác liên phòng ban & Bên ngoàiCross-Functional & External Collaboration
Thuộc bộ kiến thức Engineering Manager Roadmap.
Tổng quan
Công việc của một engineering manager (EM) không dừng lại ở ranh giới của team. Product cần một ước tính thực tế trước khi hứa ngày ra mắt với khách hàng. Sales cần một người có kỹ thuật tham gia cuộc gọi để chốt một deal phụ thuộc vào chi tiết integration. Legal cần biết liệu một data pipeline mới có chạm vào dữ liệu cá nhân trước khi nó được triển khai hay không. Support đang xử lý cùng một bug report hai mươi lần mà không có cách nào đáng tin cậy để đưa nó đến tay engineer. Một vendor gặp outage API và roadmap cả quý của team lại phụ thuộc vào đó. Không điều nào trong số này là tùy chọn hay thỉnh thoảng — đó là “nước” mà team bơi trong đó hằng ngày, và việc EM điều hướng tốt đến đâu sẽ quyết định team được nhìn nhận là đối tác giúp phần còn lại của công ty thoát bế tắc, hay là một điểm nghẽn mà người khác phải tìm cách né tránh.
Chủ đề lặp lại xuyên suốt mọi mối quan hệ trong bài này là: friction (ma sát) gần như không bao giờ do người xấu gây ra — nó do incentive lệch nhau và vocabulary (từ vựng) không khớp nhau. Một sales rep hứa hẹn ngày giao hàng quá sớm không phải vì họ liều lĩnh; họ được tối ưu và trả thưởng dựa trên việc chốt deal, còn chi phí của một ngày giao hàng quá gấp gáp bị đẩy sang cho engineering gánh chứ không phải họ. Một team legal có vẻ làm chậm mọi thứ không phải vì họ cố tình cản trở; họ được trả thưởng vì công ty không bao giờ xuất hiện trong một hồ sơ kiện tụng hay thanh tra, và cái giá họ trả khi nói “không” gần như bằng 0, trong khi cái giá họ trả khi bỏ sót một vấn đề tuân thủ (compliance) là rất nặng. Khi một EM thấm nhuần rằng hành vi của phía bên kia là phản ứng hợp lý trước incentive của họ chứ không phải là khiếm khuyết về tính cách, toàn bộ tư thế đối với công việc liên phòng ban (cross-functional) chuyển từ đối đầu sang thứ gần với đàm phán và thiết kế hệ thống: thay đổi incentive hoặc quy trình, và phần lớn friction sẽ tự giải quyết.
Bài này cũng bao quát phần hợp tác vươn ra ngoài công ty hoàn toàn — các vendor mà SLA của họ ảnh hưởng trực tiếp đến hệ thống production của bạn, các technology partner mà bạn cần tác động đến roadmap của họ mà không thể kiểm soát, và thực tế không thể tránh khỏi của org politics (chính trị nội bộ tổ chức), vốn đơn giản chỉ là hình ảnh của việc “hoàn thành công việc thông qua những người không báo cáo cho bạn” khi mở rộng quy mô. Bài viết này xây dựng trực tiếp trên nền Stakeholder Communication & Reporting — giao tiếp là cơ chế, còn bài này nói về các mối quan hệ và cấu trúc mà giao tiếp đó chạy qua — và nó kết nối với quyết định build-vs-buy trong Technical Roadmap, Debt & Risk, vì mọi quan hệ với vendor và partner đều là hệ quả của một quyết định trước đó: phụ thuộc vào hệ thống của người khác thay vì tự xây.
Kiến thức nền tảng
Vì sao friction liên phòng ban xảy ra
Mỗi phòng ban mà engineering team hợp tác cùng có một objective function (hàm mục tiêu) khác nhau, một khung thời gian khác nhau, và một vocabulary khác nhau cho cùng một thực tế bên dưới. Product nghĩ theo hướng kết quả cho người dùng và cam kết roadmap tính theo quý. Design nghĩ theo hướng nhất quán trải nghiệm người dùng, và thường là bên cuối cùng biết được một ràng buộc kỹ thuật khiến thiết kế đã chia sẻ với stakeholder không còn khả thi. Sales nghĩ theo chu kỳ deal tính theo tuần, được thưởng vì chốt được deal chứ không phải vì chuyện gì xảy ra với codebase sáu tháng sau khi deal đóng. Support nghĩ theo số lượng ticket và thời gian xử lý, và trải nghiệm engineering như một hàng đợi nuốt chửng các escalation mà không thấy tiến triển. Legal và finance nghĩ theo mức độ rủi ro và dấu vết audit, được thưởng vì sự vắng mặt của kết quả xấu hơn là sự hiện diện của kết quả tốt — điều này về mặt cấu trúc khiến họ thiên về thận trọng, thứ mà engineering trải nghiệm như friction hay trì hoãn.
Không hàm mục tiêu nào trong số này là sai; chúng đơn giản là các khía cạnh khác nhau của thứ làm công ty vận hành, được tối ưu độc lập vì sơ đồ tổ chức (org chart) buộc phải chuyên môn hóa. Việc của EM trong bối cảnh này không phải là thuyết phục các phòng ban khác dùng vocabulary hay ưu tiên của engineering, mà là phiên dịch trôi chảy theo cả hai chiều — biến một cam kết của sales thành một ước tính engineering có biên độ bất định thực sự, và biến một ràng buộc kỹ thuật thành một phát biểu rủi ro kinh doanh mà một stakeholder không có nền tảng kỹ thuật có thể hành động theo.
Khoảng cách về vocabulary
Một kiểu thất bại cụ thể hay lặp lại là cùng một từ mang nghĩa khác nhau với mỗi phòng ban, và không ai nhận ra cho đến khi một quyết định đi sai hướng. “Done” (xong) nghĩa là đã lên production với engineer, là có thể demo với product manager, và là đã thông báo cho khách hàng với salesperson — ba cột mốc khác nhau nhưng bị gộp lặng lẽ thành một từ trong cuộc họp. “Urgent” (khẩn cấp) từ support thường nghĩa là “một khách hàng phàn nàn to tiếng,” khác với “urgent” đo bằng số lượng khách hàng bị ảnh hưởng hoặc doanh thu gặp rủi ro. “Committed” (đã cam kết) trên một slide roadmap có thể mang bất cứ nghĩa nào từ “chúng tôi sẽ cố” đến “chúng tôi đã ký hợp đồng kèm ngày cụ thể,” và khoảng cách giữa hai cách hiểu đó chính là nơi phần lớn niềm tin liên phòng ban bị đốt cháy. Một phần việc của EM là nhận ra những từ bị nạp quá nhiều nghĩa (overloaded) này trong phòng họp và buộc phải có định nghĩa rõ ràng trước khi một quyết định được đưa ra dựa trên một từ mơ hồ.
Quan hệ với support và sales cụ thể
Support và sales là hai phòng ban mà engineering tương tác thường xuyên nhất và, nếu không được quản lý, cũng đau đầu nhất, vì cả hai kênh đều có xu hướng cấu trúc là leo thang mọi thứ thành khẩn cấp ngang nhau — support vì mọi lời phàn nàn của khách hàng đều cảm thấy khẩn cấp với chính khách hàng đó, còn sales vì mọi deal có nguy cơ mất đều cảm thấy sống còn với rep đang gánh quota. Engineering không thể coi mọi escalation có trọng số ngang nhau mà không khiến roadmap tan rã thành công việc phản ứng thuần túy; cách đối phó không phải là bỏ qua escalation mà là xây dựng các cơ chế triage và feedback được mô tả bên dưới, để mức độ khẩn cấp được đánh giá dựa trên tín hiệu thực sự thay vì khối lượng ồn ào.
Khái niệm chính
Xây dựng một vòng lặp feedback khách hàng thực sự
Kiểu thất bại mặc định ở hầu hết công ty là feedback khách hàng từ support và sales đi vào một “hố đen”: một support agent ghi ticket, một khách hàng phàn nàn với salesperson rồi được nhắc đến trong Slack, và không cái nào từng tạo ra thay đổi rõ ràng trong thứ engineering xây dựng. Theo thời gian, cả hai phòng ban học được rằng đưa thông tin cho engineering là vô ích, và họ dừng làm điều đó — đây là kết quả tệ nhất, vì nó nghĩa là engineering mất đi tín hiệu độ chính xác cao nhất về thứ thực sự đang gãy với người dùng thật, đúng vào lúc engineering cần tín hiệu đó nhất.
Một vòng lặp feedback hoạt động cần bốn thứ tồn tại đồng thời, và có xu hướng gãy nếu thiếu bất kỳ thứ nào:
| Thành phần | Vai trò | Kiểu thất bại nếu thiếu |
|---|---|---|
| Một kênh intake duy nhất, ít ma sát | Support/sales ghi vấn đề vào một nơi engineering thực sự theo dõi (hàng đợi có tag, một board chung), không rải rác trong Slack DM | Feedback vỡ vụn qua nhiều kênh; không gì được triage nhất quán |
| Nhịp độ triage với ownership rõ ràng | Ai đó (thường là một engineer luân phiên hoặc EM) rà soát hàng đợi intake theo lịch cố định và gắn nhãn mức độ nghiêm trọng/chủ đề | Vấn đề nằm im không ai đọc; hàng đợi biến thành nghĩa địa không ai tin |
| Tổng hợp thành pattern, không chỉ ticket riêng lẻ | Các phàn nàn riêng lẻ được cuộn lại — “đây là báo cáo thứ 12 về X trong tháng này” — và đối chiếu với dữ liệu khối lượng/doanh thu | Anecdote (giai thoại) cá nhân ồn ào được đối xử ngang bằng vấn đề hệ thống, hoặc bị bỏ qua hoàn toàn |
| Đóng vòng lặp một cách rõ ràng | Người nêu vấn đề được thông báo chuyện gì xảy ra với nó — đã fix, đã lên lịch, hay bị hạ ưu tiên rõ ràng kèm lý do | Support/sales kết luận feedback đi vào hư không và ngừng báo cáo |
Dòng cuối cùng quan trọng hơn vẻ ngoài của nó. Đóng vòng lặp không đòi hỏi phải fix mọi thứ được báo cáo — nó đòi hỏi mọi báo cáo đều nhận được câu trả lời, kể cả khi câu trả lời là “chúng tôi đã triage việc này, nó ảnh hưởng một số ít account, và không nằm trong roadmap quý này vì lý do X.” Câu trả lời đó, được đưa ra nhất quán, là thứ giữ kênh sống; sự im lặng là thứ giết chết nó, bất kể thực sự có bao nhiêu thứ được fix.
Anecdote (giai thoại) so với signal (tín hiệu hệ thống)
Một cái bẫy thường gặp là để lời phàn nàn ồn ào nhất của khách hàng định hình roadmap. Một khách hàng lớn hoặc có tiếng nói mạnh, escalate qua một mối quan hệ sales cấp cao, có thể tạo ra áp lực không tương xứng với số lượng người dùng thực sự bị ảnh hưởng, và một EM phản xạ tái ưu tiên theo tiếng nói ồn ào nhất sẽ huấn luyện cả tổ chức escalate ồn ào thay vì báo cáo có hệ thống. Kỷ luật ở đây là đặt song song hai câu hỏi cho mỗi mẩu feedback đến: báo cáo đơn lẻ này gợi ý điều gì, và dữ liệu tổng hợp (khối lượng ticket theo danh mục, phân tích churn, usage analytics, NPS verbatim) thực sự cho thấy điều gì? Một phàn nàn từ một account enterprise có thể là điều đúng đắn để hành động ngay nếu nó cũng tương quan với một pattern rộng hơn trong dữ liệu, hoặc có thể chỉ là trường hợp đơn lẻ được xử lý phù hợp bằng một fix có mục tiêu mà không cần trở thành roadmap item. Anecdote có giá trị như tín hiệu cảnh báo sớm và minh họa cụ thể, sống động cho một metric trừu tượng — chúng nguy hiểm nếu là cơ sở duy nhất để ưu tiên.
Alignment với customer success và technical customer support
Quyết định khi nào engineering nên tham gia trực tiếp với khách hàng là một phán đoán thực sự, không phải một chính sách áp dụng cứng nhắc theo cả hai hướng. Sự tham gia trực tiếp của engineering thường hợp lý cho một escalation kỹ thuật thực sự mà support đã xác định đúng là vượt quá độ sâu chẩn đoán của họ (một bug ảnh hưởng production tại một account chiến lược, một vấn đề integration phức tạp mà chỉ ai có context hệ thống mới debug được), hoặc cho technical sales support khi một deal thực sự phụ thuộc vào việc trả lời một câu hỏi kiến trúc hay bảo mật sâu mà salesperson không thể tự trả lời một cách đáng tin cậy. Nó thường không hợp lý nếu trở thành phản ứng mặc định cho mọi khách hàng muốn “nói chuyện với một engineer,” điều mà — nếu bị để trở thành thường lệ — sẽ lặng lẽ biến engineer thành một tầng support thứ hai mà không có kỷ luật triage mà support được đào tạo để áp dụng.
Cơ chế giữ cho việc này bền vững là một chính sách escalation rõ ràng, được thống nhất trước, thay vì một phán đoán ad hoc dưới áp lực mỗi lần: mức độ nghiêm trọng nào đáng để dùng thời gian engineering, ai là người ra quyết định đó (thường là một lead support/CS phối hợp với EM, không phải bất kỳ engineer nào chịu áp lực trực tiếp từ khách hàng), một cơ chế xoay vòng để cùng một hoặc hai engineer không trở thành điểm escalation không chính thức vĩnh viễn, và một mức trần — rõ ràng hoặc ngầm định — về việc bao nhiêu năng lực của team dành cho công việc khách hàng phản ứng so với công việc roadmap trong một chu kỳ nhất định. Không có mức trần đó, technical customer support có xu hướng nở ra chiếm hết thời gian sẵn có, vì luôn có thêm một khách hàng khác với yêu cầu nghe có vẻ chính đáng, còn roadmap — không có một tiếng nói duy nhất nào vận động cho nó ngay lúc đó theo cách một khách hàng đang escalate có — lặng lẽ mất thời gian mà không ai chủ động quyết định nhường đi.
Vendor management và quan hệ với vendor
Mọi sự phụ thuộc vào một vendor bên ngoài, về bản chất, là một quyết định đánh đổi kiểm soát lấy đòn bẩy (leverage): công ty có được một năng lực nhanh và rẻ hơn so với tự xây trong nhà, đổi lại chấp nhận rằng thất bại của vendor trở thành thất bại của công ty. Sự đánh đổi đó thường là đúng đắn — xem khung build-vs-buy trong Technical Roadmap, Debt & Risk — nhưng nó cần được quản lý chủ động chứ không phải xử lý như một quyết định một lần rồi xong khi hợp đồng đã ký.
Ba điều phân biệt một quan hệ vendor được quản lý tốt với một quan hệ mong manh:
- Một SLA thực sự, được hiểu rõ, không chỉ được ký. SLA chỉ hữu ích nếu engineering team biết nó thực sự bảo đảm điều gì (tỷ lệ uptime, thời gian phản hồi cho một sự cố sev-1, các biện pháp khắc phục nếu vi phạm — thường là service credit, hiếm khi tương xứng với thiệt hại thực sự mà một outage nghiêm trọng gây ra) và đã xây dựng monitoring có thể phát hiện vi phạm độc lập với việc vendor tự báo cáo. Trang trạng thái (status page) của chính vendor không thể thay thế cho alerting riêng của công ty trên chính sự phụ thuộc đó.
- Một fallback đáng tin cậy cho các kiểu thất bại của vendor. Với bất kỳ vendor nào mà một hệ thống production phụ thuộc vào, câu hỏi cần đặt ra không phải là “liệu vendor này có bao giờ sập không” (chắc chắn sẽ có) mà là “hệ thống của chúng ta làm gì khi nó sập, và chúng ta đã thực sự test đường đó chưa.” Điều này có thể trải dài từ một vendor thứ hai đầy đủ đứng chờ (đắt đỏ, chỉ hợp lý cho những phụ thuộc quan trọng nhất) đến một fallback ở chế độ suy giảm (phục vụ dữ liệu cũ, xếp hàng đợi ghi, tắt một tính năng không thiết yếu) cho đến, ít nhất, một runbook ứng phó sự cố rõ ràng để một outage không biến thành cuộc chạy đua tìm hiểu xem còn có thể làm gì.
- Quản lý leverage một cách chủ động. Đòn bẩy đàm phán với một vendor cao nhất trước khi ký (khi vendor muốn có deal) và sau khi đã xây dựng được một giải pháp thay thế đáng tin cậy (khi vendor biết mình có thể bị thay thế); nó thấp nhất ngay sau khi tích hợp sâu, khi chi phí chuyển đổi đã lớn và vendor biết điều đó. Một thực hành vendor management giữ cho leverage không suy giảm về 0 bao gồm việc định kỳ đánh giá lại các lựa chọn thay thế (kể cả khi không có ý định chuyển), tránh các định dạng dữ liệu hay API độc quyền khiến việc di chuyển trở nên đắt đỏ tới mức bất khả thi khi có thể tránh được, và coi việc gia hạn hợp đồng là một cuộc đàm phán thực sự thay vì gia hạn tự động để né tránh công sức đánh giá lại.
Tránh vendor lock-in mà không tê liệt vì lo lock-in
Vendor lock-in là một chi phí thực sự, nhưng coi “tránh mọi lock-in” như một nguyên tắc tuyệt đối lại là một kiểu thất bại riêng — nó khiến team xây dựng những lớp abstraction không cần thiết trên mọi vendor “phòng khi,” phải trả một khoản thuế phức tạp liên tục để giữ optionality (khả năng linh hoạt) có thể không bao giờ được dùng đến, và có thể đẩy team về phía một giải pháp tệ hơn, chung chung hơn chỉ để bảo toàn khả năng portability lý thuyết mà không ai thực sự dùng. Khung tư duy lành mạnh hơn, tương tự với thảo luận build-vs-buy trong Technical Roadmap, Debt & Risk, là điều chỉnh mức đầu tư chống lock-in theo đúng chi phí thực sự nếu chọn sai: một phụ thuộc hàng hóa (commodity) với nhiều lựa chọn thay thế đáng tin cậy (object storage, một message queue) đáng để có một lớp abstraction mỏng để việc chuyển đổi khả thi; một năng lực thực sự khác biệt không có lựa chọn thay thế thực sự (một nền tảng ML chuyên biệt, một công cụ tuân thủ ngách) có thể không đáng để abstraction chút nào, vì bản thân abstraction cũng có chi phí và xác suất thực tế sẽ chuyển đổi là thấp. Câu hỏi cần liên tục đặt ra không phải là “chúng ta có bị lock-in không” (gần như mọi quan hệ vendor đều có lock-in ở mức nào đó) mà là “chi phí của việc bị lock-in ở đây có bị giới hạn và chấp nhận được so với những gì đổi lại hay không.”
Technical partnership và technology partnership
Một technology partnership khác với một quan hệ vendor ở một điểm quan trọng: nó thường mang tính hai chiều, với mỗi bên vừa phụ thuộc vừa xây dựng cho bên kia, thay vì một công ty đơn thuần mua dịch vụ từ công ty kia. Điều này thường thể hiện dưới dạng một integration chung (một công ty payment và một nền tảng e-commerce, một cloud provider và một công cụ monitoring) nơi cả hai công ty đều hưởng lợi khi integration hoạt động tốt, và cả hai đều có roadmap engineering cần được đồng bộ ở mức lỏng lẻo.
Kiểu thất bại lặp lại trong technical partnership là ranh giới ownership mơ hồ — khi integration gãy, on-call của bên nào bị page, và engineer của bên nào được kỳ vọng sửa nó? Nếu để không xác định, cả hai bên đều có thể hợp lý cho rằng đó là trách nhiệm của bên kia, và một vấn đề production biến thành cuộc qua lại chậm chạp kéo dài nhiều ngày về việc đó là lỗi của ai trong khi khách hàng của cả hai bên đều bị ảnh hưởng. Một partnership đáng để đầu tư thời gian engineering xứng đáng có một ranh giới rõ ràng, bằng văn bản, ngay từ đầu: bên nào sở hữu thành phần nào của integration, đường escalation trông như thế nào khi có gì đó gãy tại điểm nối giữa hai hệ thống, việc versioning API và các breaking change được thông báo trước như thế nào, và, lý tưởng nhất, một buổi rà soát roadmap chung nhẹ nhàng (thường theo quý) để không bên nào ship một breaking change mà bên kia phát hiện ra ở production. Ở những partnership quan trọng về mặt chiến lược, có một điểm liên hệ được đặt tên cụ thể ở mỗi bên engineering — không phải một dàn nhân sự luân phiên — sẽ đẩy nhanh đáng kể việc giải quyết khi có sự cố, đơn giản vì niềm tin và context tích lũy trong một mối quan hệ chứ không reset mỗi khi có người mới.
Best Practices
Điều hướng org politics mà không hoài nghi
“Politics” (chính trị nội bộ) mang hàm ý tiêu cực, nhưng bóc tách hàm ý đó ra, nó đơn giản chỉ là nhận định rằng các quyết định trong bất kỳ tổ chức nào có hơn một nhúm người đều được đưa ra bởi những người có incentive khác nhau, thông tin khác nhau, và mức độ tin tưởng lẫn nhau khác nhau — và điều hướng thực tế đó một cách hiệu quả là một kỹ năng, không phải một khiếm khuyết đạo đức. Một EM từ chối hoàn toàn tham gia vào động lực tổ chức, dựa trên nguyên tắc “công việc tốt sẽ tự nói lên tất cả,” thường xuyên mất nguồn lực, headcount, và ưu tiên roadmap vào tay các đồng cấp hiểu rằng quyết định được đưa ra bởi con người, và đúng là điều kiện cần chứ chưa đủ để thắng một cuộc tranh luận phân bổ nguồn lực.
Một vài chiến thuật thực tế phân biệt việc điều hướng chính trị hiệu quả, không hoài nghi với việc né tránh ngây thơ hoặc thao túng:
- Hiểu incentive của người khác trước khi yêu cầu họ điều gì đó. Một yêu cầu được đóng khung xoay quanh những gì thực sự đo lường hiệu suất của phòng ban đối phương sẽ dễ được chấp nhận hơn một yêu cầu chỉ đóng khung xoay quanh những gì engineering cần — không phải vì đó là thao túng, mà vì một yêu cầu thực sự phục vụ cả hai bên dễ nói “có” hơn và bền vững hơn một khi đã đồng ý.
- Xây dựng liên minh trước khi cần đến nó. Thời điểm để xây dựng quan hệ với một product lead, một đối tác finance, hay một EM đồng cấp là trước khi có một quyết định gây tranh cãi cần sự ủng hộ của họ — một mối quan hệ chỉ được xây khi cần điều gì đó từ ai đó sẽ mang tính giao dịch và ít khả năng thành công hơn nhiều so với một mối quan hệ đã có nền tảng tin cậy sẵn.
- Chọn trận đánh một cách có chủ đích. Không phải bất đồng nào cũng đáng để tiêu tốn vốn chính trị (political capital); một EM chiến đấu trong mọi cuộc va chạm nhỏ sẽ cạn kiệt uy tín trước khi đến khoảnh khắc thực sự quan trọng, trong khi một EM rõ ràng chọn lọc những gì mình phản đối sẽ được coi trọng hơn khi thực sự phản đối.
- Đừng bao giờ làm người khác bất ngờ trong cuộc họp công khai. Nêu một bất đồng, một quan ngại, hay thông tin mới lần đầu tiên trong một cuộc họp lớn — đặc biệt là một cuộc họp có sếp của stakeholder tham dự — gần như chắc chắn tạo ra phản ứng phòng thủ và một mối hiềm khích kéo dài, ngay cả khi điểm được nêu ra là đúng. Cùng một điểm đó, được nêu riêng tư trước đó, cho phía bên kia cơ hội phản hồi, điều chỉnh, hoặc chuẩn bị, sẽ đạt được cùng kết quả mà không phải trả giá công khai. Thói quen duy nhất này — không bất ngờ nơi công khai — là một trong những kỹ năng chính trị có đòn bẩy cao nhất mà một EM có thể xây dựng, vì vi phạm nó là một trong những cách phổ biến và dễ tránh nhất khiến niềm tin bị phá hủy.
- Tách bất đồng khỏi con người. Bất đồng với một đề xuất trong khi vẫn khẳng định năng lực và thiện ý của người đưa ra nó giữ cho mối quan hệ nguyên vẹn cho cuộc đàm phán tiếp theo; đóng khung bất đồng như về phán đoán hay tính cách của người đó khiến mọi tương tác trong tương lai trở nên đối đầu.
Trust và influence without authority (ảnh hưởng không cần quyền hạn)
Gần như mọi thứ trong bài này — khiến product ưu tiên một fix, khiến legal review nhanh hơn, khiến vendor escalate một support ticket, khiến một partner team điều chỉnh timeline integration — đều đòi hỏi tác động đến ai đó không báo cáo cho EM và không có nghĩa vụ phải tuân theo. Đây có thể xem là kỹ năng chuyển giao được nhiều nhất trong toàn bộ engineering management, vì nó được sử dụng liên tục, trong gần như mọi tương tác liên phòng ban, trong khi thẩm quyền chính thức đối với direct report lại được sử dụng ít hơn nhiều so với hầu hết các manager mới nghĩ.
Influence without authority được xây dựng, gần như hoàn toàn, từ hai thành phần cộng dồn theo thời gian: sự nhất quán (consistency) và việc theo đến cùng (follow-through). Consistency nghĩa là cách một EM cư xử trong một tuần bình lặng và một tuần khủng hoảng trông giống nhau — cùng tiêu chuẩn, cùng sự trung thực với tin xấu, cùng sự tôn trọng thời gian của người khác — để đồng nghiệp có thể dự đoán được cách họ sẽ hành xử và trao niềm tin dựa trên khả năng dự đoán đó thay vì phải đánh giá lại mối quan hệ mỗi lần. Follow-through nghĩa là khi một EM nói sẽ làm gì đó — phản hồi ai đó trước thứ Sáu, escalate một vấn đề, fix một vấn đề đã thống nhất chung — thì điều đó thực sự xảy ra, không cần bị nhắc lại. Mỗi cam kết không được giữ, dù nhỏ, là một khoản rút nhỏ khỏi một tài khoản niềm tin đã mất rất lâu để xây dựng và có thể cạn kiệt nhanh đến bất ngờ; mỗi cam kết được giữ, đặc biệt một cam kết mà không ai để ý nếu bị bỏ qua, là một khoản gửi vào. Qua đủ số chu kỳ, đây chính là thứ phân biệt một EM mà lời nói được các phòng ban khác chấp nhận ngay tại mặt, với một EM mà mọi phát biểu đều bị kiểm chứng độc lập trước khi ai đó hành động theo — và người đầu tiên hoàn thành công việc với chi phí ma sát và đàm phán chỉ bằng một phần nhỏ so với người thứ hai.
Friction với stakeholder và chiến thuật hợp tác
Bảng dưới đây chắt lọc các điểm friction lặp lại với các phòng ban và các bên bên ngoài được nêu trong bài này thành các chiến thuật cụ thể, giải quyết incentive lệch nhau ở gốc rễ thay vì triệu chứng bề mặt.
| Nhóm stakeholder | Điểm friction điển hình | Chiến thuật hợp tác |
|---|---|---|
| Product | Cam kết roadmap được đưa ra mà không có input của engineering về tính khả thi hay effort | Đưa ước tính engineering (kèm biên độ bất định) vào quy trình lập kế hoạch trước khi cam kết được đưa ra bên ngoài, không phải sau |
| Sales | Deal được hứa dựa trên tính năng hoặc ngày mà engineering chưa xác nhận là khả thi | Thiết lập quy trình thống nhất trước để sales kiểm tra tính khả thi kỹ thuật trước khi báo ngày; định nghĩa một con đường rõ ràng, có giới hạn cho technical sales support hợp lệ |
| Design | Thiết kế được chia sẻ với stakeholder trước khi engineering kịp cảnh báo về ràng buộc kỹ thuật | Đưa engineering vào quy trình thiết kế đủ sớm để cảnh báo ràng buộc trước khi thiết kế được cam kết ra bên ngoài, không phải sau |
| Support | Escalation cảm giác bị lờ đi; engineering cảm giác bị ngập trong sự khẩn cấp không được phân loại | Xây dựng hàng đợi intake chung, nhịp độ triage, và vòng lặp đóng như mô tả ở trên; thống nhất định nghĩa mức độ nghiêm trọng trước |
| Legal / Finance | Bị coi là điểm nghẽn làm chậm mọi lần ra mắt | Đưa legal/finance vào sớm với bất kỳ thứ gì liên quan đến dữ liệu, tuân thủ, hay rủi ro tài chính — một lần review legal ở giai đoạn cuối giống như một tình huống khẩn cấp; một lần review sớm giống như một bước bình thường |
| Vendor | Vi phạm SLA hay outage mà không có fallback sẵn sàng | Đàm phán và thực sự hiểu SLA; xây dựng và test một đường fallback trước khi cần đến nó, không phải trong lúc outage |
| Technology partner | Ownership mơ hồ khi integration gãy | Định nghĩa ranh giới ownership, đường escalation, và nhịp độ rà soát roadmap chung trước khi vấn đề xảy ra, không phải trong lúc đang chữa cháy |
Thiết lập và giữ vững boundary
Mọi mối quan hệ trong bài này đều có một phiên bản mà, nếu không được quản lý, sẽ nở ra chiếm hết năng lực của engineering: escalation từ khách hàng, chữa cháy với vendor, yêu cầu hỗ trợ sales ad hoc, và duy trì quan hệ chính trị đều có thể, mỗi thứ riêng lẻ, cảm giác khẩn cấp và chính đáng ngay lúc đó, và cộng dồn lại chúng có thể lấn át hoàn toàn roadmap nếu EM không chủ động bảo vệ năng lực trước chúng. Kỷ luật giữ cho việc này bền vững là coi “bao nhiêu thời gian của team dành cho công việc liên phòng ban phản ứng” như một con số EM theo dõi và bảo vệ một cách rõ ràng — được truyền đạt trong cùng nhịp độ báo cáo nêu trong Stakeholder Communication & Reporting — thay vì một khoản thuế vô hình bào mòn roadmap từng yêu cầu tưởng chừng hợp lý một.
Tài liệu tham khảo
- roadmap.sh — Engineering Manager — roadmap mà bộ kiến thức này bám theo
- Team Topologies — Skelton & Pais, về các interaction mode (collaboration, X-as-a-Service, facilitating) giữa các team, áp dụng trực tiếp cho ranh giới cross-team và cross-functional
- HBR — “Managing Your Boss” — bài kinh điển của Gabarro & Kotter về quản lý cấp trên và ngang hàng, nền tảng cho influence without authority
- HBR — “The Necessary Art of Persuasion” — Conger, về xây dựng uy tín và đóng khung lập luận xuyên ranh giới tổ chức
- Google SRE Book — “Managing Incidents” — tài liệu tham khảo liên quan cho đường escalation vendor/partner và kỷ luật giao tiếp sự cố
- Camille Fournier — “The Manager’s Path” — các chương về quản lý cấp trên, ngang hàng, và động lực tổ chức dành cho engineering manager
- AWS Well-Architected Framework — Reliability Pillar — hướng dẫn thực tế về quản lý dependency, thiết kế fallback, và SLA liên quan đến vendor management
Part of the Engineering Manager Roadmap knowledge base.
Overview
An engineering manager’s job does not stop at the team’s boundary. Product needs a realistic estimate before a launch date is promised to a customer. Sales needs someone technical on a call to close a deal that hinges on an integration detail. Legal needs to know whether a new data pipeline touches personal data before it ships. Support is fielding the same bug report twenty times and has no reliable way to get it in front of an engineer. A vendor’s API has an outage and the team’s roadmap for the quarter depends on it. None of this is optional or occasional — it is the water the team swims in, and how well an EM navigates it determines whether the team is seen as a partner that unblocks the rest of the company or a bottleneck that has to be worked around.
The recurring theme across every relationship in this note is that friction is almost never caused by bad people — it’s caused by misaligned incentives and mismatched vocabulary. A sales rep who over-promises a delivery date isn’t being reckless; they are optimized and compensated on closing deals, and the cost of an aggressive date is deferred to engineering, not borne by them. A legal team that seems to slow everything down isn’t being obstructive; they are compensated for the company never appearing in a regulatory filing, and their downside from saying “no” is close to zero while their downside from a missed compliance issue is severe. Once an EM internalizes that the other side’s behavior is a rational response to their incentives rather than a character flaw, the entire posture toward cross-functional work shifts from adversarial to something closer to negotiation and system design: change the incentives or the process, and the friction largely resolves itself.
This note also covers the parts of collaboration that reach outside the company entirely — vendors whose SLAs your production system depends on, technology partners whose roadmap you need to influence without controlling, and the unavoidable reality of organizational politics, which is simply what “getting things done through other people who don’t report to you” looks like at scale. It builds directly on Stakeholder Communication & Reporting — communication is the mechanism, but this note is about the relationships and structures the communication runs through — and it connects to the build-vs-buy decision in Technical Roadmap, Debt & Risk, since every vendor and partner relationship is downstream of an earlier decision to depend on someone else’s system instead of building your own.
Fundamentals
Why cross-functional friction happens
Every function an engineering team collaborates with has a different objective function, a different time horizon, and a different vocabulary for the same underlying reality. Product thinks in terms of user outcomes and roadmap commitments measured in quarters. Design thinks in terms of user experience coherence and is often the last to hear about a technical constraint that invalidates a design already shared with stakeholders. Sales thinks in deal cycles measured in weeks and is rewarded for closing, not for what happens to the codebase six months after the deal closes. Support thinks in ticket volume and time-to-resolution, and experiences engineering as a queue that swallows escalations without visible progress. Legal and finance think in risk exposure and audit trails, and are rewarded for the absence of bad outcomes rather than the presence of good ones — which structurally biases them toward caution that engineering experiences as friction or delay.
None of these objective functions is wrong; they are simply different facets of what makes the company work, optimized independently because the org chart forces specialization. The engineering manager’s job in this landscape is not to convince other functions to adopt engineering’s vocabulary or priorities, but to translate fluently in both directions — turning a sales commitment into an engineering estimate with real uncertainty bounds, and turning an engineering constraint into a business-risk statement a non-technical stakeholder can act on.
The vocabulary gap
A recurring, specific failure mode is that the same word means something different to each function, and nobody notices until a decision goes wrong. “Done” means shipped-to-production to an engineer, available-to-demo to a product manager, and announced-to-customers to a salesperson — three different milestones that get silently collapsed into one word in a meeting. “Urgent” from support usually means “a customer complained loudly,” which is a different thing from “urgent” measured by number of affected customers or revenue at risk. “Committed” on a roadmap slide can mean anything from “we will try” to “we have signed a contract with a date attached,” and the gap between those two readings is where most cross-functional trust gets burned. Part of an EM’s job is to notice these overloaded words in the room and force an explicit definition before a decision is made on top of an ambiguous one.
The support and sales relationship specifically
Support and sales are the two functions engineering interacts with most frequently and, left unmanaged, most painfully, because both channels have a structural tendency to escalate everything as equally urgent — support because every customer complaint feels urgent to the customer experiencing it, and sales because every at-risk deal feels existential to the rep who owns the quota. Engineering cannot treat every escalation as equally weighted without the roadmap dissolving into pure reactive work; the counter to that is not to ignore escalations but to build the triage and feedback mechanisms described below so that urgency is assessed against real signal rather than volume of noise.
Key Concepts
Building a real customer feedback loop
The default failure mode in most companies is that customer feedback from support and sales enters a black hole: a support agent logs a ticket, a customer complains to a salesperson who mentions it in Slack, and neither ever produces a visible change in what engineering builds. Over time, both functions learn that feeding information to engineering is pointless, and they stop doing it — which is the worst outcome, because it means engineering loses its highest-fidelity signal about what’s actually breaking for real users, at the exact moment engineering needs that signal most.
A working feedback loop requires four things to exist simultaneously, and it tends to fail if any one is missing:
| Component | What it does | Failure mode without it |
|---|---|---|
| A single, low-friction intake channel | Support/sales log an issue in one place engineering actually watches (a tagged queue, a shared board), not scattered Slack DMs | Feedback fragments across channels; nothing is triaged consistently |
| A triage cadence with clear ownership | Someone (often a rotating engineer or the EM) reviews the intake queue on a fixed schedule and tags severity/theme | Issues sit unread; the queue becomes a graveyard nobody trusts |
| Aggregation into patterns, not just tickets | Individual complaints get rolled up — “this is the 12th report of X this month” — and compared against volume/revenue data | Loud individual anecdotes get equal weight to systemic issues, or get ignored entirely |
| Visible closure of the loop | The person who raised the issue is told what happened to it — fixed, scheduled, explicitly deprioritized and why | Support/sales conclude feedback goes nowhere and stop reporting it |
The last row matters more than it looks. Closing the loop doesn’t require fixing everything reported — it requires that every report gets an answer, even if the answer is “we’ve triaged this, it affects a small number of accounts, and it’s not on the roadmap this quarter for X reason.” That answer, delivered consistently, is what keeps the channel alive; silence is what kills it, regardless of how much actually gets fixed.
Anecdote vs. signal
A frequent trap is letting the loudest customer complaint set the roadmap. A large or vocal customer escalating through a senior sales relationship can generate pressure disproportionate to the actual number of users affected, and an EM who reflexively reprioritizes around the loudest voice trains the organization to escalate loudly rather than to report systematically. The discipline is to hold two questions side by side for every piece of incoming feedback: what does this one report suggest, and what does the aggregate data (ticket volume by category, churn analysis, usage analytics, NPS verbatims) actually show? A single enterprise account’s complaint can be the right thing to act on immediately if it also correlates with a broader pattern in the data, or it can be a one-off that’s appropriately handled as a targeted fix without becoming a roadmap item. Anecdotes are valuable as an early warning signal and as concrete, visceral illustrations of an abstract metric — they are dangerous as the sole basis for prioritization.
Customer success alignment and technical customer support
Deciding when engineering should engage directly with customers is a genuine judgment call, not a blanket policy in either direction. Direct engineering involvement is usually justified for a genuine technical escalation that support has correctly identified as beyond their diagnostic depth (a production-impacting bug affecting a strategic account, a complex integration issue only someone with system context can debug), or for technical sales support where a deal genuinely depends on answering a deep architectural or security question a salesperson cannot credibly answer alone. It is usually not justified as a default response to every customer who asks to “talk to an engineer,” which — if allowed to become routine — quietly converts engineers into a second support tier without the triage discipline support is trained to apply.
The mechanism that keeps this sustainable is a clear, pre-agreed escalation policy rather than an ad hoc judgment call made under pressure every time: which severity of issue warrants engineering time, who makes that call (typically a support/CS lead in partnership with the EM, not any individual engineer under direct customer pressure), a rotation so the same one or two engineers don’t become the permanent unofficial escalation point, and a cap — explicit or implicit — on how much of the team’s capacity goes to reactive customer work versus roadmap work in a given cycle. Without that cap, technical customer support has a tendency to expand to fill all available time, because there is always another customer with a legitimate-sounding request, and the roadmap — which has no single voice advocating for it in the moment the way an escalating customer does — quietly loses time nobody explicitly decided to give away.
Vendor management and vendor relationships
Every dependency on an external vendor is, at its core, a decision to trade control for leverage: the company gets a capability faster and cheaper than building it in-house, in exchange for accepting that the vendor’s failures become the company’s failures. That trade is frequently correct — see the build-vs-buy framing in Technical Roadmap, Debt & Risk — but it needs to be actively managed rather than treated as a one-time decision that’s finished once the contract is signed.
Three things distinguish a well-managed vendor relationship from a fragile one:
- A real SLA, understood, not just signed. An SLA is only useful if the engineering team knows what it actually guarantees (uptime percentage, response time to a sev-1, remedies if breached — usually service credits, rarely proportional to the actual damage a critical outage causes) and has built monitoring that would detect a breach independently of the vendor self-reporting one. A vendor’s own status page is not a substitute for the company’s own alerting on that dependency.
- A credible fallback for the vendor’s failure modes. For any vendor a production system depends on, the relevant question is not “will this vendor ever go down” (it will) but “what does our system do when it does, and have we actually tested that path.” That can range from a full second vendor on standby (expensive, justified only for the most critical dependencies) to a degraded-mode fallback (serve stale data, queue writes, disable a non-critical feature) to, at minimum, a clear incident response runbook so an outage doesn’t become a scramble to figure out what’s even possible.
- Active leverage management. Negotiating leverage with a vendor is highest before signing (when the vendor wants the deal) and after building a credible alternative (when the vendor knows it can be replaced); it is lowest right after deep integration, when switching costs have grown and the vendor knows it. A vendor management practice that keeps leverage from decaying to zero includes periodically re-evaluating alternatives (even without intent to switch), avoiding proprietary data formats or APIs that make migration prohibitively expensive when avoidable, and treating contract renewal as a real negotiation rather than an automatic renewal to avoid the effort of re-evaluating.
Avoiding lock-in without lock-in paralysis
Vendor lock-in is a real cost, but treating “avoid all lock-in” as an absolute principle is its own failure mode — it leads teams to build unnecessary abstraction layers over every vendor “just in case,” paying an ongoing complexity tax to preserve optionality that may never be exercised, and it can push a team toward a worse, more generic solution to preserve theoretical portability nobody will actually use. The healthier frame, mirroring the build-vs-buy discussion in Technical Roadmap, Debt & Risk, is to size the anti-lock-in investment to the actual cost of being wrong: a commodity dependency with several credible alternatives (object storage, a queue) deserves a thin abstraction so switching is plausible; a genuinely differentiated capability with no real alternative (a specialized ML platform, a niche compliance tool) may not be worth abstracting at all, because the abstraction itself has a cost and the realistic probability of ever switching is low. The question to keep asking is not “are we locked in” (almost every vendor relationship has some lock-in) but “is the cost of being locked in here bounded and acceptable given what we get in return.”
Technical and technology partnerships
A technology partnership differs from a vendor relationship in an important way: it is typically bidirectional, with each side depending on and building for the other, rather than one company simply purchasing a service from the other. This shows up most often as a joint integration (a payments company and an e-commerce platform, a cloud provider and a monitoring tool) where both companies benefit from the integration working well and both have engineering roadmaps that need to stay loosely synchronized.
The recurring failure mode in technical partnerships is an ambiguous ownership boundary — when the integration breaks, whose on-call gets paged, and whose engineers are expected to fix it? Left undefined, both sides can reasonably assume it’s the other’s responsibility, and a production issue becomes a slow, multi-day back-and-forth about whose bug it is while customers on both sides are affected. A partnership worth investing engineering time in deserves an explicit, written boundary early: which side owns which component of the integration, what the escalation path looks like when something breaks at the seam between the two systems, how API versioning and breaking changes are communicated in advance, and, ideally, a lightweight joint roadmap review (quarterly is typical) so neither side ships a breaking change the other discovers in production. Where the partnership is strategically important, having a single named point of contact on each engineering side — not a rotating cast — meaningfully speeds up resolution when something does go wrong, simply because trust and context accumulate in a relationship rather than resetting with every new person.
Best Practices
Navigating organizational politics without cynicism
“Politics” carries a negative connotation, but stripped of the connotation it is simply the observation that decisions in any organization of more than a handful of people are made by people with different incentives, different information, and different levels of trust in each other — and that navigating that reality effectively is a skill, not a moral failing. An EM who refuses to engage with organizational dynamics at all, on the principle that “good work should speak for itself,” routinely loses resources, headcount, and roadmap priority to peers who understand that decisions are made by people, and that being right is necessary but not sufficient to win a resource allocation argument.
A few practical tactics separate effective, non-cynical political navigation from either naive avoidance or manipulative maneuvering:
- Understand others’ incentives before asking them for something. A request framed around what the other person’s function is actually measured on lands better than a request framed only around what engineering needs — not as manipulation, but because a request that genuinely serves both sides is easier to say yes to and more durable once agreed.
- Build alliances before you need them. The time to build a relationship with a product lead, a finance partner, or a peer EM is before there’s a contested decision that needs their support — a relationship built only when something is needed from someone reads as transactional and is far less likely to succeed than one with an existing foundation of trust.
- Pick battles deliberately. Not every disagreement is worth spending political capital on; an EM who fights every small skirmish exhausts their credibility before the moment that actually matters, while an EM who is visibly selective about what they push back on is taken more seriously when they do push back.
- Never surprise people in public meetings. Raising a disagreement, a concern, or new information for the first time in a large meeting — especially one where a stakeholder’s boss is present — reliably creates a defensive reaction and a lasting grudge, even when the point being raised is correct. The same point raised privately beforehand, giving the other person a chance to respond, adjust, or prepare, achieves the same outcome without the public cost. This single habit — no surprises in public — is one of the highest-leverage political skills an EM can build, because violating it is one of the most common and most avoidable ways trust gets destroyed.
- Separate the disagreement from the person. Disagreeing with a proposal while affirming the person’s competence and good intent keeps the relationship intact for the next negotiation; framing a disagreement as being about the person’s judgment or character makes every future interaction adversarial.
Trust and influence without authority
Nearly everything covered in this note — getting product to prioritize a fix, getting legal to review something faster, getting a vendor to escalate a support ticket, getting a partner team to adjust their integration timeline — requires influencing someone who does not report to the EM and has no obligation to comply. This is arguably the single most transferable skill in engineering management, because it is exercised constantly, in nearly every cross-functional interaction, whereas formal authority over direct reports is exercised far less often than most new managers expect.
Influence without authority is built, almost entirely, out of two ingredients compounding over time: consistency and follow-through. Consistency means that how an EM behaves in a calm week and in a crisis week look similar — the same standards, the same honesty about bad news, the same respect for other people’s time — so that colleagues can predict how they’ll behave and extend trust based on that predictability rather than having to reassess the relationship every time. Follow-through means that when an EM says they will do something — get back to someone by Friday, escalate an issue, fix a mutually agreed problem — it actually happens, without needing to be chased. Every unkept commitment, even a small one, is a small withdrawal from a trust account that took a long time to build and can be depleted surprisingly fast; every kept commitment, especially one nobody would have noticed if skipped, is a deposit. Over enough cycles, this is what separates an EM whose word other functions take at face value from one whose every claim gets independently verified before anyone acts on it — and the former gets things done at a fraction of the friction and negotiation cost of the latter.
Stakeholder friction and collaboration tactics
The table below distills the recurring friction points with the functions and external parties covered in this note into concrete tactics that address the underlying incentive mismatch rather than the surface symptom.
| Stakeholder group | Typical friction point | Collaboration tactic |
|---|---|---|
| Product | Roadmap commitments made without engineering input on feasibility or effort | Get engineering estimates (with uncertainty ranges) into the planning process before commitments are made externally, not after |
| Sales | Deals promised on features or dates engineering hasn’t validated as feasible | Establish a pre-agreed process for sales to check technical feasibility before quoting a date; define a clear, bounded path for legitimate technical sales support |
| Design | Designs shared with stakeholders before engineering has flagged a technical constraint | Involve engineering early enough in the design process to flag constraints before a design is externally committed, not after |
| Support | Escalations feel ignored; engineering feels flooded with undifferentiated urgency | Build the shared intake queue, triage cadence, and closure-loop described above; agree on severity definitions in advance |
| Legal / Finance | Perceived as a blocker slowing down every launch | Loop legal/finance in early on anything with data, compliance, or financial exposure — a late-stage legal review reads as an emergency; an early one reads as a normal step |
| Vendor | SLA breach or outage with no fallback in place | Negotiate and actually understand the SLA; build and test a fallback path before it’s needed, not during the outage |
| Technology partner | Ambiguous ownership when the integration breaks | Define ownership boundaries, escalation paths, and a joint roadmap review cadence before problems occur, not while firefighting one |
Setting and holding boundaries
Every relationship in this note has a version that, left unmanaged, expands to consume all of engineering’s capacity: customer escalations, vendor firefighting, ad hoc sales support requests, and political maintenance can each individually feel urgent and justified in the moment, and collectively they can crowd out the roadmap entirely if an EM doesn’t actively defend capacity against them. The discipline that keeps this sustainable is treating “how much of the team’s time goes to reactive cross-functional work” as a number the EM tracks and defends explicitly — communicated in the same reporting cadence covered in Stakeholder Communication & Reporting — rather than an invisible tax that erodes the roadmap one seemingly-reasonable request at a time.
References
- roadmap.sh — Engineering Manager — the roadmap this knowledge base follows
- Team Topologies — Skelton & Pais, on interaction modes (collaboration, X-as-a-Service, facilitating) between teams, directly applicable to cross-team and cross-functional boundaries
- HBR — “Managing Your Boss” — Gabarro & Kotter’s classic on managing upward and across, foundational to influence without authority
- HBR — “The Necessary Art of Persuasion” — Conger, on building credibility and framing arguments across organizational lines
- Google SRE Book — “Managing Incidents” — relevant reference for vendor/partner escalation paths and incident communication discipline
- Camille Fournier — “The Manager’s Path” — chapters on managing up, sideways, and organizational dynamics for engineering managers
- AWS Well-Architected Framework — Reliability Pillar — practical guidance on dependency management, fallback design, and SLAs relevant to vendor management