Sep 24, 2016

Nim game

Nim game:

Counting to S (=30)

- Số người chơi: 2
- Mục đích: Người nào nói số S thắng
- Người đầu tiên bắt đầu từ số 1
- Mỗi người được nói tối thiểu một, tối đa N (=2) số trong lần nói của họ (không được skip). 
- Người nói tiếp theo phải bắt đầu từ số kế tiếp của người nói trước. 
- Ví dụ, người đầu tiên nói "1", người thứ hai có thể nói "2" hay "2, 3"
- Ngừoi nào nói số S (=30) là người chiến thắng 

Bài tập:
1. Hãy chơi game với S = 10, 20 (nhỏ)
2. Hãy chơi game với N = 2 hay 3
3. Hãy tìm chiến lược cho người đi trước (hoặc sau), luôn thắng
4. Tìm điều kiện (giữa S và N) để đảm bảo người đi trước luôn tìm được chiến lược thắng

Câu hỏi:
Những lý thuyết số học gì đằng sau bài toán này?

Cu lớp 1 nhà mình tìm được chiến lược với S = 30, N = 2

Tham khảo:


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Sep 20, 2016

Problems and solutions with slack


Hiện trạng sử dụng slack:
- 6 team
- Tổng số 5 - 20 channels trong mỗi sites
- Khoảng 5 - 10 thành viên trong mỗi sites/channels

Chưa hài lòng/chưa làm tốt:
- Quá nhiều team
- Quá nhiều channel
- Check vẫn bị sót thông tin

Slack làm tốt:
- PC hay mobile đều xem được
- Tốc độ xử lý nhanh
- Ai cũng xem được (nếu muốn, online), luôn và ngay
Phải chăng là mình (biết cách) chưa dùng slack hiệu quả?

Giải pháp (để cải thiện):
- Dùng shortcuts (Ctrl-1, 2, 3, 4), 
- Dùng alt+shift+(lên/xuống arrow) để move giữa các channel mà có unread message
- Giảm lượng việc, dự án, thông tin cần phải xử lý

Nguyên nhân cốt lõi:
- Nhiều việc, nhiều dự án, nhiều thông tin quá 


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Sep 11, 2016

Raw estimation for unclear requirement

Yêu cầu từ khách hàng:
Hãy estimte các task (khoảng N = 50) trong một sprint, theo giờ.

Bối cảnh:
Khách hàng yêu cầu thêm/sửa khoảng N issues.
Team chưa rõ những yêu cầu này.
Có thể dùng planning poker để estimate.
Tuy nhiên, công cụ quản lý issue của dự án là backlogtool, không hỗ trợ point estimte, nên nhóm quyết định estimate theo giờ, ghi số giờ vào backlog trong cột "số giờ dự định" cũng như "thời điểm" bắt đầu.

Quy ước về cách sử dụng số giờ: 
- 1h, 2h, 4h: Task nhỏ, yêu cầu khá rõ ràng
- 8h: Task lớn, có thể làm trong tầm 1 ngày, có thể nhiều hơn hoặc ít hơn
- 16h, 24h, 32h: Task rất lớn, team chưa hiểu yêu cầu, chưa estimate được (chính xác), cần làm rõ yêu cầu với PO, cần phân tích mức độ ảnh hưởng của issue với hệ thống/module hiện tại.

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Aug 15, 2016

What Google recommend IT/CS students about learning?

Google gợi ý một số nội dung, khoá học cho sinh viên. 

Vài điểm nhấn:

- Google cần computer science, không phải software engineering
- Các ngôn ngữ lập trình được gợi ý chủ yếu là scripting và focus và Web technologies
- Kỹ năng tự test là quan trọng
- Có khả năng sư phạm (để hướng dẫn người khác)
- Nhiều kiến thức cao cấp được đòi hỏi: Cryptography, AI, Parallel programming, 
- Tham gia các dự án nguồn mở
- Hiểu rõ về OS (môn học khó)
- Hiểu rõ về logic (không chặc chẽ về logic, thậm chí không thông tam đoạn luận thì không thể trở nên (kỹ sư) giỏi)

Xem: 


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Jul 19, 2016

What PHP full stack developers need

Thu nhập của một full stack developers 
- Khoảng 1000$+ theo giá thị trường ở thời điểm hiện tại, tháng 6 năm 2016

PHP full stack developer là gì 
- Là một senior web developers
- Làm được tất cả mọi việc, từ việc nhận yêu cầu từ khách hàng, phân tích, đề xuất, estimate, thiết kế, lập trình, sửa lỗi, test, triển khai, bảo trì

PHP full stack developers làm gì (cụ thể hơn)?
- Thiết kế đồ hoạ, sử dụng, ví dụ Photoshop, Illustrator, 
- Frontend technologies: HTML, CSS, JavaScript, PHP
- Backend technologies: PHP và các công nghệ liên quan
- Quản trị server
- Network
- Và những gì liên quan khác, cần cho công việc
- Tư thế sẵn sàng làm những việc gì cần, khó hay dễ, thú vị hay nhàm chán... để hoàn thành công việc 

Development stack gồm những công nghệ gì
- LAMP (OS: Linux (và OS khác như Windows nếu cần), Web/application server: Apache/nginx, Database: MariaDB/MySQL/PostgreSQL, PHP (với ngôn ngữ script khác: Ruby, Python...)
- Quản trị, theo dõi, vận hành hệ thống 
- UI/UX, design 

Cụ thể hơn về các công nghệ

Quản trị hệ thống:
  1. Linux, shell scripting (cơ bản)
  2. Cloud computing: Amazon, Rackspace...
  3. Background processing: Gearman, Redis
  4. Search: Elasticsearch, Sphinx, Solr
  5. Caching: Varnish, Memcached, APC / OpCache
  6. Monitoring: Nagios

Công cụ phát triển Web:
  1. Version control: Git, Mercurial, SVN
  2. Virtualization: VirtualBox, Vagrant, Docker

Back-end tech:
  1. Web servers: Apache, Nginx
  2. Programming language: PHP, NodeJS, Ruby
  3. Database: MySQL, MongoDB, Cassandra, Redis, SQL / JSON 

Design:
  1. Converting website design into front-end code
  2. UI
  3. UX
  4. Mockup tools như balsamiq
  5. Thiết kế màn hình/giao diện 

Biết thêm về mobile technologies
  1. iOS
  2. Android
  3. Hybrid: PhoneGap, Appcelerator
Các kỹ năng khác:
  1. Thiết kế, lập trình web service
  2. Phân tích, thiết kế  database
  3. Phân tích nghiệp vụ, viết tài liệu đặc tả nghiệp vụ
  4. Phân tích, viết tài liệu thiết kế cơ bản, chi tiết
  5. Test tự động
  6. Developer testing
  7. Tự động hoá (dùng shell script)


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Jul 7, 2016

Members Left Because of Technical Debt

Tình hình:
Thành viên dự án xin nghỉ và lý do là "em thấy mã nguồn bẩn quá" và "làm mãi ở dự án, gần một năm mà không học được gì"

Phân tích lý do:
Khi nhận được thông tin member xin nghỉ, quản lý/SM giả định nhiều lý do: Lương, thưởng thấp, mâu thuẫn với đồng nghiệp, lý do cá nhân, bạn bè lôi kéo.
Member xin nghỉ vì họ có lý do nào đó, mỗi tình huống xin nghỉ đều có lý do khác nhau, và trong trường hợp này "mã bẩn", "không học được gì" là hai lý do chính

Mã nguồn bẩn:
Đây là một dạng technical debt. Dự án đã phát triển trong trạng thái không kiểm soát về mã nguồn, kiến trúc. Một số biểu hiển về sự bẩn của mã nguồn:

  • Nghiệp vụ lung tung
  • Đọc code spaghetti không hiểu được, học khó hiểu
  • Với yêu cầu từ khách hàng, developer phải đi "mò" những yêu cầu ẩn
  • Dự án có nghiệp vụ phức tạp nhưng không có tài liệu về nghiệp vụ, quy trình, thiết kế 
  • Dự án sử dụng CodeIgnitor như mô hình MVC và kiến trúc không được tuân thủ tốt
  • Coding convention không được tuân thủ 
  • Không có tài liệu thiết kế database. DB không có annotation
  • Luôn xảy ra nhu cầu cần sửa đổi cấu trúc DB, tên trường trong DB do thay đổi nghiệp vụ
  • git pull request không được review (dù có cơ chế approve) tốt 
  • (HMLT) Data table đơn giản, ít chức năng, cần phải code nhiều khi có yêu cầu thay đổi từ khách hàng (như: sorting, hide/unhide trường, dữ liệu, điều chỉnh độ rộng cột, hàng, inline edit cell (giống Excel)

Không học được gì:
  • Dự án không thực sự có một người mạnh về kỹ thuật ở mức "technical lead", dẫn dắt team về định hướng kỹ thuật 
  • Kỹ thuật sử dụng trong dự án không có gì nổi trội 
  • Không được hướng dẫn
  • Không được hỗ trợ gì nhiều từ những người có kinh nghiệm hơn (họ bận việc khác)
  • Phản biện: Liệu member này thiếu sự tự giác, tự chủ, cầu tiến hay không?
  • Các framework kỹ thuật dùng trong dự án cũ kỹ 
  • Dự án/sản phẩm thiếu một vision dài hạn và mục tiêu ngắn hạn (member lo lắng cho tương lai của dự án/của bản thân mình)
​Giải pháp:
  1. Trả nợ technical debt càng sớm càng tốt
  2. Viết tài liệu cho hệ thống
  3. Viết thiết kế cho hệ thống
  4. Tổng hợp know-how, kiến thức cho hệ thống, từ developers, members trong team
  5. Tổ chức test festival để thu thập kiến thức, tìm ra một cái nhìn chung về cách hệ thống chạy, requirement, tìm lỗi hệ thống
  6. Tổ chức code review festival để chia sẻ hiểu biết về code, tìm ra bất cập về mã nguồn
  7. Tổ chức retrospective thường xuyên để tìm ra những điểm bất cập, những điểm cần/có thể improve 


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Jun 11, 2016

Backlog Management for Product Owner

Tình huống
Một dự án phát triển P bao gồm 5 developers và một scrummaster (hoặc project lead/project manager... tuỳ theo cách bạn gọi) chung sống và phát triển một phần mềm vui vẻ.

Họ sử dụng một dạng kanban để quản lý công việc của họ. 
Các lane trong kanban khá đơn giản và cơ bản, bao gồm TODO, DOING, VERIFIED (đã test) và DONE (hoàn thành).

Họ sử dụng cycle, theo cách gọi khác là sprint/iteration là 2 tuần. 
Cứ mỗi cuối 2 tuần, họ archive những công việc đã DONE, tiếp tục chuyển các công việc từ TODO sang DOING và tiếp tục công việc.
Cách sử dụng của họ có vẻ lẫn, hay áp dụng phối hợp những thói quen của các khung làm việc Scrum, Scrumban và Kanban.

Cho đến một ngày, Product Owner từ phương trời xa đến join vào dự án.
PO chưa có thói quen sử dụng phần mềm để quản lý yêu cầu.
Tuy nhiên, khi nhìn thấy công cụ kanban mà nhóm phát triển sử dụng, PO thích ngay mà muốn dùng kanban để quản lý chính công việc của anh ta, cùng đội phát triển.

Các cách tiếp cận
Một developer có kinh nghiệm khuyên rằng, khi chưa quen với backlog, kanban và các công cụ, PO có thể đưa rất cả các yêu cầu, nguyện vọng, phản hồi của anh vào TODO và nhóm sẽ sử lý dần. 

PO gật đầu và làm theo cách đó một thời gian

PO nhận ra rằng nhu cầu quản lý công việc cần làm (backlog) của PO nhiều hơn là TODO.

Sau một thời gian sử dụng cột TODO, trao đổi với nhóm phát triển hàng ngày, kéo thả task từ TODO sang DOING, VERIFY những gì mình yêu cầu, PO phát triện ra rằng workflow của anh nhiều hơn thế. Anh không chỉ cần biết những gì cần phải làm.

PO cần một backlog như thế nào?
Việc quản lý yêu cầu (backlog) thuộc về PO. 
Những ý tưởng bất chợt đếu với PO cũng cần được ghi lại.
Những công việc, feedback từ stakeholders mọi nguồn cũng cần được PO lưu lại.

Hơn thế nữa, anh cần đánh giá độ ưu tiêu của các công việc này. Cái gì cần làm trước, cái gì làm sau, cái gì quan trọng hơn... đối với từng stakeholder, với chính bản thân anh ta và chính dự án. 

Đội phát triển cũng involve, ở thời điểm thích hợp 
Sau khi có một danh sách backlog có độ ưu tiên đứng từ góc nhìn của PO, những yêu cầu này được trao đổi đội phát triển để quyết định một số điểm như: 1) tính khả thi, 2) bao giờ nhóm có thể bắt đầu 3) mất khoảng bao nhiêu giời gian và dự định hoàn thành.

Những nội dung trên cần sự trao đổi và đồng thuận giữa PO và nhóm phát triển.

Một số trường hợp dễ thấy:
  1. PO muốn, nhưng dev team không thể đáp ứng về mặt kỹ thuật, năng lực hay thời gian,
  2. PO muốn, nhưng dev team quá bận vì những tác vụ khác, do đó không làm được. 

Những yêu cầu từ phía PO được cho là "OK" khi nhóm phát triển tự tin rằng họ có thể thoả mãn yêu cầu của PO mà không cần hỏi thêm gì nhiều. 

Tới thời điểm này, việc định nghĩa yêu cầu công việc được coi là xong. 
Tiếp đó, nhóm phát triển làm việc được giao và khi họ xong, sản phẩm đầu ra được VERIFY bởi PO (là tốt nhất)

Sau khi yêu cầu được đưa vào DOING, nhóm phát triển phát triển theo quy trình mà họ đã quen thuộc. 

JIRA/Atlassian đã làm tốt việc trên, mô trình trên được JIRA mô tả và sử dụng như sau.

Chia "TODO" thành các lane,
(từ trái qua phải) 
- Not ready yet: Feedback thô đối với nhóm dev. Những task dạng này cần PO, stakeholder trao đổi rõ ràng hơn, trả lời câu hỏi: 1) Họ muốn gì? 2) Thay đổi (high level...) thế nào 
- "Not ready yet" được (tiền xử lý) sao cho thông tin đơn giản, dễ hiểu và được đưa vào "Unprioritized". Unprioritized nghĩa là, những công việc trong lane này là các việc phải làm, nhưng chưa được đô tiên và đã khá rõ ràng hơn là ý tưởng thô.
- Ready for dev team: Nhóm dev hài lòng về độ chi tiết của yêu cầu và sẵn sàng kéo sang cột DOING

Lưu lý:
Backlog quản lý bằng kanban ở đây có chức năng: Thể hiện độ ưu tiên cuả công việc theo một cách nào đấy, tốt nhất là đánh số được theo chuỗi 1, 2, 3... trong đó: việc số càng nhỏ thì độ ưu tiên càng lớn. 

Nếu không thể sử dụng chuỗi số, PO có thể đánh độ ưu tiên theo thứ tự: High, Medium, Low...

Tham khảo:
The JIRA roadmap backlog has four major states:

  1. Not ready yet: Raw feedback
  2. Unprioritized: Committed to the back log, but not ready for handoff to development
  3. Ready for feature teams: The feature teams should work on the highest priority items first
  4. In design (PM and Dev): The feature story is actively being worked on



--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

May 30, 2016

Lần (từ cũ)


​Lần:

- trong "tôi tự học" của Nguyễn Duy Cần
- chưa có trong Vietlex 2013 anh nhỉ?
- Nghĩa là "dần dần" (theo em thế)

Ít thấy từ "lần" đứng độc lập.

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

May 16, 2016

アジア撤退企業に共通する「日本式マネジメント」の時代錯誤/Những điểm chung về quan điểm quản lý sai lầm của các công ty phải từ bỏ Asia

アジア撤退企業に共通する「日本式マネジメント」の時代錯誤/Những điểm chung về quan điểm quản lý sai lầm của các công ty phải từ bỏ Asia:

1. ちょっと進出してみてダメだったら引き上げる。本気でアジア進出してほしいですね。 Quan điểm "làm thử" nửa vời khi thâm nhập (thị trường) Asia. Hãy làm thật luôn đi. 
2. 海外進出の問題点(1) 日本式を押し通しすぎる / Áp dụng cách làm kiểu Nhật quá cứng nhắc (và thất bại)
3. 海外進出の問題点(2) 現地人材のマネジメントができない / Nhiều công ty Nhật chỉ outsource cái không phải core tech/biz của họ. Họ không cần người tài ở bản địa. Chuyện người Nhật kém quản lý người bản địa giỏi: Thường thấy 
4. 日本企業がアジアで苦戦するのは「アジアNo.1」思考に原因がある / Đừng cố, vì Trung Quốc nó to lắm
5. 「皆が集まる会議」が多すぎる / Cơ chế ra quyết định chậm, nhiều ringi


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

May 11, 2016

Training, mentoring and coaching: Giống, khác nhau thế nào?

Giới thiệu
Bài viết này giới thiệu ngắn gọn sự giống và khác nhau cơ bản giữa training, coaching và mentoring trong phạm vi giáo dục cho người đã đi làm, cụ thể hơn là nhân viên IT qua trải nghiệm của các nhân tôi (Vũ Hưng)

Tạm dịch và giải thích từ ngữ
Training: Là đào tạo theo cách thông thương chúng ta thường thấy. Việc dạy trong trường trường học là training
Coaching: Huấn luyện. "Huấn luyện viên" trong bóng đá được gọi là "coach"
Mentoring: Hướng dẫn

Đây là ba hình thức phát triển (cá nhân) và đều thuộc phạm trù giáo dục.

Các điểm chính 
  1. Training: Dạy học theo một chương trình đã lên kế hoạch sẵn về một kỹ năng, kỹ thuật dùng trong công việc hiện tại hay tương lai. Hiểu đơn giản, "training" là dạy, thường là bị động và một chiều.
  2. Coaching: Hướng dẫn 1-1 (hoặc 1-N) về việc phát triển kiến thức, kỹ năng, khả năng của cá nhân giúp tăng hiệu quả công việc. Điểm nhấn ở đây là huấn luyện viên làm việc/giúp đỡ 1-1 với người được hướng dẫn. 
  3. Mentoring: Người có nhiều kinh nghiêm và hiểu biết hơn hỗ trợ việc phát triển người khác. Mentoring tập trung và quan hệ giữa người truyền kiến thức và người nhận kiến thức.

Đón đọc
  1. Các hình thức coaching
  2. Các tình huống sử dụng coaching
  3. Active learning, một hình thức học mới
  4. Vì sao training không hiệu quả với công ty (mà phải dùng coaching)?
Tài liệu tham khảo


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

May 5, 2016

Closing a Project: What you need to do as a Project Manager

Tình huống

Bạn là một project manager (PM) (hay Scrummaster (SM)) được điều động vào một dự án phát triển (phần mềm) thay thế PM/SM cũ. Dự án đang ở giai đoạn cuối. Theo báo cáo từ PM/SM cũ, dự án "gần xong, một chút nữa là xong" nhưng một số cái (deliverables, specs, requirements...) không thể "chốt" hay close được với khách hàng. Mục tiêu được giao từ cấp trên là close dự án này, càng sớm càng tốt, giải phóng (bớt) nhân sự, không để dự án dai dẳng, tốt công của và thời gian. Với tư cách là PM/SM, bạn nên/phải làm gì?

Dự án đang ở đâu?

Trả lời câu hỏi này để biết được hiện trạng của dự án. Một số câu hỏi cần đặt ra
  1. Dự án cần làm những gì? 
    1. Schedule/WBS (Work Breakdown Structure) ở đâu, đã làm được gì?
    2. Product backlog/sprint backlogs ở đâu, đã làm được gì?
  2. Những gì (chức năng/user story) đã hoàn thành, những gì chưa hoàn thành, những gì đang "treo" (đang được confirm). Nên trả lời riêng câu hỏi này.
  3. Dự án đang trong phase nào? (yêu cầu, thiết kế, lập trình, kiểm thử đơn vị, kiểm thử tích hợp, deploy, tạo tài liệu). Một số chức năng có thể ở phase này, hoặc ở phase khác. Cần liệt kê cụ thể.
  4. Đầu vào của dự án gồm những gì? (tài liệu yêu cầu, user stories, thiết kế, nếu có)
  5. Đầu ra của dự án gồm những gì? Đã làm được gì? Trạng thái (being confirmed, being reviewed, done...)
  6. Kế hoạch và trạng thái (schedule, burndown chart)

Vấn đề của dự án là gì?

Cần họp toàn team, lắng nghe thông tin từ tất cả những người liên quan.

Risk và issue log là hai tài liệu quan trọng nhất cần có. Với những dự án quản lý kém, hai tài liệu này thường không tồn tại hoặc quản lý kém. Đặc biệt, với dự án không chạy tốt theo khung Scrum, thường hai tài liệu này không tồn tại và cần được tạo lại.

Lưu ý rằng trong danh sách issue log không chỉ chứa các vấn đề kỹ thuật mà cần bao gồm cả danh sách các vấn đề về nhân sự, communication, yêu cầu, thiết kế, kỹ thuật, năng lực của cả nhóm.

Cận biên tích hợp của dự án

Xác định những hệ thống, chức năng có tích hợp, liên kết với dự án chúng ta tiếp quản. 

Một pattern hay thấy ở các  dự án phần mềm là, từng module đơn lẻ đã hoàn thành nhưng phần tích hợp các module đó trong phạm vi nội bộ do nhóm phát triển đảm nhận không được ý thức tới, chưa làm, hoặc làm nửa vời, không có issue log.

Một pattern khác hay thấy hơn là phân tích hợp hệ thống/phần mềm chúng ta tiếp quản với hệ thống bên ngoài làm chưa tốt. Với phần này, cần xác định các hệ thống liên quan, những người chịu trách nhiệm (đầu mối) của các dự án đó, họp và xác định trạng thái, công việc tồn đọng, issue list.

Tiếp theo phải là gì?

Sau khi đã tiến hành ba bước trên, cần refine lại danh sách công việc còn lại cần làm, tạo schedule/WBS hay masterplan cho các sprint tiếp theo. Trả lời câu hỏi: Cần khoảng bao nhiêu thời gian (và tiền) (ở mức high level) để hoàn thành nốt công việc tồn đọng. Nếu tốt hơn, nên tạo plan cho từng sprint ở mức high level.

Tiếp theo phải là gì?

Tiến hành dự án theo cách thông thường mà bạn, với tư cách là PM/SM nghĩ là hợp lý để hoàn thành dự án với mức độ tự tin và quyết liệt cao nhất. Luôn chú ý tới communication và risk (là hai yếu tố khá "cao cấp" với PM/SM non tay)

Kết luận

Theo kinh nghiệm cá nhân, việc xác định issue log và các hệ thống cận biên cần tích hợp tới là các điểm nóng cần làm để có thể close được dự án.


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Apr 27, 2016

Cao đẳng (từ cũ)

"cao đẳng" với nghĩa "cao cấp" chưa có trong Vietlex.

Trích từ cuốn "tôi tự học" của Nguyễn Duy Cần.


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Apr 6, 2016

Why we have bugs / Vì sao có bug?

Một câu hỏi ngây thơ nhưng không đơn giản: Vì sao chương trình phần mềm có bug, bug ở đâu ra?

Ai hỏi câu này?
Tôi nhận được câu hỏi này từ các thành viên trong dự án. Tester và developer đều hỏi câu này dù họ làm phần mềm nhiều năm?

Vì sao phải trả lời câu hỏi này?
Đây là câu hỏi có vẻ đơn giản, nhưng câu trả lời không dễ. Với người ít kinh nghiệm làm phần mềm, họ trả lời "bug là bug". Với người nhiều kinh nghiệm hơn, ẩn ý từ câu hỏi này "bug từ nguồn nào tới để chúng ta/chúng tôi biết cách phòng tránh."

Nói thêm về quy trình phần mềm
Dù chúng ta phát triển phần mềm theo quy trình nào, những khái niệm sau luôn đúng.
- Mỗi công đoạn làm phần mềm trong quy trình đều có đầu vào vào đầu ra cụ thể
- Quá trình test phát hiện ra lỗi nhiều nhất

Công đoạn (chính) nào phát hiện được bug?
- (Các loại) test, như: unit test, function test, regression test, integration test, system test, user acceptance test
- Review (nói chung): Tài liệu, mã nguồn hay các loại input/output nói chung

Đầu vào của công đoạn coding là gì?
Đây là câu hỏi quan trọng hướng tới câu trả lời "bug từ đâu ra" của lập trình viên và tester. 
Tùy vào quy trình dự án, một số đầu vào điển hình của công đoạn coding là:
- Tài liệu thiết kế (basic design, detail design)
- Requirement definition
Tùy vào dự án, quy trình, đầu vào là khác nhau

Dựa vào đâu để biết đầu ra đúng hay sai?
"Đầu ra" ở đây được hiểu đơn giản là "mã nguồn", sản phẩm một hay nhiều chức năng phần mềm.
Việc kiểm tra đầu ra đúng hay sai cần dựa trên một cái gì đó đúng. Ta có thể chọn các đầu vào của việc coding làm tài liệu "đúng".

Test thế nào nếu không có "đầu vào" của việc coding chuẩn?
- Free test (test tự do, không theo một kịch bản nhất định. Mức độ test tùy vào kinh nghiệm của người test)
- Test phá (một dạng test tự do, tìm cách làm cho chương trình chết)
Nghĩa là, cứ lần mò mà test 

Nếu không có requirements definition hay tài liệu thiết kế rõ ràng) thì test thế nào?
Trả lời: Test phá (agile testing)

Nếu khi test, tôi tìm ra một điểm mới, không biết là đúng sai thì làm thế nào?
Hãy log lại và confirm với toàn team. Đây là cơ hội để cả team review lại kiến thức của họ về hệ thống

Làm thế nào để tìm bug khi không có tài liệu:
Câu trả lời là: Agile testing

Tôi là tester, phải làm gì khi không biết thế nào là đúng/sai?
- Agile testing
- Thật chủ động
- Làm việc chặt chẽ với người hiểu code và hiểu yêu cầu nghiệp vụ



--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Feb 21, 2016

yun52.com - do you review code and commit

Cảm nhận khi đọc những dòng comment sau trong code (index.html)
- Không review code
- Deploy thủ công
- Tăng lương đi
- Đuổi cổ lập trình viên này đi (hắn đáng ra đi)

Nhưng mà, ít tiền, ít người thì phải làm thế nào?

http://yun52.com/index.html

*这个公司没有年终奖,兄弟别指望了,也别来了,我准备辞职了。
*另外这个项目很多意外×bug×,你坚持不了多久的,拜拜,祝好!

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Feb 8, 2016

Google Deepmind: Can it reverse engineering the universe?

1997:
- DeepBlue beaten Gary Kasparov bằng brute force.
- Với cờ vua thì chỉ có khoảng 35 moves cho mỗi lần.

2016+:
- Google DeepMind chưa đánh bại vô địch thế giới cờ vua nào ở public nhé!
- Lý do: Số lượng vị trí có thể của cờ Go lớn hơn tổng số nguyên tử trong toàn vũ trụ (bàn cờ 19x19, trung bình có 250 khả năng đi cho mỗi lượt [do đó không brute force được theo kiểu của Chess])

Deepmind (super computer)
- 170 GPU
- 1200 CPU

Keywords:
- Deep neural networks
- Tree search
- Monte Carlo tree search
- Deep learning
- Neural networks

Liệu DeepMind có thể reverse engineering quy luật chúa tạo ra và vận hành vũ trụ?

http://deepmind.com/publications.html

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Dec 14, 2015

AOCLIFE recorded games collection


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Dec 10, 2015

Đọc lại: Lời thú tội của một sát thủ kinh tế

​Bản chất của việc cho vay: Tạo ảnh hưởng, gây ra sự lệ thuộc, một dạng thức mới của chủ nghĩa đế quốc.
Họ cho vay với hy vọng trong thâm tâm là nước cho vay không bao giờ trả nợ được và lệ thuộc, gần như là vĩnh cửu.

Indonesia, Trung Mỹ là các ví dụ.

Đấy là kết luận của cuốn

Lời thú tội của một sát thủ kinh tế:
http://gold24k.info/upload/satthukinhte.pdf

Nov 16, 2015

Business Rules & Use Story

Ví dụ:
BR123 Tenured professors may administer student grades.
Business rule này là một story / chức năng to

BR245 All master's degree programs must include the development of a thesis.
Business rule này tương ứng với một Specification

FR1 It must be possible to specify the following details when creating a new user:
    First name
    Surname
    Birth date
    ...
Business rule này tương ứng với một Specification

Việc đọc một <yêu cầu> và phân loại nó, là
- user story
- business rule
- chức năng  to
- hay tương ứng với một Specification
mình nghĩ không khó

Việc này rất có lợi khi thiết kế và phát triển.
Nếu người viết business rule & yêu cầu hiểu được ở mức độ lập trình thì sẽ rất thuận tiện cho developer.

http://agilemodeling.com/artifacts/businessRule.htm
http://www.allaboutrequirements.com/2011/09/use-case-specification-example.html

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Oct 9, 2015

Most common passwords used in Vietnam, Hanoi (2014 data)

​​Most common passwords used in Vietnam, Hanoi (2014 data)


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Oct 8, 2015

Scrum: Xác định thời gian cốt lõi (Core Time)

Giới thiệu

Khung làm việc Scrum khuyến khích thành viên nhóm Scrum làm việc toàn thời gian (full-time). Tuy nhiên, trong thực tế có nhiều tình huống ở đó thành viên không hay không thể làm việc toàn giời gian. Điều này dẫn tới mâu thuẫn về việc quyết định thời gian làm việc (chung) trong nhóm.

Bài viết này giới thiệu một số tình huống tìm thấy trong cuốn "Scrum Field Guide" của Mitch. Cách giải quyết mâu thuẫn này qua việc xác định Core Time (thời gian cốt lõi) và đối chiếu thực tế tình hình ở Việt Nam.

Tình huống

Trong cuốn SFG, Mitch đưa ra một ví dụ về mâu thuẫn giữa hai thành viên trong nhóm Scrum về giờ làm việc. Jacob đến công ty sớm, từ 7h30 trong khi Russ bắt đầu công việc vào 11h trưa. Khi mâu thuẫn xảy ra, ScrumMaster đứng ra xử lý việc xác định core time cho toàn thành viên trong nhóm Scrum, bao gồm việc chốt thời gian chung mà cả hai thành viên Jacob và Russ đều có mặt tại công ty.

Các tình huống khác có thể ảnh hưởng đến toàn nhóm Scrum, liên quan đến thời gian bao gồm:

Nhóm làm việc phân tán tại nhiều địa điểm, nhiều múi giờ khác nhau (distributed)
Nhóm có thành viên làm việc từ xa (remote)
Nhóm có thành viên làm bán thời gian (part-time)
Nhóm có thành viên chỉ tham gia một phần công việc dự án ở dạng tư vấn (consultant team member)

Việc không xác định được thời gian của nhóm sẽ có hệ quả là: Thành viên trong nhóm không có khoảng thời gian (chung) để xác định công việc liên quan giữa các bên.

Xác định Core Time

Việc xác định thời gian cốt lõi cho nhóm khá đơn giản. Nó chỉ là việc thành lập một bảng gồm khoảng giờ (giờ đến công ty, giờ buổi sáng, nghỉ trưa, giờ làm việc chiều, giờ kết thúc công việc) cũng mọi thành viên trong nhóm.

Việc xác định thời gian này nên cho ScrumMaster hỗ trợ việc ra quyết định và các thành viên trong nhóm quyết định dựa trên sự đồng thuận. Việc quyết định thời gian cốt lõi cần cân bằng lợi ích, nhu cầu, mong muốn của mọi thành viên.

Hình dưới đây mô tả bảng thời gian làm việc của một nhóm có thời gian làm việc flexible:

 

Giáp

Ất

Bính

Đinh

Mậu

Giờ bắt đầu buổi sáng

10h00

7h30

8h30

7h30

9h30

Giờ ăn trưa

12h00

12h00

12h00

12h00

12h00

Giờ bắt đầu buổi chiều

13h00

12h30

13h00

13h00

13h00

Giờ kết thúc buổi chiều

19h30

16h30

18h00

17h00

18h30

Từ bảng này có thể thấy thời gian làm việc chung của nhóm như sau

Buổi sáng: 10:00–12:00 (thời gian chung 2 giờ);
Giờ ăn trưa: 12:00–13:00;
Buổi chiều: 13:00–16:30 (thời gian chung 3,5 giờ).
Đối chiếu thực tế

Nếu công ty không sử dụng chế độ thời gian flexible, hầu như các nhóm không gặp vấn đề với thời gian cốt lõi.

Với những nhóm freelancer, việc xác định thời gian cốt lõi là cần thiết.

Những Scrum team có thành viên làm những việc đặc thù như: hạ tầng, quản trị máy chủ, phân tích nghiệp vụ, đội task force... thường làm việc bán thời gian, họ chỉ xuất hiện khi cần. Với các nhóm này, cần xác định trước thời gian cốt lõi.

Với những công ty startup nơi việc quản lý thời gian là lỏng lẻo, họ đặt việc hoàn thành công việc cao hơn là bó buộc thời gian cũng cần chú ý.

Những nhóm làm việc remote cho một nhóm có khách hàng, đồng nghiệp ở nước ngoài, việc họp, demo... thực hiện qua Skype. Họ cũng rất cần xác định thời gian cốt lõi.

Nếu nhóm có những thành viên hay đi họp (ngoài dự án), như các vị trí kinh doanh, hỗ trợ khách hàng... việc chốt thời gian cốt lõi cũng không kém phần quan trọng.

Ngoài ra cần chú ý tới những thành viên được nghỉ 1h trong gian đoạn thai sản (theo quy định của nhà nước), hay những buổi training nội bộ hay ngoài công ty.

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

No execuse for being brief on Android.

Sep 8, 2015

Communication is a sign of dysfunction

Amazon's Jeff Bezos:

"I understand what you're saying, but you are completely wrong," he said. "Communication is a sign of dysfunction. It means people aren't working together in a close, organic way. We should be trying to figure out a way for teams to communicate less with each other, not more."

The organization should be self-organized.


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Aug 24, 2015

How to Read “Scrum Field Guide” book – A short review

Được công bố tại: http://labs.septeni-technology.jp/agile/how-to-read-scrum-field-guide-book-a-short-review/

Giới thiệu

"The Scrum Field Guide: Practical Advice for Your First Year (Agile Software Development Series)" hay còn được gọi tắt là "Scrum Field Guide" (SFG) là một cuốn sách dành cho những người mới bắt đầu Scrum được viết bởi Mitch Lacey. Phiên bản hiện có trên thị trường là phiên bản một. Phiên bản hai hiện đang chấp bút và theo tác giả, có thể sẽ được phát hành vào tháng 11 năm 2015.

Đây là cuốn sách viết theo phong cách kể chuyện với cách tiếp cận tự nhiên, đọc nhanh và dễ như một cuốn tiểu thuyết.

Cấu trúc sách "Scrum Field Guide"

Sách được chia làm 4 phần chính như sau.

Chapter 1 Scrum: Simple, Not Easy

Chương mở đầu, chuyển tải một ví dụ và thông điệp tới người đọc "Scrum dễ tiếp cận, nhưng khó làm chủ."

Part I Getting Prepared

Thứ tự các bước thành lập một nhóm Scrum, từ bước lobby nội bộ tới việc thành lập chính thức nhóm. Scrum.

Part II Field Basics

Những yếu tố cơ bản quan trọng khi triển khai Scrum thực tế.

Part III First Aid

Những việc cần làm khi chạy các sự kiện (cuộc họp) Scrum.

Part IV Advanced Survival Techniques

Các ví dụ cao cấp hơn

Cuốn sách gồm 30 chương, 365 trang chia làm bốn phần như trên.

Các chương được chia thành các phần nhỏ theo cấu trúc như sau,

  1. Vài dòng tổng kết toàn bộ chương,
  2. The Story: Một câu chuyện thực tế làm tiền đề khơi gợi chủ đề cho các phần còn lại của chương,
  3. The Model: Mô hình hóa "Câu chuyện" trong phần trước. Mỗi ý chính được chia thành một phần nhỏ với ý chính là tên của phần đó,
  4. Key to Success: Chìa khóa tới thành công. Mỗi ý chính được chia thành một phần nhỏ với ý chính là tên của phần đó.

Thứ tự đọc

Cuốn sách được viết theo phong cách kể chuyện và tương đối dễ tiếp cận.

Nên đọc trước phần forward và preface để nắm được thông tin chính.

Tiếp theo là đọc mục lục. Các ý chính và kết luận thể hiện rõ trong tiêu đề các chương. Với người đọc có kinh nghiệm, việc đọc mục lục có thể tiết kiệm nhiều thời gian và giúp rút ngắn thời gian hấp thu kiến thức từ sách. Với người mới với Scrum, vẫn nên đọc trước mục lục, sau đó đọc các chủ đề theo chương và quay lại (để recap) nội dung cuốn sách thông qua việc đọc lại mục lục.

Nói chung, các chương trong sách SFG là một chủ đề riêng biệt, có thể đọc theo thứ tự chương bất kỳ.

Người đọc có thể đọc theo từng chương theo thứ tự, từng phần theo thứ tự.

Riêng với mỗi chương, nên đọc theo thứ tự từ "tổng kết" tới "story", "model" và cuối cùng là "key to success".

Mẹo vặt

  1. Nên dùng bút hightlight lại những phần mình cần chú ý,
  2. Nên đọc lại sách, hoặc chương vài lần để trải nghiệm lại tình huống,
  3. Lần đầu nên đọc nhanh và đánh dấu lại bằng bút hightlight,
  4. Lần đầu nên đọc lướt, highlight trong timebox 10 phút với mỗi chương,
  5. Xem các hình, bảng trong sách – rất trực quan dễ hiểu,
  6. Các ý chính là tên của các phần trong từng chương. Highlight các phần này. Đây là những ý chính của cuốn sách.

Lời kết

SFG là một cuốn sách dễ đọc, thích hợp cho người mới tiếp cận Scrum, với nhiều ví dụ và tình huống cụ thể có thể giúp người đọc rút kinh nghiệm và áp dụng trong thực tế.

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.