Nối tiếp phần một của bài viết Come back – Trở lại với dự án Java thì bây giờ tôi sẽ tiếp tục câu chuyện còn dang dở của phần trước.

Là một lập trình viên còn non kém thì việc code cho chạy được là một thành tựu lớn rồi, tuy nhiên cái này nó sẽ đem lại hệ lụy về sau, việc code vô tội vạ sau này sẽ ảnh hưởng rất lớn tới source code khi khách hàng có yêu cầu chỉnh sửa thêm chức năng mới. Tôi đã rơi vào một trường hợp như vậy, ở giai đoạn làm thiết kế chi tiết thì ai làm màn hình nào thì khi coding sẽ code luôn màn hình đó, tôi đã nhận phải màn hình khó, đối với tôi đó là khó, còn những người khác thì tôi không biết.

Màn hình này đòi hỏi về tư duy mọi mặt với cả kiến thức về javascript phải ở mức giỏi, màn hình của tôi nghiệp vụ chính là tạo khóa học, bài học và chỉ định nội dung cho bài học đó. Về quan hệ dữ liệu thì một khóa học thì có nhiều bài học, một bài học thì có nhiều nội dung. Bài học thì có thêm chi tiết của bài học. Nói chung là nhiều màn hình luồng đi nó hơi lằng nhằng, phức tạp, việc lưu giữ lại data khi di chuyển màn hình rất chi là rắc rối. Tư duy lúc đó của tôi chưa đủ level để làm những màn hình kiểu này, có thể mọi người đang nói “Thằng này sida quá, như vậy mà không làm được”. Đúng vậy, lúc đó tôi sida thật, về xử lý javascript của màn hình đó thì khách hàng đã code sẵn cho tôi đi kèm với giao diện html, css rồi. Tuy nhiên file js đó rất là nhiều code và cao siêu, việc đọc nó thôi đã đuối rồi, việc kiểm soát nó càng đuối hơn.

Tôi nghĩ chỉ có master js thì mới có thể viết ra được cái file này, khi nhận màn hình xong, leader cho chúng tôi tự estimate thời gian làm màn hình. Estimate có nghĩa là ước lượng thời gian để hoàn thành một task hay màn hình của mình. Code còn chưa xong nữa mà cho tự estimate thì bố ai mà làm được, trong khi còn chưa hiểu rõ về màn hình của mình cách code thế nào, bản thân những người vào trước còn chưa có kinh nghiệm để estimate thì làm sao mà tôi làm được, tuy nhiên leader vẫn cố chấp cho mọi người estimate, sau khi tự mình ước lượng thời gian làm thì leader sẽ xem lại, một số đứa thì được giữ nguyên số giờ làm, một số đứa thì bị ém giờ làm xuống, sau khi đi qua khách hàng thì họ lại ém thêm một số giờ đi nữa. Nói về khách hàng, ở phần một tôi có nói là khách hàng này rất là bựa, họ trả giá từng giờ một, ví dụ khi tôi estimate màn hình này code trong 28h thì bên khách hàng nói code 20h là được rồi. Anh leader im ru âm thầm chấp nhận với số giờ đó, không có một tiếng nói nào cả, ở vị trí leader nếu như bạn làm hài lòng khách hàng thì sẽ làm mất lòng member trong team, còn nếu cãi với khách hàng, khách không đưa việc làm nữa là ăn hành ngay với cấp trên khác. Bởi vậy anh leader này im ru thôi, member sẽ khổ và OT đều đều.

Trở lại với màn hình của tôi, tôi cũng là một nạn nhân trong vụ ém số giờ đó, tất nhiên là member làm thuê thì tôi cũng không có ý kiến được gì về số giờ đã cho, chấp nhận nếu làm trễ thì OT, việc OT lúc này mà nói thì tôi đang suy nghĩ là OT là cống hiến hết mình cho công ty, làm vì đam mê thôi tiền bạc gì :)). Tôi nói hoàn toàn là sự thật về suy nghĩ của tôi lúc này. Tôi lại bắt tay vào code và code, trễ vẫn sẵn sàng OT, vì màn hình khá là khó nên tôi không kiểm soát được luồng data xử lý của nó, làm toàn bug là bug, khi anh leader chạy lên màn hình gặp bug đưa tôi sửa, sửa xong chạy lại ra bug khác, nói chung là bug ra liên tục lặp đi lặp lại, đến nỗi hai anh em ngồi tới 10h đêm để fix bug vì sắp tới deadline giao hàng. Đến ngày giao hàng thì chạy cũng tạm ổn, tôi bị đánh giá là tệ trong team, tôi rất buồn về việc này, chán nản muốn bỏ cuộc chơi, nỗi buồn lại thêm khi khách hàng nghiệm thu và bug lại về, lần này khách hàng chạy test những trường hợp mà không ai ngờ tới, việc fix bug vẫn tiếp tục và fix bug này lại lòi ra bug kia, vấn đề nan giải lại bắt đầu trong cái vòng luẩn quẩn đó.

Sau vài ngày fix bug thì cũng đã xong hoàn toàn, khách hàng cũng không còn gửi bug về thêm nữa, trải qua giai đoạn này tôi đi ngủ cũng nằm mơ thấy bug, thật là đáng sợ mà. Sau giai đoạn đáng sợ này thì tiếp tục sang giai đoạn đáng sợ khác không kém nữa. Dự án này có nhiều phase(giai đoạn), sau khi giao hàng lần đầu tiên thì đó là phase1, tiếp đến phase2 thì đó là thêm tính năng cho màn hình và màn hình trước đó của tôi cũng không thoát khỏi việc đó, việc code ẩu, code cho chạy trước kia đã dẫn đến hệ lụy giờ đây, việc code không có tính mở rộng dẫn đến thêm tính năng mới rất là khó khăn, tôi đã rất vất cả trong việc vừa phải đảm bảo code mới chạy được và code cũ không bị ảnh hưởng gì. Sau khi phase2 kết thúc thì phía khách hàng nghiệm thu và chuẩn bị tài liệu để cho phase3, và chỉ giữ lại vài người để tiếp tục dự án, đến đây thì team cũng tan rã, một số người code cứng thì sẽ được giữ lại để làm tiếp còn cùi cùi như tôi thì sẽ sang dự án khác để làm. Sau này tôi chuyển sang team khác và làm dự án khác, một số người ở lại vẫn tiếp tục phase3 và khách hàng vẫn như vậy trả giá từng giờ, làm mọi người OT ngập mặt. Mãi đến khi tôi nghỉ việc chuyển sang công ty khác thì nghe nói mọi người vẫn tiếp tục làm phase4 và khách hàng vẫn như vậy, tới giai đoạn này thì dự án đã nắm đằng chuôi rồi, leader đến nay đã trưởng thành và không sợ khách hàng nữa :)). Nghe nói dự án này đã dừng lại và không còn hợp tác với khách hàng này nữa.

Đến đây cũng đã kết thúc bài viết, tới đây tôi vẫn chưa nghỉ ở công ty này nhé, tôi làm hai dự án nữa thì sau đó sẽ nghỉ, bài viết sau vẫn sẽ còn kể về hai dự án cuối cùng tại công ty. Sau bài viết thì mình vẫn sẽ rút ra kinh nghiệm của mình sau những dự án, để mọi người sẽ không phải gặp phải khi đi làm.

1. Nhắn nhủ tới những anh leader rằng, nên nhìn nhận năng lực của mỗi người cho tốt để giao những task phù hợp với năng lực của họ để tránh việc làm không nổi và phát sinh nhiều vấn đề.
2. Không phải sau khi đi làm là sẽ không học nữa, việc cập nhật những kiến thức công nghệ là điều rất cần thiết, đừng ngủ quên trong chiến thắng sau khi tốt nghiệp là quên đi rằng công nghệ, ngôn ngữ đang update hàng ngày, việc đuổi theo có thể không kịp nhưng đừng dậm chân tại chỗ.
3. Khi làm dự án, task mà cảm thấy làm không nổi thì hãy báo lại với leader, để leader giao lại cho những người giỏi.
4. Đừng sợ bug, mặc dù tôi cũng đã rất sợ nhưng tôi khuyên mọi người là khi gặp bug thì đừng sợ nó nhé.
5. Hãy nghiên cứu công nghệ liên tục, bạn chuyên về cái gì thì nghiên cứu cái đó, công nghệ update từng ngày và đừng để chúng ta dậm chân tại chỗ

Và các bạn đừng quên share bài viết và theo dõi fanpage để theo dõi những bài viết mới nhất nhé.
Cám ơn mọi người đã quan tâm theo dõi.