Lời khuyên khi làm Project cùng nhau
Published: 2023-11-14 15:27:57

Mình đang là sinh viên năm 3, đã từng làm tương đối nhiều project môn học. Và mình đã đúc rút được rất nhiều kinh nghiệm qua những lần thất bại khi làm việc nhóm.

Việc đầu tiên mình khuyên các bạn là phải tuân thủ quy trình của một project. Ở đây, nhóm trưởng phải là người hiểu rõ quy trình, và hướng mọi người tuân thủ quy trình (có thể là những cuộc họp, phân chia công việc,...). Trong quy trình xây dựng 1 project (hoặc phần mềm,web,...) gồm có 4-5 bước:
- **B1: Làm rõ vấn đề**

> Trước khi đánh trận thì ít nhất các bạn cũng phải biết địch là ai, mình là ai chứ đúng không? Địch ở đây là project là gì, phải làm gì, input, output là gì, thậm chí thầy cô là ai (đùa đấy, chả ai nói thầy cô là địch cả :>)
 
- **B2: Thiết kế**

> Sau khi xác định được vấn đề, bài toán rồi thì bắt tay vào thiết kế chương trình thôi. Đa số các bạn sinh viên chưa có kinh nghiệm (thường thì các bạn sẽ được làm project từ năm 2, năm 3 nên cũng không có kinh nghiệm nhiều lắm) nên việc thiết kế chương trình hoàn hảo từ A đến Z thì khá là khó, nên thường bước này các bạn thường bỏ qua. Các bạn thường bắt tay vào code luôn, innovar luôn xong mới thiết kế. Mình khuyên các bạn là không lên làm như vậy nha. Hãy thiết kế trước, sơ qua cũng được thì mới sắp xếp, dễ chia việc, với cả dễ dàng bảo trì trong suốt quá trình làm project. Thiết kế đơn giản như các classes, methods, attributes, thậm chí database, các quan hệ,... Sau đó chia việc và quản lý code có phải dễ hơn đúng không nào

- **B3: Code**

> Bước này chắc mình không phải giải thích nhiều, các bạn biết bài toán, nhiệm vụ của mình rồi thì innovar thôi. Chắc các bạn IT thích nhất là phần này, vì được gõ máy tính. Có gì không hiểu thì hỏi nhóm trưởng, nhóm trưởng không rep thì hỏi Chat GPT, Claude, Bard,... Nói chung là bước này là bước chính nhưng mình ít thấy các bạn ngồi thiết kế, xây dựng bài toán là mấy. Thực ra mấy ông thiết kế, xây dựng bài toán, quản lý nhóm mới thực sự đỉnh nha (không phải nói tôi đâu, thực ra tôi thiết kế và code hết chứ cái team mình tạ quá. Đùa đấy tùy từng project thôi nhưng chưa project nào là mình không gồng gánh cái team này cả)

- **B4: Test**

> Lại đa số các bạn bỏ qua bước này, mình cũng thỉnh thoảng thế. Tại vì các bạn toàn để đến gần deadline mới làm (thường 1-2 tuần cuối gì đấy) nên có thời gian qué đâu mà test với cả deploy :))). Thực ra viết test cases cũng đơn giản mà chill mà. Thông thường các classes, methods sẽ do nhóm trưởng yêu cầu các bạn return về 1 giá trị nào đó, nên các bạn sẽ không thể chạy được classes đó trực tiếp. Nên các bạn sẽ phải tạo 1 file khác để test classes và methods đó (chuẩn ra là như thế). Hiểu ý mình không (chắc chắn không hiểu rồi, không hiểu thì để lại comment nha). Việc test lại chương trình sẽ khiến project của bạn trông chuyên nghiệp hơn rất nhiều

- **B5: Deploy**

> Thông thường project trên trường sẽ không thấy bước này mấy, deploy web lại phải mua server các thứ (tiền đâu ra? ai bỏ tiền? deploy xong để làm gì? cho đẹp à, đi khoe à?...). Hay deploy app, lại render ra mấy file .exe xong làm gì có ai tải, thầy cô bận trăm công nghìn việc ai mà rảnh tải hay clone project của ông về rồi chạy, dở à. Nên gần như 90% sẽ không phải deploy nhưng mà trên lab, đồ án cuối khóa thì cần nha, các bạn cũng nên học để cho đỡ bỡ ngỡ

(Hết Phần 1 nha, Phần 2 mình sẽ giới thiệu công cụ quản lý code - Git khi làm project nhóm)