Kinh nghiệm phát triển dự án phức tạp, nhiều người

 

Phần 1 - Tuân thủ

Sau bao nhiêu thời gian sấp mặt thì nay đã có thời gian để chia sẻ dài một chút với anh em, và mình nghĩ bài viết này sẽ có nhiều giá trị dựa trên những kinh nghiệm thực tế trong dự án cực kỳ phức tạp, nhiều người tham gia, mong anh em đón nhận nhé.
Dự án 5 người cũng là 5 tính cách, 5 năm quan điểm khách nhau, 10 người hay 100 người cũng vậy. Chính vì thế mà dự án 5 người có khi còn dễ hoàn thành hơn là 10 người bởi vì nó dễ giao tiếp và quản lý hơn.
Một trong những điểm khó nhất của làm dự án đó là sự tuân thủ theo các nguyên tắc và các design pattern sẵn có. Vì sao vậy? Vì dự án phức tạp, gấp gáp, có những thời điểm tất cả cùng tạo pull request, thay đổi specs, các team ping nhau liên tục cảm giác nó cực kỳ rối và căng thẳng, lúc đó chỉ muốn LGTM rồi nhấn nút merge cho xong rồi đến đâu thì đến.
Đã vậy có những cái mà mỗi người có một quan điểm khác nhau, ví dụ thay vì dùng style thì dùng 1 biến đại diện mà 2 người đi thuyết phục 1 người không được, đấy là khi những quan điểm khác nhau xung đột mà không giải quyết khéo léo thì team kiểu gì cũng bất ổn.
Mã nguồn mỗi lúc một lớn, làm React mỗi người lại tạo ra 1 cái Provider riêng cho mỗi loại component dùng chung mà mình cảm thấy cần thiết, rồi thì mỗi component ví dụ như mỗi loại modal có hình thù khác nhau lại 1 lớp khác nhau, vân vân và mây mây...
Tuy nhiên cho dù rối bời, phức tạp đến đâu cũng cần có một khoảng bình tĩnh lại để mình nhìn tổng quan lại mã nguồn của dự án, hy sinh thời gian, chấp nhận làm ngoài giờ chậm tiến độ lại một chút để common hoá lại mọi thứ, đưa mọi thứ về quy củ trật tự trước khi mọi chuyện trở nên quá muộn.
Mình đã phải gom tất cả các thể loại modal về một số loại như alert, message, sign, unlock. Gom tất cả các provider, các navigation nằm rải rác về một chỗ để dễ quản lý theo dõi. Bỏ tất cả các design pattern không cần thiết và sử dụng mô hình store-state hay nói chính xác hơn là sử dụng observe design pattern làm xương sống.
Cũng phải nói rằng mình may mắn khi có những cộng sự chất lượng, khi có thể cùng hiểu được ý tưởng của nhau và cùng nhau gạt bỏ những suy nghĩ riêng để tuân thủ theo những nguyên tắc chung.
Bây giờ bình tĩnh lại có thể thở phảo nhẹ nhõm, nếu cứ mải miết tạo ra đủ loại mã nguồn để hoàn thành chương trình, hoàn thành tính năng cho chạy được trước thì giờ này chắc chắn vẫn còn ngồi fix bug và giải trình lý do tại sao lại chậm tiến độ rồi.
Vậy nên mình cũng hy vọng rằng các anh em cũng sẽ tạo ra những dự án thành công bằng cách cùng nhau tuân thủ những gì nhóm đã đặt ra, code sao cho gọn gàng để không ngập chìm trong đống bug do chính mình tạo ra nhé!