Thứ năm, ngày 9 tháng 2 năm 2006
Death March: Những Dự Án Chết
Tớ tự đánh giá bản thân mình là một người sống “quá thoải mái” nên bản thân không có tham vọng sau này sẽ có thể trở thành người quản lý dự án cho các công ty lớn (trừ các dự án của mình). Tuy nhiên, trong quá trình học môn “Con người và tổ chức trong công nghiệp phần mềm” (tạm dịch từ “Human and Organizational Aspects in Software Engineering“), cái ý nghĩ mình sẽ quản lý một dự án như thế nào để đạt được những mục tiêu đề ra bỗng nhiên trở nên khá thú vị. Vẫn biết để quản lý được cả một nhóm người là cả một nghệ thuật, nhưng không ngờ là nó có nhiều chi tiết hay đến vậy. Điều này có lẽ một phần nhờ vào cách ông giáo sư truyền đạt nội dung và nhờ vào cuốn sách giáo khoa tuyệt vời Deatch March (Edward Yourdon).
Nội dung chính của khóa học nói một cách ngắn gọn là về quá trình quản lý một dự án phần mềm, trong đó giới thiệu một khái niệm khá nổi bật là “Death March project” (có thể hiểu như là những dự án chắc chắn sẽ thất bại ngay từ khi bắt đầu). Cuốn sách đi kèm cùng tên của tác giả Edward Yourdon là một trong những cuốn sách nổi tiếng trong giới IT lần đầu tiên giới thiệu khái niệm này đồng thời gợi ý những gì bạn nên làm nếu là một thành viên của dự án đó. Tuy chỉ mới học chưa hết nữa học kỳ nhưng một bài viết có lẽ sẽ không nói được tất cả những khía cạnh của chủ đề này. Trong bài viết này, tớ sẽ chỉ giới thiệu một vài điểm chính mà tớ thấy thú vị.
Trong phần đầu, tớ sẽ chỉ đơn thuần giải thích khái niệm về “Death march project” từ những gì tớ hiểu trong cuốn sách Death March nên nó sẽ hơi đơn điệu. Nếu bạn hiểu về khái niệmn này, có thể bỏ qua và đọc tiếp phần sau.
Death March Project
Như đã nói ở phần giới thiệu, bạn có thể hiểu về khái niệm “Death March project” như là những dự án mà thất bại là kết quả tất yếu. Thất bại ngay từ đầu – thậm chí ngay từ khi cái ý tưởng về dự án hình thành trong đầu người đứng đầu. Như định nghĩa từ cuốn sách:
“Death March project” là những dự án mà tất cả các thông số dự án đều gấp đôi những con số thật. Ví dụ: dự án buộc phải hoàn tất trong một khoảng thời gian chỉ bằng một nữa so thời gian cần thiết, số lượng người tham gia bị giảm một nữa so với những dự án cùng kích cỡ, ngân sách cho dự án bị cắt chỉ còn một nữa,… Hậu quả tất yếu là những người làm trong dự án phải làm việc gấp đôi những người khác.
Tất nhiên, bạn phải hiểu cách đánh giá sự thất bại hay thành công của một dự án: thành công không phải chỉ là có sản phầm ở cuối dự án. Thành công hay thất bại còn phụ thuộc vào nhiều yếu tố khác: làm sao có thể xem một dự án là thành công nếu nó tiêu tốn ngân sách gấp đôi, thời gian hoàn tất bị kéo dài gấp đôi trong khi sản phẩm cho ra lại có chất lượng rất kém & thậm chí không ai thèm dùng?
Để tiện liên hệ, tớ tạm dịch thuật ngữ “Death March projects” là “Những dự án chết”
Theo kinh nghiệm của tác giả cuốn sách, phần lớn những dự án chết thường được thấy ở các dự án nhỏ. Tuy nhiên, đây cũng chính là nhóm có tỉ lệ thành công cao nhất, trong khi tỉ lệ thành công của các dự án qui mô vừa và lớn thường gần như bằng 0 (có thể hiểu được điều này: những dự án càng lớn thì càng có nhiều người tham gia, dẫn đến rất nhiều những vấn đề trong quá trình quản lý)
Nguyên nhân nào dẫn đến những dự án chết? Tác giả cuốn sách có nêu khá nhiều nguyên nhân. Tớ tóm tắt ghi lại một vài trong số đố:
- Chính trị: tuy phần lớn những người lập trình đều ghét những suy nghĩ về chính trị nhưng đây là một yếu tố tất yếu trong các tổ chức.
- Những suy nghĩ hảo huyền của bộ phận kinh doanh và người quản lý: thường do thiếu kinh nghiệm.
- Sự lạc quan của tuổi trẻ: những người phát triển trẻ tuổi thường luôn tự tin theo kiểu “chúng ta có thể hoàn tất chúng cuối tuần này” mà không cần biết đến mức độ phức tạp của vấn đề.
- Quan niệm người lập trình đích thực không cần … ngủ.
- Sự cạnh tranh gay gắt của thị trường và những công nghệ mới: ép buộc bạn phải liên tục đầu tư nghiên cứu và áp dụng những cái mới, sợ rằng đối thủ của mình sẽ ra trước.
Bạn có thể tự hỏi, nếu một dự án đã được biết 90% là sẽ thất bại ngay từ khi khởi đầu thì tại sao người ta vẫn sẵn sàng tham gia nó? Một số nguyên nhân đáng chú ý được đề cập:
- Nguy cơ tuy cao, nhưng phần thưởng cũng lớn theo cùng mức độ
- Sở thích được đối đầu với những thử thách
- Vì nó tốt hơn là thất nghiệp
- Lạc quan của tuổi trẻ, tin tưởng rằng mình sẽ có thể đảo ngược được mọi chuyện.
Những vấn đề của các công ty lớn
Theo tớ, có 3 vấn đề trong các công ty lớn. Vấn đề thứ nhất là tất cả các công ty lớn đều có những vấn đề trong quá trình quản lý. Tất cả? Nghe có vẻ hơi vô lý nhưng từ những gì tớ hiểu thì đó là sự thật. Sự khác biệt chỉ là về mức độ của vấn đề mà thôi. Vấn đề thứ hai, quan trọng hơn, là bản thân những người quản lý của các công ty này không hề nghĩ hoặc không muốn nghĩ rằng mô hình quản lý của họ có vấn đề – cũng giống như hiếm ai có thể biết được khuyết điểm của chính mình. Vấn đề thứ ba là, ngay cả nếu có một ai đó trong công ty có nhiều kinh nghiệm biết được nguồn gốc của vấn đề và thậm chí là cả cách giải quyết thì anh ta cũng không có khả năng thay đổi được cả hệ thống: thứ nhất, không ai chịu nghe anh ta giải thích; và thứ hai, một mình anh ta không có đủ khả năng thay đổi một hệ thống làm việc của hơn 1000 người.
Điều quan trọng có thể thấy là ngay cả như người có đủ quyền lực trong công ty (như CEO) phát hiện ra vấn đề và quyết định thay đổi hệ thống, quá trình này cũng phải diễn ra theo từng giai đoạn bởi qui mô của dự án. Và bạn đoán điều gì sẽ xảy ra khi quá trình này hoàn tất? Những vấn đề mới lại nảy sinh, và vòng tròn cứ lặp lại.
Một trong những điều đáng chú ý ở phần trên là tuy số lượng dự án chết ở các doanh nghiệp qui mô lớn không nhiều nhưng xét trên tổng số lượng dự án, tỉ lệ dự án chết như định nghĩa ở trên lại là cao nhất. Giải thích cho điều này không khó: những dự án lớn đòi hỏi nhiều người tham gia (một dự án có thể có hơn 1000 người cùng tham gia là chuyện thường) và đó chính là điều rắc rối. Xem xét một cách kỹ càng thì những vấn đề chính của việc quản lý những dự án lớn bắt nguồn từ những hành động khác thường của những người tham gia.
Bản chất của con người
Thế nào là những “hành động khác thường”? Tớ chưa từng thực sự làm quản lý hay là nhân viên của một công ty nào, nhưng những bạn đã từng có lẽ sẽ đồng ý với ví dụ mà tác giả cuốn sách Death March đưa ra:
Nếu như bạn là một người quản lý dự án, bạn nghĩ sẽ có bao nhiêu nhân viên báo cho bạn rằng họ hoàn thành công việc trước thời hạn mà bạn đưa ra? Bạn sẽ hơi ngạc nhiên khi biết rằng có hàng trăm lý do khiến một nhân viên có thể không muốn để cho bạn biết là anh ta hoàn thành công việc trước thời hạn, một trong số đó có thể là cách mà bạn có thể sẽ trả lời họ khi bạn biết điều đó: “À, vậy là cậu thật sự hoàn thành nhanh hơn thời hạn tớ đưa ra. Có lẽ trình độ của cậu cao hơn mọi người. Lần sau tớ sẽ thu ngắn thời hạn lại.” Hiện tượng này thậm chí còn được tổng kết lại dưới dạng định luật Parkinson: công việc tự động nở ra để lấp đầy thời gian còn trống.
Nghe có vẻ hơi ngạc nhiên. Cá nhân tớ thậm chí chưa từng nghĩ đến khả năng này (nhưng có lẽ tớ sẽ bắt đầu nghĩ đến nó trước khi báo kết quả cho cấp trên :) ). Một câu hỏi dễ hiểu nảy ra trong đầu nhân viên sẽ là “tại sao mình phải báo cáo nếu như việc im lặng thì có lợi (được ngồi chơi), trong khi đem đi báo cáo thì chưa biết chừng lại phải làm thêm nhiều việc?”. Những hành động này không hẳn đã là sai trái, tuy nhiên – nó trái với những gì mà người ta trông đợi. Điều đáng tiếc là phần lớn mọi người đều như vậy.
Tiếp tục từ ví dụ trên: Nếu bạn là một nhân viên và cấp trên của bạn giao cho bạn một việc và hỏi bạn ước lượng sẽ cần tối đa bao nhiêu lâu để hoàn thành nó, bạn sẽ trả lời như thế nào? Từ ví dụ trước, thật dễ hiểu nếu bạn cố nâng thời gian bạn thật sự cần lên thêm khoảng 20% để đảm bảo rằng mình sẽ không bao giờ bị trễ hạn (vốn sẽ tạo ấn tượng xấu với “sếp”). Bạn nghĩ “sếp” của bạn sẽ không biết điều đó? Nói cho cùng thì “sếp” cũng chỉ là một nhân viên của “sếp cao hơn” mà thôi. Hậu quả là sếp của bạn sẽ cố tình ép bạn phải cắt thời gian thực hiện xuống bất kể câu trả lời của bạn ở trên có thật hay không. Và nếu như bạn nhớ ở phần đầu giới thiệu về khái niệm dự án chết, đây chính là một trong những nguyên nhân của nó.
Nói cho cùng, nguồn gốc của những vấn đề trong các công ty & không phải chỉ là từ những cấp quản lý mà từ chính mỗi thành viên trong tổ chức/dự án đó. Không ai muốn phải làm thêm việc chỉ để nhận cùng một mức lương. Tất cả mọi người đều lo cho những gì liên hệ trực tiếp với bản thân mình trước khi lo cho lợi ích của công ty mà họ đang làm việc. Xét cho cùng, đó là bản chất của con người mà không ai có thể thay đổi. Tức là, những vấn đề về quản lý của các công ty như đã đề cập trong phần hai sẽ không thể nào có thể giải quyết được một cách trọn vẹn.
Giải pháp cục bộ?
Có thể bạn sẽ hơi thất vọng về kết luận ở trên. Nhưng đó là bản chất của vấn đề. Giả như có một cách để giải quyết triệt để vấn đề thì phải chăng tất cả các công ty đều thành công? Tất nhiên là không có một cách nào như vậy cả. Tuy nhiên, mặc dù bạn không thể thay đổi cách cả một công ty hoạt động, bạn có thể giúp bạn sống trong môi trường đó và cả những người trong nhóm của bạn.
Một trong những gợi ý của tác giả cuốn sách là: nếu bạn là người quản lý cho một nhóm nhỏ của một dự án lớn với những vấn đề trong quản lý mà bạn là người thấy được chúng, hãy cố gắng tách biệt những hoạt động trong nhóm của bạn ra khỏi những ảnh hưởng của môi trường xung quanh và áp dụng những gì bạn cho là đúng.
Tất nhiên, bạn có thể nói là nếu ai cũng làm như vậy thì có phải là cả một dự án sẽ loạn cả lên không. Tuy nhiên, cũng giống như khái niệm đóng gói (”enscapsulation”) trong lập trình hướng đối tượng, điều quan trọng không phải là cách hoạt động bên trong mỗi nhóm mà là kết quả mà mỗi nhóm cho ra. Nếu mỗi nhóm đều cho ra kết quả đúng lịch trình của người quản lý cấp cao hơn thì bản thân người quản lý đó sẽ có thể ghép nối mọi thứ lại với nhau. Và đó cũng chính là vai trò của bạn trong nhóm nhỏ của mình. Người quản lý giỏi sẽ biết cách để có được kết quả cuối cùng với chất lượng và trong một thời gian hợp lý.
Một người quản lý giỏi không phải chỉ biết cách sắp xếp thứ tự công việc, phân công công việc cho từng thành viên với thời hạn hợp lý để rồi ghép nối lại, mà còn là mẹo để có thể lấy được những thông tin có giá trị, xác với thực tế từ mọi người trong nhóm cho dù như trong những ví dụ ở trên, ai cũng sẽ lo cho lợi ích của mình.



Quietman
Ngày 2/9/2006 lúc 20h07
Mến tặng cuốn sách này để bạn tham khảo thêm:
Project Secrets: Why Software Projects Fail?
Mật khẩu mở file: nguoitapviet
magic_ukr
Ngày 2/12/2006 lúc 05h06
bài viết của bạn hay thật đấy. Mình đặc biệt chú ý tới phần ” Bản chất của con người” Có lẽ đây là vấn đề đã được nhắc đến từ lâu và trên mọi lĩnh vực. Đọc bài của bạn mình thực sự băn khoăn: dường như đứng trước ngưỡng cửa mở và đóng. Xoay ngược lại nhìn về con người Việt Nam và các nước khác nói chung. Đây là điều không thể tránh khỏi trong tương lai khi chúng ta lập nghiệp. Vấn để đặt ra chính là làm thể nào để khiến cho tư tưởng đó tiến tới mức thấp nhất. Guồng vận động liên tục và canh tranh. Có 2 hướng : thực lực và sự tinh ranh. Hành trang vào đời cho sinh viên chúng ta có lẽ phải thêm con mắt thấu nhìn, cách trị nhân, bản lĩnh kiên cường …. :) Không biết bạn khoái đi con đường nào
hhuytho
Ngày 2/13/2006 lúc 05h29
Đúng là con người chính là một trong những yếu tố quan trọng nhất quyết định sự thành công của một dự án, cho dù đó là dự án phần mềm hay các dự án khác. Trong bài viết trên của Tiên, ở phần lý do nhân viên không muốn nộp module của anh ta mặc dù đã hoàn thành thì T có một chút suy nghĩ. Bây giờ ở các công ty, việc cạnh tranh giữa các nhân viên diễn ra rất gay gắt. Nếu anh làm không tốt công việc của mình thì sẽ mất job, thực hiện đầy đủ công việc của mình không có nghĩa là đảm bảo một vị trí ở công ty. Không như ở Việt Nam trả lương theo tháng, các công ty nước ngoài trả lương theo package (theo năm), bất chấp thời gian anh dành cho công việc thế nào. Nếu mà hoàn thành công việc sớm, chứng tỏ có tài năng thì chắc chắn sẽ được thăng tiến (promotion). Như thế lý do ở trên không phải là phổ biến và hoàn toàn đã được khắc phục.
@ magic_ukr: bây giờ người ta chia project ra thành các modules rất cụ thể. Mỗi một thành viên trong project sẽ phải hoàn tất công việc trong một deadline cụ thể, thường được tính toán sát tối đa với khả năng của thành viên đó. Như thế thì sự tinh ranh không còn có chỗ đứng đâu.
Quietman
Ngày 2/16/2006 lúc 18h48
Thọ cũng biết Tiên à? Hình như ở Canada còn thằng Tuấn bạn của Thọ nữa phải không?
leduytien
Ngày 2/16/2006 lúc 20h50
Ủa? vậy Quietman là ai vậy? ai mà biết cả Tuấn và Thọ?
Ừ, tớ, Thọ và Tuấn học cùng lớp hồi cấp 3. Tuấn cũng đang học CPSC ở Canada.
Huong
Ngày 3/22/2006 lúc 23h04
Không thấy chỗ download sách này bạn ạ. Help pls?
Huong
leduytien
Ngày 3/23/2006 lúc 00h15
Tất nhiên. Những cuốn sách kiểu này thường chẳng có ai chịu khó làm lậu làm gì. Chỉ có dân học về nó mới đọc thôi (chủ yếu bên Software Engineering). Vì đó là sách bắt buộc của môn tớ đang học bên này nên tớ mua bản gốc.
Wanna
Ngày 3/26/2006 lúc 02h11
Mới khám phá được blog này -Thực sự hay!
Chúc bạn thành công!
Wanna,
Hoàng Thắng
Ngày 6/12/2006 lúc 00h43
mình cũng là software developer, không những không nộp code đúng hạn mà mình còn thường xuyên cố tình kéo dài thời gian hoàn thành công việc. đơn giản là mình nhận lương theo tháng và công việc không tạo hứng thú cho mình.
suy nghĩ thêm một chút thì nhân viên của google làm việc thế nào? các kỹ sư lập trình game làm việc thế nào? và những người làm open source project có trì hoãn việc nộp source file không? mình không biết gì về công việc của họ nhưng mình tin là những người này không như mình. chắc chắn họ có một vị trí & công việc đáng để làm, và họ không bao giờ nghĩ đến việc lười biếng cả
mình thì ở việt nam, code thuê cho nước ngoài và những công việc dễ làm người ta lười thì mình phải làm. mình nhận lương vẫn đầy đủ nhưng mình biết rằng, mình ngày càng lười và nếu không có cách chăm chỉ thì mình sẽ bị đào thải sớm khỏi nghề coding
BCKT
Ngày 7/5/2006 lúc 00h45
Ko có gì để nhận xét nữa
COOL
Cái mà tôi cần đều nằm ở đây
YM! mr.haianh liên hệ mình có việc cần
leduytien
Ngày 7/6/2006 lúc 12h14
Ý bạn muốn tớ liên hệ với bạn? (ko có vấn đề gì – nhưng chỉ có điều bạn chẳng nói rõ nên ko biết bạn muốn tớ hay một người nào trong trang này liên hệ với bạn). Dù sao thì bạn có thể email trực tiếp cho tớ thông qua liên kết ở đầu trang này.
Sông Hương
Ngày 7/27/2007 lúc 03h24
Sao minh tải cuốn sách này về ko dc vậy? Làm phiền Bạn có thể gửi qua email cho minh được ko? Mình thấy cuốn sách này hay quá. Cảm ơn nhiều
thấy bạn Post bài này lâu quá rồi, không biết có liên lạc được không.
justmevn
Ngày 7/31/2007 lúc 07h43
Hiện có sách này trên gigapedia. Bản second edition. Đây là link: http://gigapedia.org/item.id:2447,title:death-march-second-edition,catid:0,catpage:1.html
justmevn
Ngày 7/31/2007 lúc 07h47
Hoặc link trực tiếp đây nè: http://mihd.net/cuh476
sophia_ruby
Ngày 6/6/2008 lúc 07h13
mình thích bài viết của bạn.nhưng chưa dọc đươc tác phân nên mình thấy tiếc lắm.có thể mua sách này ở đâu.hiện tại mình đang ở Đà Nẵng,hok bik noi nào co bán nữa
sophia_ruby
Ngày 6/6/2008 lúc 07h17
minh rat thich bai viet cua ban. rat co ca tinh,dac biet la o phan nhung van de lon cua cac cong ty.mot cong ty, mot tap doan muon quan li tot cong ty, muon quan li tot nhan vien truoc tien nguoi quan li phai dat minh vao vi tri cua nhan vien, cua nhung nguoi cap duoi.phai the hien ro minh la nguoi lanh dao sang suot biet ”lang nghe” y kien cua moi nguoi.dac biet la ton trong y kien cua moi nguoi
hai
Ngày 6/24/2008 lúc 03h52
rat hay va bo ich