Thuật Toán Rung Động Trái Tim
Chương 1: Ngày 100 – Báo động đỏ lúc 8 giờ sáng
Chương 1: Ngày 100 – Báo động đỏ lúc 8 giờ sáng
Tiếng chuông báo động ré lên rền rĩ, một thứ âm thanh điện tử chói tai, đứt đoạn và đầy đe dọa xé toạc không gian tĩnh lặng của văn phòng NovaPulse lúc tám giờ sáng. Chớp mắt, toàn bộ dàn đèn LED âm trần chạy dọc theo hành lang và không gian làm việc mở (open-plan) đồng loạt chuyển sang màu đỏ rực. Ánh sáng đỏ nhấp nháy liên hồi hắt lên những bức tường kính, biến văn phòng của một startup công nghệ từng hứa hẹn nhất khu thương mại đô thị Nam Thành thành một boong ke trú ẩn dưới thời chiến.
Đó không phải là báo cháy. Đó là "Báo động Kiểm toán" – một tính năng quái đản, đậm chất vĩ cuồng mà dàn founder đã yêu cầu team dev cài đặt từ những ngày đầu khởi nghiệp. Ban đầu, nó chỉ như một trò đùa nội bộ, được thiết lập để tự động kích hoạt khi dòng tiền (cash flow) trong tài khoản ngân hàng của công ty cán mốc báo động đỏ theo các điều khoản giải ngân từ quỹ đầu tư mạo hiểm. Một trò đùa mang phong cách Thung lũng Silicon mạ vàng. Nhưng hôm nay, khi trò đùa ấy thực sự vang lên, nó vang lên như một bản án tử hình không thể đảo ngược.
Bên trong phòng họp kính cường lực trong suốt mang tên "Oasis" – cái tên giờ đây nghe thật mỉa mai – không khí đặc quánh lại. Hơi lạnh phả ra từ hệ thống điều hòa trung tâm ở mức hai mươi hai độ dường như không đủ để làm dịu đi những giọt mồ hôi lạnh đang rịn ra trên trán của gần hai mươi con người đang ngồi quanh chiếc bàn oval bằng gỗ nguyên khối.
"Chúng ta còn đúng một trăm ngày," Đức cất giọng.
Âm sắc của anh trầm, phẳng, không mang theo lấy một gợn sóng hoảng loạn nào, rạch một đường dứt khoát qua những tiếng xì xào hoang mang và nhịp thở dốc của đám nhân viên. Anh đứng ở đầu bàn, áo sơ mi xám tro xắn lên đến khuỷu tay, cà vạt nới lỏng đúng một nấc. Ở Đức toát lên một thứ phong thái áp đảo bẩm sinh, một sự điềm tĩnh đến mức tàn nhẫn của một tay chơi poker chuyên nghiệp đang cầm trong tay những quân bài cuối cùng. Khuôn mặt góc cạnh, đôi mắt sâu sắc lạnh như dao mổ, anh quét cái nhìn qua từng khuôn mặt đang tái nhợt đi vì sợ hãi. Sự nghiệp, tiền đồ, và cả những hóa đơn trả góp căn hộ chung cư đang lơ lửng trên đầu họ.
Đức gõ nhẹ đốt ngón tay xuống mặt bàn, âm thanh khô khốc vang lên, thu hút toàn bộ sự chú ý về phía màn hình tương tác khổng lồ phía sau anh.
"Tôi vừa bước ra khỏi cuộc gọi với Hội đồng quản trị. Quỹ đợt hai đã bị đóng băng hoàn toàn. Các nhà đầu tư đã kích hoạt điều khoản 'Life Support' lúc bảy giờ ba mươi phút sáng nay. Điều đó có nghĩa là gì?" Đức ngưng lại một tích tắc, để sức nặng của từng từ ngữ rơi tõm vào tâm trí những người có mặt. "Nghĩa là nếu chúng ta không tung ra được phiên bản Nova 2.0 với chỉ số giữ chân người dùng (Retention Rate) tăng gấp ba lần trong vòng một trăm ngày tới, NovaPulse sẽ chính thức đệ đơn phá sản. Không có phép màu nào cả. Không có thiên thần đầu tư nào sẽ vung tiền cứu chúng ta vì lòng thương hại."
Một sự im lặng chết chóc bao trùm phòng họp. Tiếng chuông báo động bên ngoài vẫn chưa chịu tắt, vọng vào qua những lớp kính dày nghe như tiếng tim đập hỗn loạn của một cơ thể đang hấp hối.
Ở góc cuối bàn, xa nhất so với vị trí của Đức, Xuân khẽ chép miệng.
Cô thong thả xoay cốc cà phê đen đặc trên tay, thứ chất lỏng sóng sánh màu hắc ín là nhiên liệu duy nhất giữ cho cô tỉnh táo. Đôi mắt Xuân in hằn những quầng thâm nhạt – minh chứng cho ba đêm liên tiếp cày bừa với hệ thống server bị nghẽn cổ chai. Xuân là Tech Lead, người nắm giữ linh hồn kỹ thuật, cũng là người dọn rác bất đắc dĩ cho những chiến dịch marketing điên rồ của cái công ty này. Trái ngược hoàn toàn với sự chỉn chu đến mức khắc kỷ của Đức, Xuân mang vẻ bụi bặm, bất cần của một kẻ sống quá lâu trong thế giới mã code: áo hoodie đen quá khổ giấu kín những đường nét cơ thể, mái tóc rối được kẹp vội bằng một chiếc kẹp nhựa đã gãy mất hai răng, và một nụ cười nhếch mép luôn túc trực trên môi.
"Một trăm ngày?" Xuân hất cằm, giọng nói mang theo âm mũi nhẹ nhàng nhưng sắc lẹm như cứa vào không khí. "Anh định gọi hồn đám code cũ từ thời khủng long dậy viết tiếp à? Hay anh định bắt team dev cắm thẳng ống truyền nước biển vào tĩnh mạch để gõ phím mười bốn tiếng một ngày, bảy ngày một tuần? Báo cho anh biết, luật lao động vẫn còn tồn tại ở thành phố này đấy."
Đức đưa mắt nhìn cô. Khoảnh khắc ánh mắt hai người va vào nhau, không khí trong phòng như giảm đi thêm vài độ. Đó là một tia lửa ngầm của sự đối đầu đã thành thương hiệu giữa hai thế lực lớn nhất NovaPulse: Product và Engineering. Một bên là tư duy kinh doanh tàn nhẫn, luôn hướng tới kết quả; một bên là sự tự tôn của dân kỹ thuật, bảo vệ sự toàn vẹn của kiến trúc hệ thống.
"Tôi không gọi hồn, và tôi cũng không vi phạm luật lao động," Đức điềm nhiên đáp, khóe môi hơi nhếch lên, tạo thành một vệt mỏng manh khó nắm bắt. Anh lướt ngón tay trên iPad, trên màn hình lớn lập tức hiện ra một bản đồ Roadmap chằng chịt các mốc thời gian, nhưng lại được phân bổ với một sự logic đến đáng sợ. "Tôi gọi đây là Sprint 100. Một kế hoạch sinh tồn được thiết kế dựa trên chính những gì chúng ta đang có, chứ không phải những gì chúng ta mơ ước."
Xuân rướn người tới trước, ánh mắt sắc như dao quét nhanh qua các gạch đầu dòng trên màn hình. Đôi mày thanh tú của cô dần chau lại, sự cợt nhả trên mặt biến mất, nhường chỗ cho sự tập trung cao độ của một con dã thú đang đánh giá con mồi.
"Tích hợp cổng thanh toán động trong vòng hai tuần? Tái cấu trúc toàn bộ database sang kiến trúc microservices trong tuần thứ ba? Chạy A/B testing cho thuật toán gợi ý ngay trong tháng đầu tiên?" Xuân lẩm bẩm, rồi bật cười một tiếng chua chát. Cô đặt mạnh cốc cà phê xuống bàn, tiếng 'cạch' vang lên khô khốc.
"Anh Đức này," Xuân ngước lên, nhìn thẳng vào gã PM đang đứng sừng sững kia. "Anh đang vẽ hươu vẽ vượn trên xương máu của team dev đấy à? Đừng áp dụng mấy cái lý thuyết Agile viển vông trong sách giáo khoa vào một mớ hỗn độn tech debt (nợ kỹ thuật) mà các anh đã đẻ ra từ sáu tháng trước chỉ để chạy KPI. Cổng thanh toán API hiện tại đang dính chặt với core system như một khối ung thư di căn. Cắt nó đi bằng cách thông thường, hệ thống sẽ sập toàn diện. Anh đòi giải quyết nó trong hai tuần? Nằm mơ đi! Trừ khi anh mời được pháp sư về code."
Sự gay gắt của Xuân khiến mấy junior dev và cả những quản lý cấp trung ngồi cạnh khẽ rụt cổ lại, không ai dám thở mạnh. Trong giới công nghệ ở cái đô thị phồn hoa ngột ngạt này, Xuân nổi tiếng là một con sói đơn độc với tư duy thuật toán sắc bén xuất chúng và miệng lưỡi không kiêng nể bất kỳ ai. Cô nhìn thấu mọi chiêu trò đẩy deadline, mọi thủ thuật ép tiến độ của đám PM.
Tuy nhiên, Đức không hề tỏ ra bực dọc trước sự phản kích dữ dội ấy. Trái lại, trong não bộ của một chuyên gia phân tích hành vi luôn ẩn mình dưới lớp vỏ PM, anh đang quét qua mọi vi biểu cảm của cô. Cái nhếch mép, nhịp gõ ngón tay dồn dập lên mặt bàn, độ cao của giọng nói – tất cả đều là dữ liệu. Anh biết rõ từng phản xạ phòng vệ của Xuân. Cô không phản ứng vì sợ hãi khối lượng công việc, cô nổi đóa vì cảm thấy sự vẹn toàn của logic kỹ thuật bị xúc phạm. Đó không phải là sự bất lực của một kẻ lười biếng, mà là sự bất mãn của một bộ óc thiên tài đang bị bó buộc trong những đoạn code mục nát.
"Cô nói hoàn toàn chính xác, Xuân," Đức thong thả chắp hai tay ra sau lưng, bước chậm về phía cô. "Nếu chúng ta làm theo cách cũ, theo những quy trình chuẩn mực, việc tháo gỡ cổng thanh toán cũ sẽ tốn ít nhất hai tháng. Thậm chí là ba, với rủi ro hỏng hóc lên đến bốn mươi phần trăm."
Anh dừng lại ngay sau lưng cô, hơi cúi người xuống. Mùi nước hoa nam tính hòa lẫn với mùi giấy in phả vào không gian mệt mỏi của Xuân.
"Nhưng," Đức đưa tay bấm chiếc điều khiển, màn hình lập tức chuyển sang một bản vẽ kiến trúc hệ thống backend hoàn toàn xa lạ với đa số người trong phòng. "Nếu chúng ta sử dụng kiến trúc Event-Driven, tách rời hoàn toàn module xử lý giao dịch ra khỏi core monolith... Và quan trọng nhất, nếu chúng ta tận dụng bộ thư viện abstraction mà một ai đó đã âm thầm viết, commit lên Git và ném vào nhánh 'experimental_do_not_touch' cách đây tròn ba tháng... thì mọi chuyện lại hoàn toàn khác."
Bàn tay đang định vươn tới cốc cà phê của Xuân khựng lại giữa không trung. Nhịp thở của cô chệch đi một nhịp. Đáy mắt cô xẹt qua một tia sững sờ kinh ngạc, một thứ cảm xúc mà cô luôn kiêu hãnh giấu kín giờ đây lại bị lột trần.
Ba tháng trước.
Đó là khoảng thời gian tăm tối nhất của hệ thống, khi server sập lần thứ hai trong một tuần vì lưu lượng truy cập ảo. Trong những đêm thức trắng chửi rủa sự ngu ngốc của kiến trúc cũ, Xuân đã cắn răng ngồi tự mình viết lại một bộ thư viện nền tảng mới, thiết kế theo hướng module hóa hoàn toàn. Nó thanh lịch, tối ưu và đẹp đẽ như một tác phẩm nghệ thuật toán học. Nhưng vì áp lực release các tính năng rác rưởi để làm đẹp số liệu từ ban giám đốc, cô chưa bao giờ có cơ hội merge nó vào nhánh chính (main branch). Nó nằm chết im lìm trong một góc tối của kho lưu trữ, một "đứa con tinh thần" bị lãng quên mà cô đinh ninh ở cái công ty ngập đầu trong rác này sẽ chẳng có ai đủ trình độ để buồn ngó tới.
Vậy mà hắn biết.
Hắn không chỉ nhìn thấy, mà còn đọc hiểu nó. Hắn đã dành thời gian để nghiên cứu từng dòng code, phân tích cấu trúc dữ liệu của cô. Hắn đã xây dựng toàn bộ cái tối hậu thư sinh tử 100 ngày này – cái Sprint 100 có vẻ như điên rồ kia – dựa trên chính phong cách viết code, trên tư duy kiến trúc vĩ mô của cô. Bản kế hoạch này không phải là sự áp đặt mù quáng của một gã PM mộng du. Nó là sự bóc trần, thừa nhận và kích hoạt trọn vẹn năng lực kỹ thuật mà Xuân đã cố tình giấu giếm vì thất vọng với môi trường xung quanh.
Đức nhìn thẳng vào ánh mắt đang mở to của cô, giọng nói hạ xuống nửa tông, biến thành một tần số thấp chỉ đủ để xuyên thủng bức tường phòng vệ kiêu hãnh của vị nữ Tech Lead.
"Tôi đã đánh giá lại toàn bộ logic trong nhánh code đó của cô, từng hàm một," Đức nói, ngữ khí mang theo một sự trân trọng kỳ lạ, hiếm hoi. "Đó không phải là đồ nháp. Đó là kiệt tác. Nó chính là chiếc phao cứu sinh duy nhất của NovaPulse lúc này. Sprint 100 không được tính toán dựa trên tốc độ code trung bình của một team dev rệu rã. Nó được tính toán dựa trên giới hạn tốc độ mà kiến trúc của cô có thể chịu đựng, và dựa trên sự chỉ huy của cô."
Không khí trong phòng họp dường như vừa trải qua một đợt biến đổi áp suất. Những thành viên khác vẫn lơ ngơ chưa hiểu tường tận cái nhánh code chết tiệt kia là gì, và điều gì vừa xảy ra giữa hai con người đầu sỏ. Nhưng Xuân thì hiểu quá rõ.
Hắn đang chơi một ván bài tâm lý bậc thầy. Hắn biết cô ghét bị sai bảo, ghét sự ngu dốt và những kế hoạch vô lý. Thế nên, hắn biến bản kế hoạch cứu rỗi công ty này thành của cô. Hắn đặt cô lên bệ phóng, trao cho cô quyền trượng, buộc cô vào thế phải tự mình bảo vệ và chứng minh sự vĩ đại của chính những dòng code mà mình đã viết ra. Một nước cờ quá mức ranh ma, lợi dụng triệt để lòng tự tôn nghề nghiệp của cô, nhưng lại vô cùng tinh tế và thấu hiểu.
Xuân mím môi, cắn nhẹ vào bên trong má. Cảm giác bực bội vì bị nhìn thấu tâm can đan xen với một sự hưng phấn kỳ lạ len lỏi trong từng nơ-ron thần kinh. Đã bao lâu rồi ở cái chốn đô thị xô bồ này, mới có một kẻ hiểu được thứ ngôn ngữ thầm lặng mà cô gửi gắm qua những khối lệnh khô khan?
Bề ngoài, Đức và Xuân như nước với lửa, một kẻ tư bản lạnh lùng và một nghệ sĩ kỹ thuật bất cần, luôn chực chờ thiêu rụi nhau trong mỗi cuộc họp. Nhưng sâu thẳm bên dưới lớp vỏ bọc ấy, qua cách họ giải quyết vấn đề, lại tồn tại một sự đồng điệu sắc bén đến đáng sợ. Họ đều là những kẻ nhìn thấy trật tự trong sự hỗn loạn.
Cô ngước lên, khóe môi lại nhếch lên, nhưng lần này hoàn toàn không phải là nụ cười châm biếm thường ngày. Đó là ánh mắt rực lửa của một chiến binh vừa nhận được lời thách đấu từ một đối thủ xứng tầm.
"Nhánh code đó của tôi chưa từng được test tải (load testing) trên môi trường production," Xuân gõ nhẹ đốt ngón tay lên bàn, nhịp điệu đã trở lại bình tĩnh, chắc chắn và đầy quyền lực. "Nếu áp dụng, anh phải chấp nhận rủi ro hệ thống sẽ có downtime gián đoạn trong ít nhất ba ngày đầu tiên của quá trình chuyển đổi data. Và quan trọng nhất, tôi cần toàn quyền quyết định về mặt kỹ thuật, về resource của dev team. Không có bất kỳ sự can thiệp, đòi hỏi hay thay đổi scope (phạm vi công việc) nào từ phía Product nếu không được tôi thông qua bằng văn bản."
"Đồng ý," Đức chốt hạ ngay tắp lự, không một giây chần chừ, như thể anh đã dự tính trước từng từ trong bản yêu sách của cô và chỉ chờ cô thốt lên. "Cô có toàn quyền dưới tầng server. Tôi sẽ lo việc dọn dẹp các chướng ngại vật từ Hội đồng quản trị và bên kinh doanh. Một trăm ngày. Đồng hồ bắt đầu đếm ngược từ giây phút này."
Bên ngoài, tiếng báo động dường như cuối cùng cũng đã bị ai đó trong đội bảo trì ngắt đi. Không gian trả lại sự im lặng, nhưng giờ đây là một sự tĩnh lặng căng như dây đàn, chất chứa sinh khí của một cỗ máy chuẩn bị khởi động ở mức công suất tối đa. Cuộc chiến sinh tử của NovaPulse đã không bắt đầu bằng những lời hô hào sáo rỗng hay những giọt nước mắt ủy mị, mà nó bắt đầu bằng một bản hiệp ước ngầm, một sự giao phó sinh tử giữa gã PM lạnh lùng và cô Tech Lead gai góc.
Xuân đứng dậy vươn vai, kéo lại khóa áo hoodie cho ngay ngắn, ôm lấy chiếc laptop dán đầy những sticker lập trình đã sờn cũ.
"Xong cái buổi họp báo vô bổ này được chưa?" Cô quét mắt nhìn quanh những khuôn mặt vẫn còn đang sững sờ của đám nhân viên, rồi quay sang Đức. "Tôi còn phải đi pha một bình cà phê mới và đánh thức cái nhánh code chết tiệt kia dậy. Các người thắt dây an toàn vào đi."
Nói đoạn, cô sải bước thẳng ra cửa, bóng dáng gầy guộc nhưng đầy kiên định khuất sau dãy hành lang.
Nhìn theo bóng lưng cô, Đức khẽ thở phào một hơi cực nhẹ, một động tác lơi lỏng cơ bắp hiếm hoi mà không ai kịp nhận ra. Bàn tay đang chắp sau lưng của anh từ từ nới lỏng. Sprint 100 đã chính thức lăn bánh. Ván cược lớn nhất trong sự nghiệp của anh, và có lẽ là của cả cô, vừa mới bắt đầu, trong âm vang câm lặng của một thành phố không bao giờ ngủ.