Chuyện này, nói ra thì dài dòng lắm, nhưng mà nó cứ ám ảnh tôi mãi. Hồi đó, tôi mới chân ướt chân ráo vào cái nghề này, còn hừng hực khí thế lắm. Nhớ lúc đó, sếp quăng cho tôi cái dự án, bảo là “thử sức xem mày làm được tới đâu”. Nghe thì oai oai, nhưng thực ra là đổ vỏ đó các ông ạ.
Dự án là phát triển một cái hệ thống quản lý kho hàng cho một đối tác lớn. Ban đầu, tôi cứ nghĩ đơn giản lắm, đọc qua yêu cầu thì thấy cũng na ná mấy cái mình từng học trên trường. Nào là nhập xuất, tồn kho, báo cáo… Nhưng mà đụng vào mới thấy, nó như cái mớ bòng bong vậy đó.
Bắt đầu từ đâu? Đó là câu hỏi đầu tiên tôi tự hỏi mình. Tôi bắt tay vào việc, việc đầu tiên là ngồi xuống, hì hụi vẽ ra cái kiến trúc. Tôi chọn dùng .NET Core và Angular cho frontend, vì hồi đó tôi cũng mới học qua, thấy nó hay ho, mạnh mẽ. Tôi tin tưởng vào sự lựa chọn của mình lắm.
Tôi mày mò đọc đủ thứ tài liệu, từ docs chính thức cho tới mấy cái bài blog lặt vặt trên mạng. Học hỏi từ đầu, từ cách cấu trúc thư mục, đặt tên biến, cho tới việc thiết kế database. Mấy đêm liền tôi cứ cắm cúi, quên cả ăn quên cả ngủ. Cà phê thì cứ pha liên tục, hết ấm này đến ấm khác. Mắt lúc nào cũng thâm quầng.

Sau cả tháng trời vật lộn với mấy cái dòng code, cuối cùng thì tôi cũng dựng lên được cái sườn cơ bản. Nhìn nó chạy được mấy chức năng đơn giản, tôi thấy sướng gì đâu. Cảm giác như mình chinh phục được một ngọn núi vậy đó. Tôi khoe với sếp, sếp cũng gật gù bảo “được, mày cứ thế mà phát huy”.
Những cú vấp đầu tiên
Nhưng mà đời đâu có như mơ. Khi tôi bắt đầu tích hợp mấy cái API của đối tác, thì vấn đề nó cứ nhảy ra liên tục. Cái format dữ liệu bên họ gửi về một đằng, cái mình thiết kế một nẻo. Lại mất thêm mấy ngày nữa để ngồi fix, ngồi map từng trường một. Nhiều lúc tôi chỉ muốn đập bàn phím cho xong.
Rồi đến cái phần báo cáo. Đối tác yêu cầu đủ thứ phức tạp. Nào là báo cáo theo ngày, theo tuần, theo tháng, rồi theo từng loại sản phẩm, từng nhà cung cấp. Mà mỗi loại báo cáo lại có hàng tá cái tiêu chí con con. Tôi ngồi tính toán logic mà đầu óc cứ quay mòng mòng. Có lúc tôi cứ nghĩ mình làm sai hết rồi, không biết bắt đầu lại từ đâu.
Có đêm, tôi làm đến gần 3 giờ sáng, mệt mỏi quá, gục luôn trên bàn phím. Sáng hôm sau tỉnh dậy, thấy mình vẫn còn nguyên cái tư thế đó, lưng thì đau ê ẩm. Nhìn mấy dòng code ngổn ngang trên màn hình, tự dưng thấy nản vô cùng. Tôi cứ tự hỏi, liệu mình có thật sự hợp với cái nghề này không?
Tôi liên tục gặp vấn đề. Fix được chỗ này thì chỗ khác lại bung bét. Nào là lỗi performance khi truy vấn dữ liệu lớn, nào là giao diện bị vỡ trên mấy trình duyệt cũ, nào là mấy cái bug lặt vặt mà cứ lâu lâu nó lại xuất hiện một lần, khó debug kinh khủng. Cảm giác như mình cứ chạy đuổi theo mấy cái lỗi đó, không bao giờ bắt kịp.
Sếp thì cứ giục, đối tác thì cứ gọi điện hỏi tới nơi. Áp lực kinh khủng. Tôi bắt đầu mất ngủ, ăn không ngon. Nhiều lúc tôi ngồi nhìn vào màn hình máy tính mà đầu óc trống rỗng, không biết phải làm gì tiếp theo.
Cái kết mà không phải là kết
Sau gần nửa năm trời quần quật, dự án cuối cùng cũng hoàn thành một cách “tạm ổn”. Tức là, nó chạy được, nhưng mà không mượt mà như tôi mong đợi. Vẫn còn đó mấy cái “lỗi vặt” mà tôi cứ tạm gọi là “đặc trưng của hệ thống”. Đối tác nhận bàn giao, họ cũng không phàn nàn gì nhiều, nhưng tôi biết, trong lòng họ cũng chẳng vui vẻ gì.
Tôi thì kiệt sức hoàn toàn. Đến khi bàn giao xong, tôi thở phào nhẹ nhõm, nhưng không hề có cái cảm giác chiến thắng như mình từng tưởng tượng. Thay vào đó là một sự trống rỗng lạ thường. Dự án này, nó không thất bại, nhưng cũng chẳng thể gọi là thành công rực rỡ. Nó cứ lửng lơ giữa thắng và thua, như thể cả tôi và cái dự án đều không có người thắng, cũng chẳng có người bại.
Nó cứ như một trận đấu mà trọng tài thổi còi kết thúc khi tỉ số vẫn hòa, không ai thực sự ghi bàn quyết định. Tôi học được rất nhiều thứ từ nó, về kỹ thuật, về quản lý dự án, và đặc biệt là về việc đối mặt với áp lực. Nhưng cái cảm giác không trọn vẹn đó thì cứ đeo bám tôi mãi. Nó dạy tôi rằng, không phải lúc nào mọi chuyện cũng rõ ràng thắng thua, có những trận chiến, kết quả cuối cùng chỉ là một sự dang dở.
