Công nghệ Phần mềm
Quản lý nhân lực
Giảng viên: Lê Nguyễn Tuấn Thành Nguyễn Văn Đồng
Email: thanhlnt@tlu.edu.vn
nvdong@tlu.edu.vn
Bộ Môn Công Nghệ Phần Mềm – Khoa CNTT
Trường Đại Học Thủy Lợi
Nội dung
Quản lý nhân lực
Quản lý người làm việc theo cá nhân và theo nhóm
2
Quản lý nhân lực
Managing People
3
Mục tiêu
và duy trì nhân viên
Giải thích một số vấn đề liên quan đến việc lựa chọn
bao gồm thành phần, sự gắn kết và truyền thông
Giới thiệu mô hình chín muồi về năng lực của con người (P-CMM) - một khung làm việc để nâng cao năng lực của con người trong một tổ chức
4
Miêu tả các yếu tố ảnh hưởng đến động lực cá nhân Thảo luận các vấn đề chính về làm việc theo nhóm
Chủ đề đề cập (Topics covered)
5
Lựa chọn nhân viên Tạo động lực cho mọi người Quản lý nhóm Mô hình chín muồi về năng lực của con người
Con người trong quy trình (People in the process)
Con người là tài sản quan trọng nhất của tổ chức. Nhiệm vụ của người quản lý chủ yếu là hướng theo yếu tố con người. Trừ khi có một số hiểu biết về con người, việc quản lý sẽ không thành công.
quan trọng cho sự thất bại của dự án.
6
Việc quản lý con người yếu kém là một đóng góp
Những nhân tố trong Quản lý nhân sự (People management factors)
Các thành viên trong nhóm nên được đối xử một cách tương đương mà không có sự ưa thích hay phân biệt đối xử.
Tính nhất quán (Consistency)
Các thành viên khác nhau trong nhóm có những kỹ năng
khác nhau và cần phải tôn trọng những khác biệt này.
Sự bao hàm (Inclusion)
Liên quan đến tất cả các thành viên trong nhóm và đảm bảo rằng quan điểm của mọi người đều được xem xét.
Sự trung thực (Honesty)
Bạn nên luôn luôn thành thực về những gì đang diễn ra
tốt đẹp và những gì đang xấu đi trong một dự án.
7
Sự tôn trọng (Respect)
Lựa chọn nhân viên (Selecting staff)
nhóm làm việc.
Một nhiệm vụ quản lý dự án quan trọng là lựa chọn
Thông tin do các ứng viên cung cấp. Thông tin thu được bằng cách phỏng vấn và nói chuyện
với ứng viên.
Đề xuất và ý kiến từ những người khác biết hoặc đã làm
việc với các ứng viên.
8
Thông tin về lựa chọn đến từ:
Lựa chọn nhân viên – Trường hợp 1 (Selecting staff – Case study 1) “ Alice là một người quản lý dự án phần mềm làm việc trong một công ty phát triển hệ thống báo động. Công ty này mong muốn gia nhập vào thị trường đang phát triển của công nghệ trợ giúp để giúp người già và người tàn tật sống độc lập. Alice đã được yêu cầu dẫn dắt một đội 6 lập trình viên có thể phát triển sản phẩm mới dựa trên công nghệ báo động của công ty. Vai trò đầu tiên của cô là lựa chọn các thành viên trong nhóm từ các kỹ sư phần mềm đã có trong công ty hoặc từ bên ngoài. Để giúp lựa chọn một nhóm, Alice đầu tiên đánh giá các kỹ năng mà cô ấy cần. Đó là:
Kinh nghiệm với công nghệ báo động hiện có vì nó được tái sử dụng Kinh nghiệm thiết kế giao diện người dùng bởi vì người dùng không được đào tạo và có thể bị tàn tật và do đó cần các tiện ích như kích thước phông chữ biến đổi, v.v.
Lý tưởng nhất là người có kinh nghiệm thiết kế hệ thống công nghệ trợ giúp. Nếu không, người có kinh nghiệm về tương tác với các đơn vị phần cứng vì tất cả các hệ thống đang được phát triển đều liên quan đến việc kiểm soát phần cứng.
Những kỹ năng phát triển chung. ”
9
Lựa chọn nhân viên – Trường hợp 2 (Selecting staff – Case study 2) “ Giai đoạn tiếp theo là cố gắng tìm nhân sự từ bên trong công ty với những kỹ năng cần thiết. Tuy nhiên, công ty đã mở rộng đáng kể và có ít nhân viên sẵn có. Điều tốt nhất mà Alice có thể thương lượng là được trợ giúp từ một chuyên gia cảnh báo (Fred) trong 2 ngày / tuần. Do đó, cô quyết định quảng cáo với nhân viên về dự án mới, liệt kê các thuộc tính mà cô ấy muốn:
Kinh nghiệm lập trình trong C. Cô đã quyết định phát triển tất cả các phần mềm
điều khiển công nghệ hỗ trợ trong C.
Kinh nghiệm trong thiết kế giao diện người dùng. Một nhà thiết kế giao diện người dùng là cần thiết nhưng có thể không cần phải có một cuộc hẹn toàn thời gian.
Kinh nghiệm trong phần cứng giao tiếp với C và sử dụng hệ thống phát triển từ
xa. Tất cả các thiết bị được sử dụng có giao diện phần cứng phức tạp.
Kinh nghiệm làm việc với các kỹ sư phần cứng. Đôi khi, nó sẽ là cần thiết để
xây dựng phần cứng mới hoàn toàn.
Một tích cách thông cảm để họ có thể liên quan và làm việc với người nhiều tuổi hơn đang cung cấp các yêu cầu và thử nghiệm hệ thống.”
10
Những bài học (Lessons)
Người quản lý trong một công ty có thể không muốn mất người vào một dự án mới. Tham gia bán thời gian có thể là không thể tránh khỏi.
Các kỹ năng như thiết kế giao diện người dùng và tương tác phần cứng đang trong tình trạng thiếu cung.
Trình độ kỹ thuật có thể ít quan trọng hơn kỹ năng
xã hội.
11
Sinh viên tốt nghiệp gần đây có thể không có kỹ năng cụ thể nhưng có thể là một cách để giới thiệu các kỹ năng mới.
Các nhân tố lựa chọn nhân viên (1/2) (Staff selection factors)
Kinh nghiệm về miền ứng dụng
Đối với một dự án để phát triển một hệ thống thành công, các nhà phát triển phải hiểu lĩnh vực ứng dụng. Điều thiết yếu là một số thành viên của nhóm phát triển có một số kinh nghiệm về miền ứng dụng.
Điều này có thể là đáng kể nếu lập trình cấp thấp có liên quan. Nếu không, thường không phải là một thuộc tính quan trọng.
Kinh nghiệm nền tảng (platform)
Kinh nghiệm lập trình ngôn ngữ
Điều này thường chỉ có ý nghĩa đối với các dự án ngắn hạn mà không có đủ thời gian để học một ngôn ngữ mới. Trong khi học một ngôn ngữ không phải là khó khăn, phải mất vài tháng để trở nên thành thạo trong việc sử dụng thư viện và các thành phần liên quan.
Khả năng giải quyết vấn đề
Điều này rất quan trọng đối với các kỹ sư phần mềm liên tục phải giải quyết các vấn đề kỹ thuật. Tuy nhiên, điều này gần như không thể đánh giá mà không biết đến công việc của thành viên nhóm tiềm năng.
12
Các nhân tố lựa chọn nhân viên (2/2) (Staff selection factors)
Nền tảng giáo dục (Educational background)
Điều này có thể cung cấp một chỉ số về các nguyên tắc cơ bản mà ứng viên nên biết và về khả năng học của họ. Yếu tố này trở nên không liên quan vì các kỹ sư sẽ thu được kinh nghiệm trong nhiều dự án.
Điều này quan trọng vì sự cần thiết của nhân viên dự án là phải trao đổi bằng miệng và bằng văn bản với các kỹ sư, nhà quản lý và khách hàng khác.
Khả năng giao tiếp (Communication ability)
Khả năng thích ứng (Adaptability)
Khả năng thích ứng có thể được đánh giá bằng cách xem xét các loại kinh nghiệm khác nhau mà ứng viên đã có. Đây là một thuộc tính quan trọng vì nó chỉ ra khả năng học hỏi.
Thái độ làm việc (Attitude)
Nhân viên dự án nên có thái độ tích cực với công việc của họ và nên sẵn sàng học những kỹ năng mới. Đây là một thuộc tính quan trọng nhưng thường rất khó đánh giá.
Tính cách (Personality)
Đây là một thuộc tính quan trọng nhưng rất khó đánh giá. Các ứng viên phải tương thích hợp lý với các thành viên khác trong nhóm. Không có loại tính cách nào là đặc biệt phù hợp hơn với công nghệ phần mềm.
13
Tạo động lực cho mọi người (Motivating people)
lực cho những người làm việc trong một dự án.
Một vai trò quan trọng của người quản lý là tạo động
có nhiều loại động lực khác nhau dựa trên: Nhu cầu cơ bản (ví dụ như thực phẩm, ngủ, v.v.); Nhu cầu cá nhân (ví dụ như tôn trọng, lòng tự trọng); Nhu cầu xã hội (ví dụ để được chấp nhận như một phần
của nhóm).
14
Động lực là một vấn đề phức tạp nhưng có vẻ như
Phân cấp nhu cầu con người (Human needs hierarchy)
15
Nhu cầu hài lòng (Need satisfaction)
Cung cấp các tiện ích chung; Cho phép truyền thông không chính thức.
Xã hội (Social)
Công nhận thành tích; Phần thưởng xứng đáng.
Kính trọng (Esteem)
Đào tạo - mọi người muốn học hỏi nhiều hơn; Trách nhiệm.
16
Tự hoàn thiện (Self-realization)
Động lực cá nhân (Individual motivation) “ Dự án công nghệ trợ giúp của Alice bắt đầu tốt. Các mối quan hệ làm việc tốt được duy trì trong nhóm và những ý tưởng sáng tạo mới được phát triển. Tuy nhiên, vài tháng sau, Alice nhận ra rằng Dorothy, chuyên gia về thiết kế phần cứng, bắt đầu đi làm trễ, chất lượng công việc của cô ấy ngày càng xấu đi, và có vẻ như cô ấy không giao tiếp với các thành viên khác trong nhóm. Alice nói về vấn đề với các thành viên khác trong nhóm để tìm hiểu xem liệu hoàn cảnh cá nhân của Dorothy có thay đổi gì không và liệu điều này có thể ảnh hưởng đến công việc của cô. Họ không biết gì cả nên Alice quyết định nói chuyện với Dorothy để cố gắng hiểu vấn đề.
Sau khi từ chối rằng mình có vấn đề, Dorothy thừa nhận rằng cô ấy dường như đã mất hứng thú cho công việc. Cô mong muốn một công việc mà cô sẽ phát triển và sử dụng kỹ năng tương tác phần cứng của cô. Tuy nhiên, cô ấy về cơ bản làm việc như một lập trình viên C với các thành viên khác trong đội và cô ấy lo ngại rằng cô sẽ không thể phát triển thêm kỹ năng của mình. Cô ấy lo lắng rằng cô sẽ khó khăn để tìm một công việc sau khi kết thúc dự án này. Bởi vì cô ấy không muốn gây khó chịu cho nhóm bằng cách tiết lộ rằng cô ấy đang nghĩ đến dự án tiếp theo, cô ấy đã quyết định rằng tốt nhất nên giảm thiểu các cuộc trò chuyện với họ. ”
17
Các kiểu tính cách (Personality types)
bản đơn giản hóa của động lực trong thực tế.
Phân cấp nhu cầu gần như chắc chắn là một phiên
nhau: Hướng công việc (task-oriented): Động lực để thực hiện
công việc chính là bản thân công việc
Hướng bản thân (seft-oriented): Công việc là một phương tiện để đạt được các mục tiêu cá nhân - ví dụ: để làm giàu, chơi tennis, đi du lịch vv;
Hướng tương tác (interaction-oriented): Động lực chính là sự hiện diện và hành động của đồng nghiệp. Người đó đi làm vì họ thích đi làm.
18
Động lực cũng nên tính đến các loại tích cách khác
Cân bằng động lực (Motivation balance)
mỗi lớp.
Động lực cá nhân được tạo thành từ các yếu tố của
cảnh cá nhân và các sự kiện bên ngoài.
Sự cân bằng có thể thay đổi tùy thuộc vào hoàn
Tuy nhiên, con người không chỉ được thúc đẩy bởi các yếu tố cá nhân mà còn là một phần của một nhóm và văn hoá.
làm vì họ có động lực thúc đẩy bởi
những người mà họ làm việc.
19
Mọi người đi
Quản lý nhóm (Managing groups)
hoạt động nhóm Kế hoạch phát triển cho hầu hết các dự án phần mềm không tầm thường là nó không thể được hoàn thành chỉ bởi một người làm việc một mình.
Hầu hết các tác vụ trong công nghệ phần mềm là
cho hiệu suất của nhóm.
Sự tương tác trong nhóm là yếu tố quyết định chính
Người quản lý phải làm tốt nhất có thể với nhân lực sẵn
có.
20
Tính linh hoạt trong thành phần nhóm bị hạn chế
Các yếu tố ảnh hưởng đến nhóm làm việc (Factors influencing group working)
21
Thành phần nhóm (group composition) Sự gắn kết của nhóm (group cohesiveness) Truyền thông nhóm (group communications) Tổ chức nhóm (group organisation)
Thành phần nhóm (1/2) (Group composition) Nhóm gồm các thành viên cùng chia sẻ động lực giống
nhau có thể gặp vấn đề sau: Hướng nhiệm vụ (task-oriented) - mọi người đều muốn làm việc
của họ;
Hướng bản thân (self-oriented) - mọi người đều muốn trở thành
ông chủ;
Hướng tương tác (interaction oriented) - quá nhiều trò chuyện,
không đủ công việc.
Một nhóm hiệu quả có sự cân bằng của tất cả các loại tính
cách
Để đạt được các kỹ sư phần mềm theo hướng nhiệm vụ
thường khó khăn.
Mọi người theo hướng tương tác là rất quan trọng vì họ có thể phát hiện và xoa dịu những căng thẳng phát sinh.
22
Thành phần nhóm (2/2) (Group composition) “Trong việc tạo ra một nhóm để phát triển công nghệ trợ giúp, Alice nhận thức được tầm quan trọng của việc lựa chọn các thành viên có tính cách bổ sung. Khi phỏng vấn mọi người, cô đã cố gắng đánh giá xem liệu họ theo hướng công việc, hướng bản thân hay hướng tương tác. Cô cảm thấy rằng cô chủ yếu là kiểu hướng bản thân vì cô cảm thấy rằng dự án này là một cách để cô sẽ được quản lý cấp cao chú ý và thăng tiến. Do đó, cô đã tìm kiếm 1 hoặc có lẽ 2 tính cách hướng tương tác và còn lại là hướng công việc. Đánh giá cuối cùng của cô là: Alice - hướng bản thân Brian - hướng công việc Bob - hướng công việc Carol - hướng tương tác Dorothy - hướng bản thân Ed - hướng tương tác Fred - hướng công việc ”
23
Sự gắn kết của nhóm (Group cohesiveness)
là quan trọng hơn bất cứ cá nhân trong đó.
Trong một nhóm gắn kết, các thành viên xem nhóm
Các tiêu chuẩn chất lượng nhóm có thể được phát triển; Các thành viên trong nhóm làm việc chặt chẽ với nhau để
hạn chế sự ức chế do sự thiếu hiểu biết gây ra;
Các thành viên trong nhóm học hỏi lẫn nhau và làm quen
với công việc của nhau;
Có thể thực hiện các chương trình không khoan dung, nơi các thành viên cố gắng cải tiến các chương trình của nhau.
24
Lợi ích của một nhóm gắn kết là:
Tinh thần đồng nghiệp (Team spirit) “ Alice là một người quản lý dự án có kinh nghiệm và hiểu tầm quan trọng của việc tạo ra một nhóm gắn kết. Khi phát triển sản phẩm mới, cô ấy có cơ hội liên quan đến tất cả các thành viên của nhóm trong đặc tả sản phẩm và thiết kế bằng cách trao đổi về công nghệ có thể với các thành viên lớn tuổi trong nhóm và mang chúng vào bữa trưa hàng tuần. Bữa trưa của nhóm là cơ hội để tất cả các thành viên trong nhóm gặp gỡ không chính thức, nói chuyện xung quanh những vấn đề quan tâm và, nói chung là để gặp gỡ nhau. Buổi ăn trưa được tổ chức như một buổi thông tin nơi Alice nói với các thành viên trong nhóm những thông tin cô biết về tổ chức, chính sách, chiến lược, v.v. Mỗi thành viên trong nhóm sau đó tóm tắt ngắn gọn những gì họ đã làm và nhóm sau đó thảo luận về một số chủ đề chung như ý tưởng sản phẩm mới. Cứ vài tháng một lần, Alice tổ chức một 'ngày nghỉ' cho nhóm để nhóm dành hai ngày cho "cập nhật công nghệ". Mỗi thành viên trong nhóm chuẩn bị một bản cập nhật về một số công nghệ liên quan và trình bày nó cho nhóm. Đây là một buổi họp mặt ngoài tại một khách sạn tốt và rất nhiều thời gian được lên kế hoạch để thảo luận và tương tác xã hội.”
25
Phát triển sự gắn kết (Developing cohesiveness)
hoá tổ chức và tính cách trong nhóm.
Tính gắn kết bị ảnh hưởng bởi các yếu tố như văn
Các sự kiện xã hội; Phát triển bản sắc và lãnh thổ nhóm; Các hoạt động xây dựng nhóm rõ ràng (team-building). Sự cởi mở với thông tin là một cách đơn giản để bảo đảm tất cả thành viên trong nhóm cảm thấy mình là một phần của nhóm.
26
Tính liên kết có thể được khuyến khích thông qua:
Truyền thông nhóm (1/2) (Group communications)
hiệu quả.
Truyền thông tốt là điều cần thiết để làm việc nhóm
Thông tin phải được trao đổi về tình trạng công việc, quyết định thiết kế và thay đổi các quyết định trước đó.
nhóm vì nó giúp thúc đẩy sự hiểu biết.
27
Truyền thông tốt cũng tăng cường sự gắn kết của
Truyền thông nhóm (2/2) (Group communications)
Nhóm càng lớn, càng khó để mọi người giao tiếp với các
thành viên khác trong nhóm.
Kích thước nhóm
Giao tiếp là tốt hơn ở các nhóm được cấu trúc không hình
chính so với các nhóm được cấu trúc theo thứ bậc.
Thành phần nhóm
Giao tiếp tốt hơn khi trong nhóm có nhiều loại tính cách khác nhau và khi có sự pha trộn hơn giữa nam, nữ hơn là chỉ có một giới.
Môi trường làm việc vật lý
Tổ chức nơi làm việc tốt có thể giúp khuyến khích giao
tiếp.
28
Cấu trúc nhóm
Tổ chức nhóm (Group organisation)
Các nhóm kỹ sư phần mềm nhỏ thường được tổ chức không chính thức mà không có cấu trúc cứng nhắc.
29
Đối với các dự án lớn, có thể có một cấu trúc phân cấp mà các nhóm khác nhau chịu trách nhiệm cho các dự án con khác nhau.
Các nhóm không chính thức - Startup (Informal groups)
Nhóm hoạt động như một toàn thể và đi đến một sự đồng thuận về các quyết định ảnh hưởng đến hệ thống.
Trưởng nhóm làm việc như là giao diện bên ngoài của nhóm nhưng không phân bổ các hạng mục công việc cụ thể.
Thay vào đó, công việc được thảo luận bởi nhóm như là một tổng thể và các nhiệm vụ được phân bổ theo khả năng và kinh nghiệm.
30
Cách tiếp cận này thành công đối với các nhóm mà tất cả các thành viên đều có kinh nghiệm và có thẩm quyền.
Các nhóm lập trình cực (Extreme programming groups
)
chức phi chính thức, dân chủ.
Các nhóm lập trình cực là những biến thể của một tổ
Trong các nhóm lập trình cực, một số quyết định 'quản lý' được chuyển giao cho các thành viên trong nhóm.
nhiệm chung cho mã được phát triển.
31
Các lập trình viên làm việc theo cặp và chịu trách
Đội ngũ lập trình viên chính (Chief programmer teams) Bao gồm một hạt nhân của các chuyên gia được bổ sung vào dự án
theo yêu cầu.
Động lực đằng sau sự phát triển của họ là sự khác biệt lớn về khả
năng so với các lập trình viên khác.
Đội ngũ lập trình viên chính (chuyên gia) cung cấp một môi trường hỗ trợ cho các lập trình viên chịu trách nhiệm phần lớn về sự phát triển của hệ thống.
Cách tiếp cận chuyên gia này, dưới các hình thức khác nhau, đã thành công trong một số thiết lập. Tuy nhiên, nó bị một số vấn đề: Các nhà thiết kế và lập trình viên tài năng rất khó tìm. Nếu không có
những người đặc biệt trong vai trò này, cách tiếp cận này sẽ thất bại;
Các thành viên khác trong nhóm có thể phẫn nộ với chuyên gia để giành
được thành công vì vậy có thể cố tình làm giảm vai trò của mình;
Có nguy cơ cao trong dự án vì dự án sẽ thất bại nếu cả trưởng và phó lập
trình viên đều không sẵn có.
Các cấu trúc tổ chức và cấp bậc trong một công ty có thể không thể đáp
ứng được loại hình chuyên gia này.
32
Môi trường làm việc (Working environments)
làm việc vật lý có ảnh hưởng
quan trọng đến năng suất cá nhân và độ hài lòng Thoải mái (Comfort); Riêng tư (Privacy); Tiện nghi (Facilities).
Cân nhắc về sức khoẻ và an toàn phải được tính
đến: Ánh sáng (Lighting); Sưởi (Lighting); Đồ nội thất (Furniture).
33
Việc cung cấp nơi
Các nhân tố môi trường (Environmental factors)
việc không bị gián đoạn.
Riêng tư - mỗi kỹ sư đều yêu cầu một khu vực làm
trong ánh sáng tự nhiên.
Nhận thức bên ngoài – con người thích làm việc
34
Cá nhân hóa – các cá nhân áp dụng thực tiễn làm việc khác nhau và muốn tổ chức môi trường theo những cách khác nhau.
Bố trí văn phòng (Office layout)
35
Mô hình trưởng thành năng lực nhân viên (P-CMM) (People Capability Maturity Model)
Được dự định như là một khung cho việc quản lý sự phát triển của những người liên quan trong việc phát triển phần mềm.
Nâng cao năng lực tổ chức bằng cách nâng cao năng lực
của lực lượng lao động.
Đảm bảo khả năng phát triển phần mềm không phụ thuộc
vào một số ít cá nhân.
Gắn kết động lực của cá nhân với động lực của tổ chức. Giúp giữ lại những người có kiến thức và kỹ năng quan
trọng.
36
Mục tiêu:
Các mức trong P-CMM (P-CMM levels)
Mô hình năm giai đoạn:
1. Khởi đầu (Initial). Quản lý nhân viên ad-hoc 2. Lặp lại (Repeatable). Chính sách phát triển cho việc nâng
cao năng lực
3. Định nghĩa (Defined). Quản lý nhân viên được tiêu chuẩn
hóa trong toàn tổ chức
4. Quản lý (Managed). Những mục tiêu định lượng cho quản
lý nhân viên tại chỗ
5. Tối ưu hóa (Optimizing). Tập trung liên tục vào việc nâng cao năng lực cá nhân và động lực của lực lượng lao động
37
Mô hình năng lực người (People capability model)
38
Tóm tắt những điểm chính (Key points) Các yếu tố lựa chọn nhân viên bao gồm: giáo dục, kinh
nghiệm miền, khả năng thích ứng và tính cách.
Con người được thúc đẩy bởi sự tương tác, sự công
nhận và sự phát triển cá nhân.
Các nhóm phát triển phần mềm nên nhỏ và gắn kết. Những người lãnh đạo cần có năng lực và cần được hỗ trợ về mặt hành chính và kỹ thuật.
Truyền thông nhóm bị ảnh hưởng bởi: tình trạng, quy mô nhóm, tổ chức nhóm, giới tính và thành phần tính cách của nhóm
Môi trường làm việc cần bao gồm không gian để tương
tác và không gian làm việc riêng.
Mô hình trưởng thành năng lực nhân viên (P-CMM) là một khung để nâng cao năng lực của nhân viên trong một tổ chức.
39
Tài liệu Tham khảo
Giáo trình chính:
Software Engineering,
Ian
Sommerville, 8th Edition, 2007
Software
Practical
using
Engineering and
UML
Software Lloseng.com,
Java,
Object-Oriented Development Lethbridge/Laganièr,2001
Bài giảng & Tài liệu của môn Nhập Môn Công Nghệ Phần Mềm,
Phạm Thị Quỳnh
40
Tham khảo: