Agile leader - anh là ai?

Wednesday, November 4, 2009 0 phản hồi

Agile leader - là một cụm từ tôi nghĩ ra trong những ngày gần đây. Tạm diễn đạt theo nghĩa tiếng Việt: người lãnh đạo theo trường phái Agile (chữ agile không muốn dịch - vì dịch ra có thể không hay).

Agile là một trường phái phát triển phần mềm được khởi xướng từ bản tuyên ngôn Agile do 17 bậc lão làng trong ngành phần mềm: Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff SutherlandDave Thomas.

Bản tuyên ngôn này được phác thảo từ 11-13/02/2001 tại Snowbird/Uhtar.

Agile được hiện thực bởi nhiều phương pháp luận (Extreme Programming, Scrum, Crystal, Feature driven,...). Tuy nhiên bài viết này không đi vào một phương pháp luận cụ thể nào. Bạn có thể đọc về chúng trong rất nhiều sách và tài liệu trên Internet.

Tôi không thích sách vở suông. Sách vở chỉ là tờ giấy vứt đi nếu nó không được áp dụng vào thực tiễn và mang lại hiệu quả. Ở đây tôi viết về những practices để trở thành Agile leader dựa trên 2 phát biểu đầu tiên của tuyên ngôn Agile. Tôi không viết các practices cho 2 phát biểu kế tiếp vì một số lý do nhạy cảm. Tất nhiên, các practices này chỉ là do tôi đúc kết từ những kinh nghiệm chủ quan trong những dự án tôi tham gia.

Phát biểu 1: Individuals and interactions over processes and tools
(Cá nhân và giao tiếp được đánh giá cao hơn quy trình và công cụ)

- Tôi coi trọng việc giao tiếp với những thành viên trong nhóm đặc biệt qua hình thức nói chuyện mặt đối mặt. Tôi muốn nhìn thấy cảm xúc/ nghe giọng nói/ đọc những dòng code bạn tôi viết/ cảm nhận được khó khăn mà bạn tôi vấp phải. Thông qua cách này giúp tôi hiểu và chia sẻ được với đồng sự của tôi nhiều hơn việc sử dụng những công cụ vô cảm như email/skype/phone.
- Tôi không viết ra những tài liệu nếu nó không phục vụ cho mục đích giao tiếp/ truyền đạt. Nếu phải viết ra một thuật toán/ xử lý phức tạp, tôi sẽ trao đổi trực tiếp và nếu cần thiết sẽ cùng đồng sự của tôi code ra nó trên bàn của anh ta/ hoặc của tôi.
- Tôi không đưa cho ai bất kì một tài liệu mà không có giải thích trực tiếp để đảm bảo họ hiểu nhanh những gì tôi đã viết.
- Tôi sẵn sàng di chuyển để được ngồi và làm việc bên cạnh những đồng sự của tôi trong cùng một dự án.
- Nếu bạn tôi gặp khó khăn, tôi sẽ ngồi bên anh ta để cùng làm và giải quyết vấn đề.
- Tôi luôn muốn tạo điều kiện và phấn đấu để giúp cho đồng sự của tôi/ và cả tôi phát triển vì tôi tin rằng: chỉ có những con người giỏi mới tạo ra được phần mềm tốt. Không có công cụ/ quy trình nào có thể giúp sản xuất ra những phần mềm hoàn hảo với những con người yếu kém.

Phát biểu 2: Working software over comprehensive documentation
(Phần mềm chạy được được đánh giá cao hơn việc viết ra tài liệu dễ hiểu).
- Tôi đặt mong đợi ở chất lượng code và thiết kế hơn những xấp tài liệu system architecture dày cộm. Thiết kế hệ thống sẽ thay đổi theo thời gian. Vì vậy nếu cần bản thiết kế hoàn chỉnh, tôi sẽ viết ở những giai đoạn cuối dự án khi thiết kế đã hoàn chỉnh.
- Tôi chứng minh cho khách hàng nhìn thấy phần mềm chúng tôi viết chạy được bằng cách cho họ nhìn thấy càng sớm càng tốt và liên tục những gì chúng tôi đã làm được để có những phản hồi sớm nhất.
- Để có một phần mềm chạy được, tôi cập nhật/đánh giá/giải quyết những rủi ro kĩ thuật sớm nhất trong từng vòng lặp phát triển.

Trùng hợp

Saturday, October 24, 2009 1 phản hồi

Làm ở Pyramid Consulting được gần 2 năm, giờ mới phát hiện ra một sự trùng hợp ngẫu nhiên của những Technical Architect tại đây.

Tôi chưa có cơ hội để làm việc với các bậc tiền bối TA. Tuy nhiên huyền thoại  và cơ hội học hỏi từ các anh là một trong những yếu tố thúc đẩy để tôi bước chân vào công ty. Hôm qua đi uống cafe với bác Vinh, mới biết rằng mỗi nhân vật này đều có một biểu tượng về con vật đại diện. :)

anh An: monkey (con khỉ). Có lẽ là thể hiện cho sự nhanh nhẹn, thông minh và khéo léo.
anh  Vĩ: một con vật lai giữa rùa và thỏ (có lẽ thể hiện cho sự nhanh nhẹn + sâu sắc và vững chắc).
anh Vinh: con heo. Biết lý do vì sao, nhưng không nói được. Ha ha.
anh Phước: con hà mã. Chưa biết ý nghĩa của biểu tượng này cho lắm.
anh Trí: có nghe bác Vinh nói, nhưng hôm nay quên mất con vật đại diện. Update later.
Nguyễn Ngọc Trung: soddino - khủng long ăn cỏ => To xác nhưng hiền lành.

Tôi giật mình nhìn lại biểu tượng mà tôi đã chọn cho mình trước khi tham gia vào Pyco: KBird.  Sao lại trùng hợp vậy ta? Điều kì lạ hơn nữa là tất cả các con vật này đều "lành" - không tương sinh tương khắc.

Giải thích về cái biểu tượng KBird cho nó hay ho một chút: thật ra trước đây chọn con vật này vì mình thích phóng khoáng, bay bổng, ko muốn bị ràng buộc vì bất cứ lý do nào trong mọi suy nghĩ, hành động. Chơi CS trong công ty thì lấy alias biến tấu là coolbird. Vì chim lành quá nên cứ bị bắn chết hoài, chán thiệt.

Nhật ký dự án Car Racing - điều kì diệu

Thursday, September 3, 2009 5 phản hồi

David bảo chúng tôi phải tạo ra điều kì diệu. Yes, điều kì diệu là viết một game đua xe trên iPhone được estimate trong 6 tháng bởi một công ty chuyên làm game khá nổi tiếng - và chúng tôi sẽ phải làm trong 45 calendar days.

Chúng tôi bắt đầu từ những con số khá nghèo nàn.
1 Technical architect (Khoa) + 2 developer (Đạo, Chương). Trong 3 người chỉ có 2 người có kinh nghiệm lập trình trên iPhone trong 2-3 tháng.
Ngày thứ 1: chúng tôi bắt đầu từ những game engine 3D trên iPhone. Chúng tôi chọn SiO2 vì thấy có khá nhiều game sử dụng nó và cộng đồng LTV cũng khá đông đảo.

Ngày thứ 2: Chúng tôi thực hiện các thử nghiệm nhỏ: load mô hình 3D + thực hiện các chuyển động vật lý + đưa ra các mô hình điều khiển xe bằng việc tác động lực.

Ngày thứ 5: mọi chuyện có vẻ trở nên khó khăn. Đầu tiên là việc load xe và đặt vào terrain. Xe luôn bị rơi xuyên thủng mặt đất. Kế tiếp là việc load mô hình 3D sử dụng script Python chạy trên blender. SiO2 support mạnh cho blender, nhưng lại yếu đối với các 3D design tool khác. Mọi mô hình 3D phải được export ra định dạng sio2 trước khi được load vào game. Đội ngũ 3D design của chúng tôi không quen sử dụng công cụ này nên đây là một trở ngại rất lớn.

Ngày thứ 7: áp lực bắt đầu khá nặng nề. Chúng tôi đã load được mô hình xe đơn giản nhất - chỉ có 4 bánh - 1 thân và 2 trục, điều khiển xe chạy được trên iPhone. Tuy nhiên, còn quá nhiều câu hỏi hóc búa phải trăn trở: thắng xe như thế nào, tăng tốc ra sao, chuyển số cho xe như thế nào? Không có ai có kiến thức về xe ô tô, động lực học cơ bản cũng quên sạch.

Ngày thứ 8: tôi quyết định phải đọc lại những kiến thức vật lý cơ bản và bắt đầu từ 3 định luật Newton. Very stupid.

Buổi sáng ngày thứ 9: tôi nghĩ trong đầu: tại sao phải là SiO2. Sao không tìm thử một hướng mới. Tôi mò mẫm trong các search engine và vô tình tìm được một tutorial sample cho game đua xe ở Unity engine. Hura! có vẻ bắt đầu thuận lợi.
Chiều: phát hiện ra Unity3D có version cài trên Windows. Bắt đầu cài đặt và sau đó run thử tutorial. Cool! diễn tiến khá tốt đẹp - xe chạy smooth, có cả âm thanh, thắng và gài số tự động.

Ngày thứ 10: họp team và chia task. Công việc cần làm bao gồm:
+ Đọc hiểu script để điều khiển xe
+ Tìm hiểu cấu trúc 3D của xe trong game và yêu cầu nhóm design giúp chúng tôi để có 1 mô hình xe khác cho việc thử nghiệm
+ Tìm hiểu cách hiện thực GUI trên Unity để hiện thực một số màn hình

Ngày thứ 12: chúng tôi hiểu tương đối về cách điều khiển xe và giờ đây có thể thay đổi được cả terrain và mô hình xe. Một thành công vượt ngoài mong đợi.


Ngày thứ 14: chúng tôi gặp khó khăn khi đưa game chạy trên iPhone. Mô hình 3D khá nặng và code chưa được optimize nên chỉ cần vừa start game là bị crash. Mặc dù game chạy khá cool trên desktop và web.


Ngày thứ 15: bắt tay vào research các tips để optimize performance. Chúng tôi có may mắn quen với một người bạn đã từng làm game trên Unity (Hạo - cty Halovi). Bạn đã giúp chúng tôi khá nhiều trong việc tư vấn optimize performance cho game.

Ngày thứ 17: tôi collect lại tất cả các tips and tricks để optimize performance cho Unity iPhone và đưa vào một checklist. Chúng tôi bắt tay optimize từng điểm, từng điểm một. Ngay cả phép cộng, trừ, nhân, chia trên script cũng phải được cân nhắc và review từng dòng. Ví dụ: a / 2 sẽ chậm hơn a * 0.5, ...

Ngày thứ 19: game đã chạy được trên iPhone nhưng với FPS bằng 5, siêu giật và gần như không điều khiển được. Lại tiếp tục tìm trick optimize performance và optimize tiếp.

Ngày thứ 21: xe có thể chạy trên iPhone với FPS bằng 15. Điều khiển khá smooth. Nhưng tiếc thay, xe chỉ có thể chạy với 4 bánh và 2 trục, terrain thì gần như chỉ là một mặt phẳng.
Chúng tôi buộc phải nhờ cầu viện của bộ phận design. Mô hình phải được tối ưu hơn nữa. Càng ít polygon càng tốt, càng ít texture càng tốt. Chỉ có một câu phát biểu duy nhất trong lập trình game: phải cân bằng 2 yếu tố "đẹp" và "nhanh".

Ngày thứ 23: bắt đầu có những mâu thuẫn nhỏ. Mâu thuẫn lớn nhất xuất phát từ việc: các anh design cho rằng đã optimize hoàn toàn mô hình 3D, xe chỉ có 6K polygons. Tại sao khi load xe trong Unity lại có thể là 112K triangles?
Phải tìm cách giải quyết conflict và chỉ ra điểm cần optimize tiếp theo. Có vẻ sự sống của chúng tôi đang bi đát.

Ngày thứ 24: tôi đã giải thích được vì sao có sự khác biệt giữa số polygon trong Maya và trong Unity. Nguyên nhân xuất phát từ mô hình lý thuyết về texture mapping.
Lại họp nhóm - và lần này có cả 3D design group. Chúng tôi biết các anh cũng rất mệt vì đã support chúng tôi rất nhiều.
Cuộc họp giải quyết được khá nhiều vấn đề, và cơ bản chúng tôi biết cần optimize thêm những gì, làm sao để đo được kết quả số polygons thực tế trên game từ một mô hình 3D.

Ngày thứ 25: buộc phải release một bản demo trên web cho khách hàng review - vì version hiện tại chưa thể chạy được trên iPhone smooth.

Ngày thứ 27: chúng tôi đã có một version chạy với FPS = 15 trên iPhone với mô hình xe và terrain khá ổn. Tuy nhiên sau một vài thay đổi nhỏ, FPS lại rớt về 5. Very stupid.

Ngày thứ 28: phát hiện được một trick để optimize về physic của Unity. Đây là một bước tiến khá vượt bực. Chúng tôi giảm số frame vật lý xuống để làm tăng FPS và đã thành công. Tuy nhiên việc control xe có chút khó khăn vì frame vật lý không còn liên tục nữa.

Ngày thứ 29: optimize script để làm cho việc control xe smooth hơn bằng cách phân tách các hàm xử lý vào Update và FixedUpdate hợp lý.

Ngày thứ 30: bắt tay vào làm GUI cho các màn hình game. Hoàn thiện kịch bản.

Từ ngày thứ 31-34: chỉ hoàn tất kịch bản game và fix các bug về mô hình, control xe smooth hơn.

Ngày thứ 35: add thêm âm thanh cho game: tiếng xe chạy, tiếng va chạm vào tường.

Ngày thứ 36: phát hiện ra deployment guideline của mình thiếu đoạn jailbreak iPhone. Hì hục hết buổi sáng và nửa buổi chiều để jailbreak iPhone. Từ đó về sau, chúng tôi tự hào có thể jailbreak iPhone trong 5 phút.

Ngày thứ 37: chúng tôi không thể deploy cho khách hàng bằng cách sử dụng jailbreak iPhone. Họ bảo rằng cách này quá khó. Thật sự, Apple có support cách deploy AdHoc distribution cho beta user - sử dụng iTunes. Chỉ cần có UID của iPhone + provisioning profile (một dạng certificate để iTunes nhận dạng và install application).
Chiều: loay hoay mãi không deploy được mặc dù nghĩ rằng đã làm đúng tất cả các step. Stuck!

Đến gần 10h tối, thì cũng deploy thành công bằng AdHoc distribution. Viết mail thông báo cho onshore PM.

1 AM: bật mail công ty để check xem có tin gì mới. Problem: Onshore PM không deploy được theo kiểu AdHoc mặc dù mình đã đăng kí UID iPhone của họ với Apple và cung cấp đúng provisioning profile. Lúc chiều chính xác mình đã deploy thành công với iPhone 3G, 2G và 3GS. Wtf's happenning?

4 AM: search hoài nhưng vẫn stuck - vì thấy mình đã apply hết các trick tìm được rồi. Đi ngủ.

Ngày thứ 38: bị áp lực từ onshore và khách hàng. Với tất cả thông tin họ cung cấp, vẫn không tìm ra được vấn đề do đâu.
Lại một đêm ngồi làm đến 4 AM. Không dám check mail sợ bị áp lực không research tiếp được. Bật mail lên ghi vài dòng suggestion: "đề nghị backup solution hack iPhone và deploy bằng SSH. Onshore cần thử gấp cách này và cho chúng tôi kết quả, để xử lý những tình huống phát sinh khác"

Ngày thứ 39: vô vọng, kiệt sức. Vậy mà trước khi vô công ty phải refresh lại cái mặt để anh em nhìn vô không thấy nản. Chỉ có một câu nói còn ám ảnh mãi trong đầu: phải đốt cháy chính mình thì mới có thể truyền lửa cho người khác được. Lửa ơi trong tôi, xin đừng tắt.

Bật mail thì nghe tin Jeremy deploy thành công bằng cách jailbreak iPhone 3G và 3GS. Một chút hy vọng lóe lên. Dù sao thì cũng không phải cùng đường. Mặc dù vậy, khách hàng vẫn không happy.
Lại phải tìm tiếp. Thức đến 3 AM thì đuối. Có đọc được loáng thoáng 2 cách tạo application ID trên Apple là static và wildcard. Wildcard có nghĩa là dùng tên có * để đăng ký. Ví dụ: com.pyco.*, static là tên chính xác.
Đọc nhưng không remote vô được máy MAC ở công ty để làm.

Ngày thứ 40: buổi sáng, build cái app theo cách dùng wildcard app ID. Nhưng phải đợi onshore PM đến chiều, vì lệch múi giờ. Send app lúc 1 h chiều, ngồi đợi.
3h PM: Nicolas gõ qua MSN. Congratulation, it's working. You're the best.
Thở phào nhẹ nhỏm. Muốn hét lên Eureka, nhưng sợ bà con nói mình khùng.

CTO phải nhảy vào can thiệp vì project quá quan trọng. Nhưng lúc Gilbert vừa định kêu mình vào conference thì problem đã xử xong.
Buổi tối, ngồi support onshore deploy với bản build mới đến gần 11h mới về nhà. Oải, chỉ muốn ngủ.

Ngày thứ 41: âm thanh của xe bị chê. Hic, phải ngồi mở Youtube lên coi xe Ferrari chạy thế nào. Từ nhỏ tới lớn không coi đua xe, không biết nó gầm rú ra sao để làm cho chính xác.
Define solution + apply âm cho xe rú từ nhỏ đến to, từ to đến nhỏ. Làm hoài vẫn không giống. Nicolas chỉ nói: tao thấy mày làm hoài nó cũng chẵng khác biệt mấy.
Team ai cũng oải. Mặt mình lúc đó nhìn chắc cũng bi kịch lắm nên anh em nó mua cơm tối cho ăn mà cứ đòi cho free. Hic, quyết định của mình lúc đó: anh em về nhà relax đi, oải hết rồi. Mình ở lại confirm với Nicolas chút rồi về.

Sau một hồi discuss, quyết định phải code để cho onshore thấy hiệu ứng âm thanh như họ yêu cầu. Đến 11h thì xong task. Nicolas bảo: âm thanh vậy tao thấy được rối á. Về nhà.

Ngày thứ 42: fix thêm một số effects và chỉnh lại một chút về GUI cho hoàn hảo. Game coi như xong.

Ngày thứ 43: nghỉ lễ 2-9. Không dám về nhà vì ở quê không online được. Ngồi nhà nhưng tâm trạng thấp thỏm.

Ngày thứ 44: không có feedback mới. Khách hàng đã happy.

Ngày thứ 45: game được đem triễn lãm ở showroom.

Kết thúc! chúng tôi đã làm nên điều kì diệu như vậy đó. Cảm ơn rất nhiều nhé mọi người. Đặc biệt là Chương và Đạo - những người đã đóng góp rất lớn vào sự thành công của dự án. Anh em chúng ta đã trải qua những tháng ngày thử thách, nhưng cũng rất vui. OT mà đi nhậu thịt chó, uống rượu - thì còn gì bằng, đúng không nào?

Giang hồ

Saturday, August 1, 2009 1 phản hồi

Tình cờ lang thang đọc được bài thơ này.

Giang hồ

-Phạm Hữu Quang-

Tàu đi qua phố, tàu qua phố
Phố lạ mà quen, ta giang hồ
Chẳng lẽ suốt ngày bên bếp vợ
Chẻ củi, trèo thang với... giặt đồ?

Giang hồ đâu bận lo tiền túi
Ngày đi ta chỉ có tay không,
Vợ con chẳng kịp chào xin lỗi
Mây trắng trời xa, trắng cả lòng...

Giang hồ ta ghé nhờ cơm bạn
Đũa lệch mâm suông cũng gọi tình
Gối trang sách cũ nằm nghĩ bụng
Cười xưa Dương Lễ với Lưu Bình.

Giang hồ có bữa ta ngồi quán
Quán vắng mà ta chẳng chịu về
Cô chủ giả đò nghiêng ghế trống
Đếm thấy thừa ra một gốc si.

Giang hồ mấy bận say như chết
Rượu sáng chưa lưa đã rượu chiều
Chí cốt cầm ra chai rượu cốt
Ừ. Thôi. Trời đất cứ liêu xiêu...

Giang hồ ta chẳng thay áo rách
Sá gì chải lược với soi gương
Sáng nay mới hiểu mình tóc bạc
Chợt tiếng trẻ thưa ở bên đường.

Giang hồ ba bữa buồn một bữa,
Thấy núi thành sông biển hoá rừng
Chân sẵn dép giầy, trời sẵn gió
Ngựa về. Ta đứng. Bụi mù tung...

Giang hồ tay nải cầm chưa chắc
Hình như ta mới khóc hôm qua
Giang hồ ta chỉ giang hồ vặt
Nghe tiếng cơm sôi cũng nhớ nhà.

Thích nhất 4 câu cuối: "Giang hồ tay nải cầm chưa chắc. Hình như ta mới khóc hôm qua. Giang hồ ta chỉ giang hồ vặt. Nghe tiếng cơm sôi cũng nhớ nhà". Có chút gì đó giống với tứ thơ trong Tràng Giang của Huy Cận
"Lòng quê dợn dợn vời con nước
Không khói hoàng hôn cũng nhớ nhà."


Thôi thì bỏ qua những bình luận văn chương. Ngẫm lại, từ lúc ta xa quê hương cũng đã 9 năm rồi. Chiều nay, thèm lắm tiếng cơm sôi bên bếp lửa, tiếng mẹ gọi về ăn cơm. Thèm được ngửi mùi rạ cháy trên đồng, mùi mạ non mới chớm. Ta muốn nhìn thấy con sông Hậu và những dòng lục bình trôi giữa dòng phù sa đỏ quạch trong mùa nước đổ. Ba mẹ ơi, quê nhà ơi ... nhớ lắm.
Giang hồ ư? Ừ, ta cũng chỉ là một gã giang hồ vặt bên cuộc đời bé nhỏ này thôi.
Ta đi chẳng phải để xem sông núi rộng dài, chỉ để xem lòng mình dài rộng đến đâu...

Tướng giỏi - anh là ai?

Wednesday, July 22, 2009 1 phản hồi

Chiều nay, tôi tình cờ nghe một mẫu đối thoại giữa 2 người bạn làm tôi phải suy nghĩ khá nhiều:
A: anh làm ở vị trí nào trong công ty?
B: mình làm project manager - ở bộ phận quản lý.
A: chuyên môn của anh là gi?
B: ...
A: ở VN, ít có PM nào không xuất phát từ vị trí developer. Trước đây anh đã từng làm trên những domain nào?
B: mình vào làm ở vị trí quản lý trực tiếp. Chuyên môn của mình là quản lý dự án.
A: wow.
B: ở công ty mình, các department được chia ra theo nhóm chức năng để chuyên môn hóa. Vì vậy người quản lý chỉ tập trung vào quản lý dự án.

Tôi không có ý kiến về mẫu đối thoại ở trên, nhưng tôi thực sự muốn chia sẻ ở góc nhìn của một người thiên về kĩ thuật. Sau mẫu đối thoại đó, tôi tự chiêm nghiệm lại những gì mình đã từng trải qua khi đã từng là một người lính và đôi khi (cần) là một vị tướng. Câu hỏi lớn nhất trong đầu tôi suốt bao năm qua là: làm thế nào để trở thành tướng giỏi?

Trải qua nhiều năm chinh chiến, tôi rút ra được một số kinh nghiệm trận mạc. Vì vậy, tôi muốn truyền tải đến những người anh em đã, đang và sẽ cùng sát cánh bên tôi những đức tính mà tôi cho rằng một vị tướng giỏi bắt buộc phải có. Đó cũng chính là phương châm mà tôi áp dụng trong công việc hiện tại:

1. Gần như không có một vị tướng giỏi nào mà không từng chiến đấu như một người lính. Vì vậy hãy thấu hiểu và chia sẻ với đồng đội của bạn dù ở bất cứ cương vị nào như những người anh em trên cùng một chiến hào.

2. Một người lãnh đạo (leader) giỏi phải có khả năng định hướng cho tập thể. Vì vậy, nếu không có kinh nghiệm chuyên môn và nỗ lực hơn người khác, thì bạn không thể làm lãnh đạo. (không thể chấp nhận một người leader chỉ đơn thuần quản lý task, theo dõi tiến độ, và chỉ nói mà không biết làm).

3. Cho dù ở bất kì hoàn cảnh khắc nghiệt nào đi nữa, hãy hiểu rằng tâm trạng/ tinh thần của bạn chính là của cả tập thể. Bạn không được nản chí hoặc ít nhất không thể hiện điều đó ra trước mặt những người đồng sự. Phải động viên chính bản thân mình thì mới có thể động viên được người khác.

4. Đức hy sinh: trong mọi hoàn cảnh khắc nghiệt, hãy là người tiên phong gánh chịu trách nhiệm. Dù thành viên của bạn có phạm phải sai lầm chết người nào đi nữa thì đó cũng là lỗi của chính bạn. Vì một lãnh đạo giỏi sẽ không thể để thành viên của mình phạm sai lầm. Hãy nhường vinh dự và phần thưởng cao quý nhất cho những thành viên của bạn nếu đạt được thành quả - vì không có họ, bạn sẽ không là gì cả.

5. Dám công nhận khuyết điểm trước tập thể: nếu bạn phạm sai lầm, hãy thừa nhận rằng mình sai. Đừng cố gắng bao biện hoặc đỗ lỗi cho hoàn cảnh. Không nghiêm khắc với chính mình, thì không ai có thể phục bạn được.

6. Truyền lửa: hãy đốt cháy chính mình để lan tỏa ngọn lửa cho tập thể. Tôi không bao giờ làm bất kì điều gì mà không dồn hết sức với tất cả đam mê, nhiệt huyết. Chính điều đó sẽ giúp cho đồng đội của tôi sẽ cùng tôi thắp lên một ngọn lửa lớn để đốt cháy những khó khăn trước mặt.

Tôi tin rằng không có một người lãnh đạo giỏi nào không có đủ những đức tính ở trên. Tôi kỳ vọng những người đồng sự của tôi và tôi sẽ trở thành những người lãnh đạo giỏi trong tương lai.

Anh là một con cừu - Bùi Chí Vinh - KBird - Hoàng Hà

Thursday, July 16, 2009 0 phản hồi

Sáng tác (nguyên bản): Bùi Chí Vinh

Cướp hết tình yêu dành cho mẹ anh đi
Em cướp hết như một người chinh phục
Kể từ đây không còn ai thân thuộc
Anh mồ côi trong đôi mắt em rồi

Hãy an ủi anh bằng những nụ hôn môi
Hãy che chở anh bằng vòng tay con gái
Hãy dạy anh đánh vần và tập nói:
" Yêu, yêu, yêu ... " cho đến lúc lìa đời

Em đã trở thành một bà mẹ nhân đôi
Đi chăn dắt một con cừu thần thoại
Một con cừu chứ sao? Đầy vụng dại
Anh là con cừu tình nguyện được ... mồ côi

KBird:

Anh là con cừu tình nguyện được ... mồ côi
Dù muốn hay không ... cũng trót yêu rồi
Nếu chăn dắt xin em nhè nhẹ
Đừng để cừu này ... ngỏm mất toi.

Hoàng Hà:
@ Trandangkhoa:

Này cừu non,ngươi mau ngoan nhé.
Đây suối trong,kia đồng cỏ xanh tươi
Có gió,có hoa và nắng nhuộm
Xanh thẳm làn mây phía cuối đồi.

Dẫu tình yêu ta không thay thế
Như tình yêu người mẹ thứ hai
Nhưng nếu lỡ một mai dâu bể
Sẽ cùng ngươi đi hết đường dài.

Code for you

0 phản hồi

while(true) {
loveyou();
}