Hỏi đáp kinh nghiệm làm việc nhóm chia module tạo môi trường làm việc như công ty

Tại các công ty thì thường 1 project sẽ được chia là các module cho các thành viên cung làm. Hiện tại em cũng có 1 team của mình đang học cung đại học. Em muốn hỏi kinh nghiệm trong việc chia module này ở các công ty và kinh nghiệm làm việc nhóm sao cho nó gần như 1 mô hình công ty nhỏ để làm các dự án trong tương lai ? Anh chỉ có thể chia sẻ được không ạ?

2 Likes

Cũng cùng sự quan tâm

không biết em làm dự án gì nên anh lấy ví dụ làm dự án web.
Mỗi trang web sẽ là mỗi module(chức năng). Nên sẽ có 2 việc phải làm là

  • tạo layout HTML
  • viết controller.
    Tùy theo trang web đó có business logic dễ hay khó thì ấn định ngày phải làm xong (hay còn gọi là deadline)
    Tránh việc viết câu sql trong controller, người ta tạo ra một class DAO để thao tác database. Mỗi table tương ứng cho một class DAO. (cái này thì tùy không bắt buộc).
    Tạo 1 class chứa costant, những hàm nào dùng chung thì có thể viết 1 class.

Mỗi tuần có thể họp 2-3 lần để coi tiến độ tới đâu.

4 Likes

@masoivn anh lấy ví dụ cho em một dự án làm app android được không ạ, em cảm ơn :smile:

1 Like

anh không làm android nên không biết chính xác. Anh sẽ giới thiệu 1 bạn. @GDGHN_AndroidTeam: có thể giúp mình được không.

2 Likes

Cùng sự quan tâm với @z8lucky :wink:

2 Likes

Mình thường làm thế này với team

  1. Họp team xác định ý tưởng yêu cầu dự án.
  2. ấn định thành viên thiết kế giao diện, thiết kế các sơ đồ, chuẩn bị môi trường làm việc có thời gian nộp cụ thể, thường là 1 tuần.
  3. họp thống nhất sơ bộ về ý tưởng, thiết kế giao diện , cơ sở dữ liệu, công nghệ sử dụng cho dự án, thiết lập môi trường làm việc nhóm như build server chung, tạo bitbucket , tạo server nexus để chia sẽ thư viện với nhau…
  4. Ấn định rõ quy trình làm việc , cách thức viết code , định nghĩa các tên dùng chung, yêu cầu viết unit test hay doc cho các method như thế nào…
  5. Set up project , mình dùng maven, chia nhỏ thành các module như client, service, business, dao …
  6. Phần ai nấy làm , giao diện, nghiệp vụ, tương tác database , service ( tạo RESTful, kết nối thực thi nghiệp vụ …, kết nối đến các nguồn tài nguyên)
  7. Làm xong thì ghép lại rồi bắt đầu giao cho tester kiểm thử nếu ok thì giao phần đó cho khách hàng.

Làm theo mô hình Scrum ^^~

Có những kỹ thuật cụ thể để có thể chia nhỏ ra làm như vậy như tạo server giả, database giả, tạo profile, mình không thể nói hết ra đây vì còn phụ thuộc ngôn ngữ bạn dùng, nhưng cơ bản nó là vậy.

5 Likes

Em học trường nào? Có học FU không?

App Android chả lẽ chia theo Activity :c

Em học UET, sao thế anh?

Cảm ơn bạn đã chia sẻ :grin:

Àh anh hỏi bạn @D_ng_Nguy_n_Van vì ở FU có một câu lạc bộ giúp được bạn ấy.

Thế anh có thể chỉ cho em về làm app android theo team được không ạ, tại em toàn làm một mình thôi :smile:

  1. Em viết ra userstory có dạng “Who” want to “do something”:
  • User muốn xem tất cả các user khác quanh mình.
  • User muốn xem profile của user khác
  1. Tiếp đó em viết tiếp vào mỗi câu vế trước và sau đoạn “This man” need “to be something” before và “This man” will “be something” after that.
  2. Dựa vào user story em sẽ có hai danh sách.
  • Danh sách thứ nhất là các đại từ => Em có danh sách Users Role
  • Danh sách thứ hai là các động từ => Em có danh sách Usercases
  1. Sau khi đã gợi mở được bài toán rồi thì em vẽ lại các usercases.
  • Nếu không biết vẽ thì em có thể vẽ ra giấy sao cho em nhìn được các tương tác giữa các usercase là được.
  • Với mỗi usercase lúc này em sẽ định nghĩa xem hệ thống của em phản hồi lại như thế nào?
  1. Dựa trên việc em biết hệ thống phản hồi ra sao nghĩa là em biết được sản phẩm của em cần phải làm gì.
  • Lúc này em sẽ lựa chọn công nghệ để hoàn thành các công việc em cần.
    VD:
  • Dùng gì để liên lạc với APi
  • Dùng gì để load ảnh.
  1. Khi đã lựa chọn xong, phần nào không chọn được em phải nghiên cứu xem làm như thế nào trước.
  2. Khi hoàn thành các bước trên em tiến hành estimate và gửi cho khách hàng để họ xem.
  3. Thống nhất được với khách hàng rồi thì em tiến hành chia module dựa trên các usercase.
  • Việc chia module này hiểu đơn giản là chia hệ thống thành các phần riêng biệt sao cho khi thay đổi một phần nào đó thì các phần khác sẽ không bị ảnh hưởng => Dựa trên kinh nghiệm là nhiều.
  1. Sau khi chia được module tức là em đã làm xong phần thiết kế hệ thống ở mức overview. Bước tiếp theo là detail design.
  2. Sau khi thiết kế xong hết thì bắt đầu code.
    Tuy nhiên các bước trên đây chỉ mang tính lí thuyết được mô tả trong giáo trình PMBox. Giờ lâu không đọc cũng vừa liệt kê vừa phịa thêm là chủ yếu. Về thực tế thì bọn anh hay thực hiện coding ngay từ bước thứ 8. Bước estimate thường làm nó dài ra thêm khoảng 25% để dành cho việc nghiên cứu trong lúc code luôn. Bỏ qua bước số 5 để estimate sớm cho khách hàng.
7 Likes

Cảm ơn anh nhiều nhiều.ahihi :heart_eyes:

em học ở đại học điện lực ạ?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?