You are on page 1of 21

CHAPTER 4: TEAMS

NHÓM 5 :
B20DCCN664 - TRẦN THANH THẾ
B20DCCN197 - HOÀNG MINH ĐỨC
B20DCCN717 - PHẠM NGỌC UYN
Mục tiêu học tập

• Tổ chức đội
• Cách tiếp cận nhóm dân chủ
• Cách tiếp cận nhóm lập trình viên trưởng cổ điển
4.1 Team Organization
Hầu hết các sản phẩm đều quá lớn để được hoàn thành bởi một chuyên
gia phần mềm duy nhất trong ràng buộc thời gian nhất định.

Do đó, sản phẩm phải được giao cho một nhóm chuyên gia

Tương tự, nhiệm vụ thiết kế có thể được chia sẻ giữa các thành viên của
nhóm thiết kế.chuyên gia
4.1 Team Organization

Giả sử : Có một sản phẩm được viết mã trong vòng 3 tháng, mặc dù có liên
quan đến 1 người-năm viết mã

Giải Pháp: Nếu một lập trình viên có thể viết mã sản phẩm trong 1 năm, bốn
lập trình viên có thể làm việc đó trong 3 tháng.

Vô lí:
- Bốn lập trình viên chắc sẽ mất gần một năm
- Chất lượng của sản phẩm thường thấp hơn
Chia sẻ nhiệm vụ
Một số nhiệm vụ có thể được chia sẻ, nhưng những nhiệm vụ khác phải được
thực hiện riêng lẻ

Ví dụ:
-Nếu một người nông dân có thể hái một ruộng dâu trong 10 ngày, thì mười
người nông dân có thể hái cùng một ruộng dâu trong 1 ngày
-Một con voi có thể sinh ra một con voi con trong 22 tháng, nhưng 22 con voi
không thể sinh ra con bê đó trong 1 tháng
Chia sẻ nhiệm vụ
-Không giống như sản xuất voi, có thể chia sẻ các nhiệm vụ thực hiện giữa
các thành viên trong nhóm bằng cách phân phối mã hóa giữa các thành viên
trong nhóm.

- Không giống như hái dâu ở chỗ các thành viên trong nhóm phải tương tác
với nhau một cách có ý nghĩa và hiệu quả
Tổ chức nhóm lập trình

Ví dụ: Sheila và Harry phải viết mã hai mô-đun, m1 và m2.

+Một số điều có thể đi sai.


-Cả Sheila và Harry đều có thể mã m1 và bỏ qua m2 – Sheila có thể mã m1,
Harry có thể mã m2. Khi m1 gọi m2 nó truyền 4 tham số; nhưng m2 yêu cầu
5 tham số – Hoặc, thứ tự tham số trong m1 và m2 có thể là khác biệt.
– Hoặc, thứ tự có thể giống nhau nhưng kiểu dữ liệu có thể
hơi khác
+Vấn đề không liên quan gì đến năng lực kỹ thuật của các lập trình viên.
Sự cố giao tiếp

Ví dụ: Ba kênh giao tiếp tồn tại giữa ba chuyên gia phần mềm làm việc trong
dự án. Bây giờ, giả sử rằng công việc đang bị trượt, thời hạn đang đến rất
nhanh và nhiệm vụ gần như chưa hoàn thành.
-Giải pháp :
+thêm chuyên gia thứ tư vào đội.
-Vấn đề xảy ra: khi chuyên gia thứ tư tham gia nhóm là ba người còn lại giải
thích chi tiết những gì đã hoàn thành cho đến nay và những gì vẫn chưa hoàn
thành
( Nguyên tắc này được gọi là Định luật Brooks)
Tổ chức đội
-Trong một tổ chức lớn, các nhóm được sử dụng trong mọi quy trình sản xuất
phần mềm, nhưng đặc biệt là khi quy trình triển khai được thực hiện; trong
quy trình làm việc đó, các lập trình viên làm việc độc lập trên các tạo phẩm
mã riêng biệt.

-Hai cách tiếp cận cực đoan để tổ chức nhóm :


+Các nhóm dân chủ (Weinberg, 1971)
+Trưởng nhóm lập trình viên (Brooks, 1971; Baker, 1972)
Phương pháp tiếp cận nhóm dân chủ
-Khái niệm cơ bản của nhóm dân chủ là lập trình vô ngã .

-Weinberg chỉ ra rằng các lập trình viên có thể rất gắn bó với mã của họ.
-họ thậm chí còn đặt tên cho các mô-đun của mình theo tên của chính họ: Do
đó, họ xem các mô-đun của mình như một phần mở rộng của chính họ.
Phương pháp tiếp cận nhóm dân chủ
-Nếu một lập trình viên xem một mô-đun như một phần mở rộng của
cái tôi của anh ấy/cô ấy, anh ấy/cô ấy sẽ không cố gắng tìm ra
tất cả các lỗi trong mã “của anh ấy”/ “cô ấy”

-Nếu có lỗi thì gọi là bug


- Lỗi có thể đã được ngăn chặn nếu mã được bảo vệ tốt
hơn trước “lỗi”
- Bình xịt “Shoo-Bug”
Phương pháp tiếp cận nhóm dân chủ
+Giải quyết vấn đề (lập trình vô ngã)
• Tái cấu trúc môi trường xã hội
• Tái cấu trúc giá trị của lập trình viên
• Khuyến khích các thành viên trong nhóm tìm lỗi trong mã
• Một lỗi phải được coi là một sự kiện bình thường và được chấp nhận
• Toàn bộ nhóm sẽ phát triển một đặc tính, một bản sắc nhóm
• Các mô-đun sẽ “thuộc về” toàn bộ nhóm
• Một nhóm gồm tối đa 10 lập trình viên vô ngã tạo thành
• một nhóm dân chủ
Phương pháp tiếp cận nhóm dân chủ
+Khó khăn với phương pháp tiếp cận nhóm dân chủ
-Các đội dân chủ khó đưa vào một môi trường phi dân chủ

+Điểm mạnh của phương pháp tiếp cận nhóm dân chủ
-Các nhóm dân chủ có năng suất rất cao
-Họ làm việc tốt nhất khi vấn đề khó
-Họ hoạt động tốt trong môi trường nghiên cứu

+ Vấn đề:
- Các đội dân chủ phải tự phát lên
4.3 Phương pháp tiếp cận nhóm lập trình viên trưởng cổ
+
điển
-Xem xét một nhóm 6 người

+ 15 kênh giao tiếp hai người


+Trên thực tế, tổng số nhóm hai, ba, bốn, năm và sáu người
là 57

+Nhóm này không thể làm 6 tháng làm việc trong 1


tháng( nhiều giờ bị lãng phí trong các cuộc họp liên quan
đến hai hoặc nhiều thành viên trong nhóm cùng một lúc. )
4.3 Phương pháp tiếp cận nhóm lập trình viên trưởng cổ
+
điển

-Sáu lập trình viên, nhưng giờ chỉ còn 5 dòng liên lạc
Trưởng nhóm lập trình viên cổ điển (tiếp theo)
+
-Ý tưởng : Chủ thầu xây dựng chỉ đạo hành động của tất cả
các thành viên khác trong nhóm :
+Người giám sát thi công
+Người giám sát vật liệu xây dựng
+ Người giám sát nhiệm thu
+ Và những người giám sát các khía cạnh khác

-Hai khía cạnh quan trọng


+Chuyên ngành
+ Thứ bậc
Trưởng nhóm lập trình viên cổ điển (tiếp theo)
Lập trình viên trưởng
+

• Người quản lý thành công và lập trình viên có tay nghề cao
• Có thiết kế kiến trúc không
• Phân bổ mã hóa giữa các thành viên trong nhóm
• Viết các phần quan trọng (hoặc phức tạp) của mã
• Xử lý tất cả các vấn đề về giao diện
• Nhận xét công việc của các thành viên khác trong nhóm
• Chịu trách nhiệm cá nhân cho từng dòng mã
Trưởng nhóm lập trình viên cổ điển (tiếp theo)
Lập trình viên dự phòng
+

• Chỉ cần thiết vì lập trình viên trưởng là con người


• Lập trình viên dự phòng phải có năng lực về mọi mặt như lập trình viên
trưởng
• Phải biết nhiều dự án như trưởng phòng lập trình viên
• Có thiết kế kiến trúc không
• Lập trình viên dự phòng lập kế hoạch kiểm thử hộp đen và các nhiệm vụ
khác độc lập với quy trình thiết kế
Trưởng nhóm lập trình viên cổ điển (tiếp theo)
+ Thư ký lập trình
-Một thành viên trung tâm có kỹ năng cao, được trả lương cao, của
nhóm lập trình viên trưởng
-Chịu trách nhiệm duy trì thư viện sản xuất chương trình
(tài liệu của dự án), bao gồm:
+ Danh sách mã nguồn
+ JCL
+ Dữ liệu thử nghiệm
- Người lập trình giao mã nguồn của họ cho thư ký chịu trách
nhiệm về
+ Chuyển đổi sang dạng máy có thể đọc được
+Biên dịch, liên kết, tải, thực thi và chạy các trường hợp thử nghiệm (hãy
nhớ rằng đây là năm 1971!)
Trưởng nhóm lập trình viên cổ điển (tiếp theo)
+

Lập trình viên:

-Không làm gì khác ngoài lập trình


-Tất cả các khía cạnh khác được xử lý bởi thư ký lập trình
THANK
YOU
I hope you can get
helpful knowledge from
this presentation. Good
luck!

You might also like