Author: giangnguyen

  • Này em, em yêu con người đến thế sao?

    Hôm nọ, cô giáo hỏi mình rằng mình thích anh hùng nào nhất. Mình suy nghĩ rất lung, rồi trả lời rằng em không thích anh hùng nào đặc biệt, nhưng em thích hệ thống thần thoại Hy Lạp hơn hệ thống thần ở Việt Nam bởi nó rất “người”. Các vị thần cũng có giận dữ, ghen tuông, làm sai, bị trừng phạt…, nói chung là không hề “hoàn hảo”.

    Cô giáo bảo, em thích con người đến vậy sao?

    Mình suy nghĩ, rồi bảo: nếu nghĩ kĩ, có lẽ em thích nữ thần trí tuệ và thần thợ rèn Hephaestus. Thích thần trí tuệ thì rõ rồi, mình rất thích được thông minh. Nhưng tại sao lại là ông thần thợ rèn Hephaestus, ông thần què chân, chồng Aphrodite, bị vợ cắm sừng mà cũng chẳng làm được gì?

    Câu hỏi đó cứ luẩn quẩn trong đầu mình hoài. Cho đến một hôm, mình chợt nghĩ: hình như, một mặt mình rất muốn được khen là thông minh, mặt khác, mình biết mình không thông minh đến thế, nên mình luôn mong mỏi được người đời thông cảm cho sự yếu kém của mình. Mà người đời ở đó là ai chứ. Là những người “thân” thường xuyên lôi những bài toán đố ra hỏi mình, và cười nhạo vì mình không được nhanh, không được lanh. Là mấy người nhăn mặt vì mình mất mấy ngày mùa hè chưa thuộc nổi bảng cửu chương, để sau đó vào năm học biết được rằng một bảng cửu chương học cả tuần trời.

    Mình nhớ về những lần xấu hổ đó, cảm thấy như một cục nghẹn dâng lên trong cổ họng, dù đã bao nhiêu năm trời. Ừ, mình đã muốn quên, nhưng nó vẫn ở đó.

    Mình nhắm mắt, chắp tay, tự hát cho mình như một đoạn kinh cầu. Rằng, dù em không thông minh, em vẫn xứng đáng được yêu thương, được yêu thương thật nhiều. Em được yêu thương, dù em có yếu kém. Em được yêu thương, dù em có khiếm khuyết. Em xứng đáng được yêu thương, em nhé.

    Và đứa trẻ trong tâm hồn mình bật khóc.

    20210413

  • Tuyển tập về cái chết

    1. Chết cho tư tưởng: https://tiasang.com.vn/-van-hoa/Doc-sach-Chet-cho-tu-tuong-cua-Costica-Bradatan-10637
    2. Ai rồi cũng chết: https://zingnews.vn/ai-roi-cung-chet-cuon-sach-thuc-tinh-tam-hon-post563686.html
  • Hộp quà (Tặng quà Part 1)

    Đối với quà tặng, vỏ bọc của món quà (cái hộp) lắm khi còn quan trọng hơn cả nội dung món quà, bởi nó đóng phần lớn trong việc thể hiện thành ý của người tặng. Tôi tặng anh một món quà được bao gói cẩn thận đẹp đẽ, ấy chính là thể hiện tôi dành thời gian chăm chút cho món quà, mà thời gian thì quý, nên tôi dành thời gian cho món quà tặng anh đồng nghĩa với việc tôi trân trọng anh. Nó cũng giúp người nhận tránh được định kiến ban đầu khó xử về nội dung món quà, nhìn cái bao gói chỉn chu tôi cũng cảm thấy mình được anh trân trọng, tôi có được cái sự háo hức và hồi hộp khi mở quà. Người Nhật còn có hẳn một văn hóa gói bọc Tsutsumu, với nào là gói bằng giấy, khăn, chọn màu rồi lại thắt nơ (https://kilala.vn/phong-cach-song/van-hoa-qua-tang-nhat-ban-vi-sao-tinh-te.html).

    Dài dòng thế, nhưng mà, bạn đã bao giờ:

    • loay hoay với một đống giấy gói, băng keo, kéo, mà hộp quà vẫn xộc xệch nhăn nhúm ngược xuôi?
    • đi ra tiệm mua cái hộp cho nhanh thì không có hộp nào vừa vặn, nên đành nhét một đống giấy vào nhìn cho đỡ trống?

    Cứu tinh là đây: https://www.templatemaker.nl/en/

    Bạn chỉ cần:

    • ước lượng kích thước của món quà mình cần
    • chọn mẫu, nhập kích thước (có cả đơn vị cm, mm, inch)
    • chọn loại file cần in, kích thước giấy in
    • In, cắt, dán

    Ngoài chuyện làm hộp quà, các mẫu ở đây còn có thể dùng làm dụng cụ học tập, đồ trang trí, phong bì… được nữa đó.

    Chân thành cảm ơn Maarten van der Velde vì ý tưởng xuất sắc này. Đã 4 năm rồi kể từ ngày mình thấy trang này, vẫn vẹn nguyên cảm giác sung sướng khi có một sản phẩm đánh trúng nhu cầu đến thế.

    Trang nhà tác giả:

    https://www.linkedin.com/in/mhvandervelde/

    https://www.behance.net/mhvandervelde

    Trà Giang, 20201117

  • Ước lượng Story Point trong Scrum: Liệu còn hữu dụng?

    Blog, Development | Apr 26, 2018
    PHẦN MỘT
    Chúng ta hẳn còn nhớ lần đầu đọc Tuyên ngôn Agile (The Agile Manifesto). Nó đem đến cảm giác cực kì phấn khích. Những giá trị của nó thúc đẩy và gia tăng sức mạnh của đội nhóm. Nó tạo ra giá trị sâu sắc hơn cho khách hàng và đẩy lùi những chuyện vớ vẩn khỏi công việc phát triển phần mềm. Mọi thứ đã đâu vào đấy.
    Tua nhanh đến năm 2018, và “Houston, có biến”.
    Scrum hữu dụng, và mọi thứ vẫn đâu vào đấy, nhưng… việc áp dụng Agile và Scrum một cách nhanh chóng đã tạo ra một cơn ác mộng cho những người lên kế hoạch ở cấp độ tổ chức (enterprise-level planners) – những người chịu trách nhiệm cho việc ước lượng Epic/Portfolio. Lĩnh vực này đã lấy một thông lệ được tạo ra cho những nhóm nhỏ làm việc mật thiết với nhau một cách đồng bộ – sau đó cải tiến để áp dụng cho số đông.
    Một nhóm Scrum trở thành vài nhóm hay hàng chục nhóm, mỗi nhóm có một cách hiểu khác nhau về “thế nào là một Story Point”. Hiện nay, không hề có nhóm nào có cùng trải nghiệm, cơ sở hạ tầng hay các bộ kĩ năng giống với nhóm nào; do đó, không hề có nhóm nào định nghĩa Story Point giống nhóm nào.
    Rồi đột nhiên, các quản lý cấp cao cố gắng chia Epic backlog dựa trên hơn 25 diễn giải khác nhau về một Story Point. Càng nhiều nhóm đang làm trên một sản phẩm, ngọn núi phải leo càng lớn [Xin thứ lỗi cho sự châm biếm này]
    17 anh chàng ở Snowbird (17 người tham gia cuộc họp ở Snowbird, từ đó đi đến Tuyên ngôn Agile năm 2001 – ND) sẽ nói gì?
    Scrum cơ bản sẽ nói rằng đừng cố thử ước lượng một Epic backlog, vì việc đó chỉ phí công và đầy chỗ không chính xác. Các chi tiết chắc chắn sẽ thay đổi, và mọi thứ sẽ lại được sắp xếp lại thứ tự ưu tiên vào phút cuối. Nhưng nói điều đó với Epic/Portfolio Manager đang phải đảm đương việc đưa ra một lịch trình tiến độ để cấp vốn, hẳn bạn sẽ nhận được ánh mắt hình viên đạn!
    Ước lượng Epic bị lệch từ số ngày của các nhóm Scrum đơn lẻ khi việc ước lượng vốn vô cùng đơn giản. Các dependency, bộ kĩ năng sẵn có, các công cụ để hoàn thiện công việc được lặp đi lặp lại. Các thành viên riêng lẻ biết về năng lực và giới hạn của từng người. Khi ai đó nói rằng một story là 5 point, mọi người trong team biết chính xác điều người đó ngụ ý là gì. Khi Scrum mở rộng (grew legs), ý nghĩa của “5 points” dần trở nên mơ hồ. Càng thêm nhiều nhóm, càng khó cho các nhà quản lý để diễn giải Story Point. Ở khoảng 10 hay 20 nhóm Scrum… thì tất cả hoàn toàn là một đống hỗn độn! Nếu không có một đường trung đạo (center line) cho việc ước lượng, cả nhóm sẽ trở nên bất ổn rất nhanh.
    Điều này làm dấy lên câu hỏi: “Liệu Story Point có còn là cách hiệu quả để ước lượng các Epic trong Scrum?”
    Một số người cho là có, bạn vẫn có thể dùng Story Point với framework mở rộng (scaling framework) đúng đắn. Một số khác cho là Scrum đã đi quá xa so với những nguyên lý Agile vì công việc không thể chia nhỏ. Khi quy mô của Scrum tăng lên, làm thế nào để các nhóm có thể thiết lập một tiêu chuẩn thống nhất cho việc ước lượng Epic backlog để những nhà quản lý cấp cao, những bên liên quan và những nhóm khác có thể đồng ý với nhau?
    ƯU ĐIỂM VÀ NHƯỢC ĐIỂM CỦA STORY POINTS
    Chúng tôi đã có vài cuộc thảo luận nội bộ và đi đến những ưu điểm và nhược điểm của việc sử dụng Story Point đối với việc ước lượng trong Scrum ở cấp cao. Hãy đọc qua danh sách dưới đây và cho chúng tôi biết ý kiến của bạn về chủ đề này, về những điều bạn chưa đồng ý và những chỗ chúng tôi còn thiếu sót nhé.
    Ưu điểm: Story Points giúp chia nhỏ những backlog lớn.
    Story Points có thể rất hữu dụng với vai trò là một phần của một scaling framework như SAFe và NEXUS. Những framework này cung cấp những phương pháp ước lượng có khả năng mở rộng (scalable estimation techniques) để chia nhỏ công việc ở các cấp độ Epic, Program và Portfolio:
    · SAFe xem xét bức tranh lớn về cách công việc đi từ quản lý sản phẩm (Product Management) đến quản trị sản phẩm (Governance), các nhóm Program và các nhóm Dev, rồi đến khách hàng.
    · NEXUS thiên về cách tiếp cận từ dưới lên, tập trung vào việc việc hợp nhất nhiều nhóm Scrum làm việc trên cùng một sản phẩm. Thông qua sự minh bạch, NEXUS cố gắng bảo vệ và tăng cường những kết nối giữa các nhóm và giữ cho việc thay đổi đồng bộ nhất có thể.
    Từ góc độ chiến thuật, một phương pháp được các nhà huấn luyện khuyên dùng là để cho nhóm đang làm công việc ước lượng đảm đương các cuộc họp về ước lượng (meeting the estimate). Cùng một nhóm đó luôn làm trên cùng một module nên ý nghĩa của các Story Point được duy trì rõ ràng và thống nhất từ Sprint này sang Sprint khác. Nhược điểm là năng lực cho mỗi module (capacity per module) trong mỗi lần phát hành (release) bị cố định, vì các nhóm không thể [đồng thời] nhảy từ module này sang module khác (across the modules). Bạn bị bó buộc trong lượng công việc có thể được hoàn thành trong một lần release cho mỗi module.
    Một cách tiếp cận khác là chỉ định một hoặc hai đại diện từ mỗi Scrum để tham gia một buổi họp ước lượng chính thức. Những người đại diện này có thể đưa ra quyết định về các story size mà không cần bắt cả nhóm phải ngừng công việc của mình. Phương pháp này giả định rằng mỗi người đại diện đều có kiến thức về cách nhóm của họ định nghĩa một Story Point, để họ có thể chia sẻ, thảo luận và tìm ra những lý do chung để ước lượng các story. Nhược điểm ở đây là mỗi nhóm Scrum phải tin và làm theo bất cứ điều gì mà những người đại diện mà họ đã chọn đặt ra về ước lượng cho mỗi story. Đồng thời, rủi ro có thể xảy ra là những người đại diện bị ảnh hưởng từ những cách tiếp cận về ước lượng của các đại diện từ những nhóm khác.
    Nhược điểm: Đây không phải là Scrum!
    Những chuyên gia về Agile sẽ cho rằng các phương pháp này không đại diện cho Scrum. Nếu cùng một nhóm luôn làm trên cùng một module, liệu điều này có đe dọa khả năng mở rộng không? Khái niệm về các nhóm tự quản lý thì sao? Từ quan điểm năng lực, việc giới hạn một nhóm thành một module không thúc đẩy khả năng mở rộng. Điều này không còn là agile mở rộng (scaled agile) nữa. Từ góc độ của nhóm, nếu chỉ có một sự ước lượng mang tính đại diện xa rời với cả nhóm, tính ổn định của nhóm sẽ gặp rủi ro vì (1) người đại diện không có kiến thức đúng về vấn đề dependency hay integration cụ thể hoặc (2) người đó có thể trở nên chịu ảnh hưởng từ những kinh nghiệm của một nhóm khác không phù hợp với cách thức hoạt động của nhóm mình. Trong cả hai trường hợp, người ta lo sợ rằng mọi thứ đang trở nên đi từ trên xuống (top-down) quá mức, tạo ra những cách biệt về tốc độ (Velocity gap) và một đống hỗn độn ngu ngốc trong PMO.
    PHẦN HAI:
    Trong phần dưới đây, chúng ta sẽ đi qua những ưu điểm và nhược điểm của các story point để thiết lập một cơ sở (baseline) thiết yếu nhằm huy động ngân sách, và liệu chúng có đang bao hàm nhiều hơn so với thứ mà Scrum dự định cho chúng không.
    Ưu điểm: Story Points thiết lập một baseline thiết yếu để huy động ngân sách
    Story Points đem đến cho nhà quản lý một điểm tham chiếu dữ liệu cơ sở để ước lượng và tính toán tốc độ (Velocity) giữa nhiều nhóm với nhau, vốn là điều mà ai cũng biết là chuyện ác thiết yếu nếu cần gọi vốn cho bất kì dự án lớn nào.
    Trong waterfall, các nhà quản lý có thể nói chuyện với các bên liên quan trên phương diện những con số (giờ, ngày, tuần, tháng). Ai cũng có thể hiểu những con số. Chẳng có gì tốn ít hơn một giờ. Khi Internet và Agile xuất hiện, không còn dùng giờ được nữa vì nhiều task có thể được hoàn thành còn nhanh hơn cả thời gian dự định họp để lên kế hoạch cho nó! Mặt khác, một số story có những Timeline và Dependency cần cung cấp tài liệu cho những bên liên quan. Story Point cung cấp cho các nhà quản lý một ý tưởng cơ bản về chỗ mà một story đổ vào spectrum, liên quan đến kinh nghiệm trước đó của một nhóm và cách họ đóng gói nó.
    CTO của chúng tôi, Kaushal Amin so sánh việc ước lượng Epic với việc hỏi xem cần bao nhiêu cái thùng (công sức – Effort) để chuyển đồ:
    Công ty A nói rằng họ sẽ chuyển hết đồ với 150 thùng. Công ty B có thể chuyển hết với 100 thùng. Nhìn qua thì có vẻ công ty B năng suất hơn, nhưng nếu công ty B dùng những cái thùng lớn hơn thì sao? Công sức cần bỏ ra có thể y như nhau, chỉ là các công ty đó ước lượng “kích thước thùng” (bucket size) khác nhau mà thôi.
    Ở cấp độ Program, bạn không thể ép buộc cùng một “kích thước thùng” (bucket size) giữa các nhóm. Tuy nhiên, Story Point có thể giúp các nhóm chia nhỏ công việc đến từng đơn vị chức năng nhỏ nhất để theo thời gian, những người lập kế hoạch cấp cao có thể nghiên cứu và hiểu từng nhóm đang dùng bucket size nào để ước lượng.
    Nhược điểm: Story Point [đang] bao hàm nhiều ý nghĩa hơn so với vai trò mà Scrum sắp đặt cho nó
    Ưu điểm cũng chính là nhược điểm. Story Point chưa bao giờ được tạo ra với dự định là sẽ trở thành một thước đo hiệu suất. Việc ước lượng Story Point chỉ là ước lượng, không phải dự báo. Nhưng, chúng đang được sử dụng để so sánh năng lực giữa các nhóm với nhau.
    Scrum chưa bao giờ dự định bó buộc các nhóm vào một cam kết “làm hay là chết”. Story Point tượng trưng cho một sự ước tính theo kiểu vừa ước đoán vừa lập luận “tốt vừa đủ” về quy mô liên quan trong một dự án. Nếu toàn bộ dự định về tính linh động (intent of Agility) là để cho phép các tổ chức phản ứng với những thay đổi theo kế hoạch, thì chúng ta không có được lợi ích đẩy đủ của Scrum.
    Trong phần sau và cũng là phần cuối về ước lượng story point, chúng ta sẽ xem xét những ưu điểm và nhược điểm của story point để tạo điều kiện cho các nhóm nâng cao chất lượng và những vai trò nhất định không hiểu story point từ góc độ kinh doanh.
    KAUSHAL AMIN
    Chief Technology Officer

    Người dịch: Trà Giang, 20180510

  • Hỏi đáp cùng James Bach (tại KMS Technology Việt Nam, mùa hè 2016)

    Bài gốc được đăng tại: https://www.kms-technology.com/blog/testing/q-a-with-james-bach.html
    Lời người dịch:

    James Bach ghé thăm KMS Technology Việt Nam vào mùa hè năm 2016. Vài tháng sau thì tôi mới gia nhập KMS (tiếc ơi là tiếc), và mãi đến năm 2018 thì tình cờ tôi mới được một tiền bối giới thiệu bài viết này và đề nghị tôi dịch thử. Quả thật là một thử thách cho một cô nàng chẳng biết gì nhiều về thế giới IT vào thời điểm đó, nhưng bài viết này cũng tạo phần nào cảm hứng để tôi tiếp tục dấn thân vào chuyện bếp núc của ngành làm phần mềm. Cảm ơn James Bach và chị Hòa Lê 😀

    Tôi có vinh dự được nói chuyện cùng James Bach vào mùa hè năm 2016 khi ông đến thăm Việt Nam. Ông là cha đẻ của siêu nhận thức (metacognition) về kiểm thử phần mềm và cũng là người thầy đã khai sáng cho nhiều người về lĩnh vực này. Kiến thức của ông bao hàm nhiều lĩnh vực trong kiểm thử phần mềm, từ kiểm thử theo ngữ cảnh (context-driven testing), heuristics (tự nghiệm), sự nghiêp của tester, cho đến cuộc sống bí mật của tester. Nếu bạn có cơ hội được học hỏi từ ông, chắc hẳn bạn sẽ hoàn toàn đồng ý với tôi rằng ông thật tài năng.

    • Ông làm thế nào để đảm bảo chất lượng của một dự án Agile đa vùng (co-located Agile project)?
      James: Bạn sẽ cần giao tiếp có kế hoạch trước rất nhiều, vì giao tiếp không tự nhiên xảy ra khi người ta ở xa nhau. Tôi đề nghị nên điện đàm (conference call) hàng ngày. Những dự án được phân bổ (distributed projects) cần có bộ phận lãnh đạo mạnh mẽ để đưa mọi người lại gần nhau. Tôi cũng đề nghị những người then chốt nên đến thăm nhau định kì, thay vì chỉ dựa dẫm vào giao tiếp qua phương tiện điện tử.
      (“Dự án Agile đa vùng (co-located Agile) có nghĩa là các thành viên nhóm Agile làm việc ở những địa điểm khác nhau hoặc nhiều nhóm Agile đang làm những phần khác nhau của sản phẩm từ những địa điểm khác nhau”).
      Chúng ta đều biết trong môi trường Agile, tốc độ cao và chất lượng cao là ưu tiên hàng đầu. Người ta có khuynh hướng làm không nghỉ, nhưng vì chất được được đo dựa trên những đặc điểm của dự án và nhóm, nên yếu tố con người là nhân tố then chốt để đảm bảo chất lượng dự án. Điều này nghĩa là giao tiếp hiệu quả và tư duy sắc bén có thể ảnh hưởng lên sự thành công của dự án. Ý kiến của James đem đến một số ý tưởng về việc giao tiếp được củng cố trong các dự án.
      Thứ nhất, giao tiếp hiệu quả được quyết định dựa trên ngôn ngữ, sản phẩm, công cụ/công nghệ, và kiến thức về quy trình (process knowledge) của nhóm. Để giao tiếp một cách hiệu quả vượt qua khoảng cách địa lý và múi giờ, các nhóm được phân bổ cần nói cùng một “ngôn ngữ”. Ngôn ngữ ở đây không chỉ nói đến thuật ngữ về mặt ngôn ngữ (speaking terms) như tiếng Anh, Đức hay Pháp, mà còn là thuật ngữ về sản phẩm và những tính năng hay quy trình của công cụ/công nghệ, mà mỗi nhóm sẽ cần ở trình độ hiểu biết tương đương nhau để nói và hiểu lẫn nhau.
      Để đồng bộ, cần làm thêm một số bước. Các nhóm cần hỏi những câu hỏi súc tích và hợp lý, để làm rõ các yêu cầu hay đề nghị và để xem lại các kết quả trước khi phát hành (release). Sự đồng đều về kiến thức giữa các nhóm được phân bổ nên tạo điều kiện cho họ ra quyết định ở các vấn đề nội bộ, thực hiện “nguyên tắc tự quản lý”. Một nhóm không nên bảo nhóm khác cái gì [cần] và/hoặc làm thế nào để hoàn thành một task.
      Thứ hai, áp dụng những công cụ và cách thức giao tiếp thích hợp cũng đóng một vai trò quan trọng đối với việc giao tiếp của nhóm. Có khá nhiều lựa chọn từ giao tiếp trực tiếp (nói chuyện mặt đối mặt hay Video call) cho đến những dạng gián tiếp (Email, Forum, hay Text chat). Có nhiều công cụ phổ biến và hữu dụng để cân nhắc, bao gồm: Skype, Slack, Confluence, GoToMeeting, hay Google Drive, những thứ hỗ trợ giao tiếp và cộng tác một cách dễ dàng giữa các nhóm onshore và offshore. Những cách thức và ứng dụng này có thể giúp thu hẹp khoảng cách múi giờ và địa lý.
      Thêm vào đó, để giao tiếp được hiệu quả hơn, phạm vi công việc cần được sắp xếp một cách hợp lý để hoàn toàn hỗ trợ khách hàng một cách thích hợp và đem lại sự kết nối suôn sẻ. Bạn nên lên lịch cho các chuyến thăm onshore/offshore đều đặn để thiết lập mối quan hệ với các thành viên và phản hồi ngay với các thay đổi trong việc phát hành, các cột mốc quan trọng (milestone), hay công nghệ.
    • Ông định nghĩa code kiểm thử được là như thế nào? Các tiêu chí của ông là gì?
      James: Mọi code đều kiểm thử được. Một số code dễ kiểm thử hơn các code khác. Tính có thể kiểm thử trong code chỉ có nghĩa là nó dễ kiểm thử như thế nào. Code dễ kiểm thử hơn khi nó có thể quan sát (observable) được và có để kiểm soát được. Hãy hỏi về logging ở mức độ chức năng (functional-level logging) và giao diện scriptable (scriptable interface). Đồng thời, code dễ kiểm thử hơn khi chúng đơn giản và có thể phân tích được. Tính có thể phân tích được (decomposability) là khả năng có thể phân tích các thành phần và kiểm thử biệt lập một cách tương đối.
      Cụ thể hơn, có nhiều cách đơn giản để định nghĩa code có thể kiểm thử, chẳng hạn: logic của code (code logic), quy ước đặt tên code (code naming conventions) và cấu trúc/kiến trúc của dự án (project structure/architecture). Code kiểm thử được luôn bao gồm khả năng mở rộng, tính dễ bảo trì, tính có thể sử dụng lại, và tính có thể nâng cấp (ability of extension, easy maintenance, re-usability, and upgradability). Burak Guzel của EnvatoTuts đã liệt kê 15 cách tốt nhất để viết code có thể đọc được.
    • Một tester cần loại kĩ năng nào để có thể tiến vào thế giới DEVOPS?
      James: Tôi không biết nhiều đến thế về thế giới DEVOPS. Nhưng thế giới đó không chào đón tester. Nó chào đón lập trình viên. Do đó kĩ năng được yêu cầu đầu tiên là lập trình. Sau đó bạn cần tìm kiếm những công cụ để hỗ trợ công việc kiểm thử của mình.
      Có một số chiến thuật mà tester cần nắm bắt để tiến vào thế giới DEVOPS:
      · Live site testing: Testers cần phải kiểm thử sản phẩm trong quá trình sản xuất, ngay khi nó được phát hành (release).
      · Thu thập và phân tích phản hồi từ người dùng trong lĩnh vực đó. Phản ứng nhanh với bất kì vấn đề phát sinh nào của người dùng.
      · Ủng hộ tính có thể kiểm thử. Việc xây dựng sản phẩm với tư duy kiểm thử trong đầu là thứ có tính quyết định.
      James đã đưa ra những luận điểm vững chắc. Tester cần nâng cao khả năng hiểu coding, build-production, công cụ, và hệ điều hành như Linux và Windows.
    • Ông làm thế nào để quyết định loại thông tin nào nên đưa vào báo cáo cuối cho khách hàng? Loại thông tin nào thì hữu ích và loại nào thì không?
      James: Không có báo cáo nào là hoàn hảo. Chỉ có báo cáo đem đến giá trị cho khách hàng.
      Dưới đây là một số lời khuyên của tôi:
      · Xây dựng lòng tin (bằng cách trở nên đáng tin).
      · Biết ngữ cảnh của việc kiểm thử của mình (test framing).
      · Không bao giờ dùng một con số không nằm trong ngữ cảnh (ví dụ: no test case counts).
      · Nhấn mạnh những hoạt động test về mặt tổng thể (đặt test vào đúng ngữ cảnh).
      · Nhấn mạnh rủi ro của sản phẩm (đặt bug vào đúng ngữ cảnh).
      Chúng ta có thể xây dựng báo cáo cuối với 3 cấp độ:
    • Cấp độ 1: Thực trạng và sự thật (facts and truth) về bug và những điều quan sát được (observations)
    • Cấp độ 2: Làm thế nào mà bạn nắm được những thực trạng đó? Làm thế nào để kiểm thử những thực trạng đó
    • Cấp độ 3: Làm thế nào mà bạn biết việc kiểm thử có tốt không? Tại sao nó đủ tốt, tại sao không?
    • Ông ước lượng công sức bỏ ra cho việc kiểm thử trong một dự án như thế nào?
      James: Không có một bảng tính thần kì nào có thể cho bạn biết việc kiểm thử sẽ mất bao lâu, nhưng ước lượng tốt bắt đầu từ sự hình dung (visualization). Bạn có thể hình dung ra quy trình kiểm thử trong đầu không? Nhiều tester gặp vấn đề khi làm chuyện đó. Nhưng nếu họ không rõ ràng về cái mà việc kiểm thử sẽ trông ra sao hay cảm thấy như thế nào, họ sẽ không nảy ra được ý nào về việc nó sẽ kéo dài bao lâu.
      Đi kèm với điều này là một danh sách những câu hỏi khác cùng câu trả lời, có thể giúp ước lượng công sức dành cho việc kiểm thử trong một dự án:
      · Thật sự cần bao nhiêu thời gian để kiểm thử?
      · Sẽ tốn bao nhiêu thời gian để hoàn tất việc kiểm thử?
      · Lượng thời gian tối thiểu có thể dùng để kiểm thử là bao nhiêu?
      · Cần kiểm thử bao nhiêu để đảm bảo giải pháp đạt chất lượng cao?
      · Cần bao nhiêu test case?
      · Cần bao nhiêu tester?
      · Yêu cầu những kĩ năng test nào?
      · Việc kiểm thử sẽ tốn bao nhiêu tiền?
      · Ta có cần phải kiểm thử tất cả không?
      Cảm ơn James đã dành thời gian trả lời những câu hỏi của chúng tôi. Kiến thức và kinh nghiệm sâu sắc của ông đã mở rộng kiến thức về kiểm thử của chúng tôi và quả là một cơ hội tuyệt vời khi được học hỏi từ ông.
      Cảm ơn James rất nhiều.
      HOA LE

    Người dịch: Trà Giang, 20180517

  • NPS – net promoter score và chuyện may mắn

    Từ NPS…

    NPS là một chỉ số dùng để đo lường mức độ hài lòng của khách hàng với một sản phẩm hay dịch vụ, được đo bằng công thức:

    NPS = % promoters – % detractors

    Cách tính toán cụ thể như sau:

    Phương pháp đo lường:

    • Nội dung khảo sát khách hàng:“ Trên thang điểm từ 0 đến 10, bạn sẵn sàng giới thiệu dịch vụ/ sản phẩm của [công ty] đến bạn bè / người thân là bao nhiêu điểm ?”  Tổng hợp kết quả: Từ kết quả có được sẽ phân khách hàng thành 3 nhóm:
      • Promoters (9 – 10 điểm): là những khách hàng rất hạnh phúc với sản phẩm và dịch vụ của công ty bạn. Họ sẽ là nguồn khách hàng trung thành và giúp doanh nghiệp bạn mở rộng danh sách khách hàng chính là bạn bè / người thân của họ.
      • Passives (7 – 8 điểm): là những khách hàng hài lòng tương đối do còn tồn tại những điểm chưa thoả mãn. Họ có thể dễ dàng chuyển đổi sang sản phẩm / dịch vụ của đối thủ.
      • Detractors (dưới 6 điểm): luôn là những khách hàng “người ra đi đầu không ngoảnh lại” và không ngần ngại lan truyền những góp ý làm ảnh hưởng đến thương hiệu của bạn.
    • Đo lường kết quả: Chỉ số NPS = % (Promoters) – % (Detractors)
    • Ví dụ: Khảo sát 20 khách hàng, trong đó có 10 Promoters (50%) , 5 passives (25%) và 5 detractors (25%). Suy ra: Chỉ số NPS = 50% – 25% = 25%

    (Nguồn: http://blog.cloudjetsolutions.com/nps-chi-so-do-luong-su-hai-long-cua-khach-hang/)

    …đến chuyện may mắn

    Mình biết đến chỉ số này lần đầu tiên khi làm Training Evaluation Form. Chỉ số NPS của một khóa học là một tiêu chí để xem xét độ hài lòng của học viên với khóa học, và có nên tiếp tục tiến hành khóa đó hay không.

    Tuy nhiên, NPS đối với mình không chỉ dừng lại trong phạm vi công việc, nó còn có thể dùng để đo lường sự may mắn của mình nữa. Tại sao ư? Vì NPS chính là lượng hóa của câu “Tiếng lành đồn xa, tiếng dữ đồn xa”, hay chính là sức mạnh của marketing truyền miệng.

    Bất cứ làm chuyện gì, mình đều cần đến những nguồn lực. Có hai dạng nguồn lực: nội tại (do bản thân tự có) và ngoại tại (do khả năng vận động từ cộng đồng (network) của mình). Nguồn lực nội tại thì nhỏ bé và tăng rất chậm, còn nguồn lực ngoại tại thì rất lớn và có khả năng tăng theo cấp số nhân.

    Đối với một con người, NPS của người đó = % số người sẵn sàng nói tốt về người đó với bạn bè, người thân – % số người nói những điều bất lợi về người đóNếu mình là một người đàng hoàng, làm việc tốt, những người xung quanh mình (bạn bè, người thân, đồng nghiệp) khi được người khác hỏi về mình sẽ có thể nói rằng: “Bạn A làm việc được lắm, anh/chị làm việc với bạn ấy được đó”. Một đồn mười, mười đồn trăm, đi đâu mình cũng gặp được người sẵn sàng làm việc cùng, sẵn sàng giúp đỡ. Vận may từ đó mà sinh.

    Ngược lại, nếu mình là một người không đàng hoàng lắm, hẳn nhiên khi ai đó hỏi “Anh/chị tính tuyển nó về, mày thấy ok hông?”, những người xung quanh mình có lẽ sẽ trả lời: “Thằng đó tánh kỳ lắm, anh chị cẩn thận”. Một đồn mười, mười đồn trăm, không ai chịu làm việc chung với mình, không ai chịu giúp mình nữa. Vận rủi từ đó mà tạo.

    Thế nên mình luôn tự nhủ: hãy cố gắng để NPS của mình là một số dương.

    Nhân tiện tám tiếp về NPS, giả sử như mình để ý một anh chàng và mình muốn dùng NPS để đánh giá coi ảnh có ok hông, thì cách tiến hành sẽ là: đi hỏi bà con anh em bạn bè đồng nghiệp của ảnh: “Ảnh làm người yêu có ok hông, anh/chị/em chấm bao nhiêu điểm trên 10?”, sau đó tính toán % promoter và % detractor để tính NPS của ảnh. Nếu NPS của ảnh trên 0 thì ok, còn dưới 0 thì bái bai 😉

    Tuy nhiên, cái khó trong bài toán tính NPS với mình chính là việc chọn mẫu, và đối tượng được chọn để lấy mẫu có đáng tin cậy không. Thế nên, lại link tiếp tới một lưu ý nhỏ nữa: “Chọn bạn mà chơi” 😉 “Hãy cho tôi biết bạn của bạn là ai, tôi sẽ nói cho bạn biết bạn là người như thế nào”, hay như mình đọc được ở đâu đó: “Mình chính là trung bình cộng của ba người mà mình thân thiết nhất”.

    Trà Giang, 30/11/2017

  • System Usability Scale - Thang đo tính khả dụng của hệ thống

    SUS được John Brooke phát minh vào năm 1986, để đo tính khả dụng của bất kì hệ thống nào một cách nhanh chóng.

    Ưu điểm của SUS: Rẻ và nhanh, nhưng vẫn có giá trị nhất định. Thay vì đoán, bạn sẽ biết hệ thống của mình đang ở đâu so với thị trường.

    SUS là một thang đo Likert gồm 10 câu hỏi. Người trả lời sẽ đánh giá mức độ đồng ý từ 1 tới 5, trong đó 5 là hoàn toàn đồng ý, 1 là hoàn toàn không đồng ý.

    1. Tôi nghĩ là mình sẽ dùng hệ thống này thường xuyên

    2. Tôi thấy hệ thống này phức tạp một cách không cần thiết

    3. Tôi nghĩ hệ thống này dễ dùng

    4. Tôi nghĩ tôi cần hỗ trợ từ một chuyên viên kĩ thuật để dùng được hệ thống này

    5. Tôi thấy nhiều chức năng của hệ thống được hợp nhất tốt

    6. Tôi thấy nhiều chỗ không được thống nhất ở hệ thống này

    7. Tôi nghĩ là hầu hết mọi người sẽ học được cách dùng hệ thống này một cách nhanh chóng

    8. Tôi thấy dùng hệ thống này quá cồng kềnh

    9. Tôi cảm thấy tự tin khi dùng hệ thống này

    10. Tôi cần học rất nhiều thứ trước khi có thể làm quen với hệ thống này

    Cách tính Điểm khả dụng (Usability Score) với SUS

    Người dùng đánh giá mức độ đồng ý từ 1 tới 5, trong đó 5 là hoàn toàn đồng ý, 1 là hoàn toàn không đồng ý.

    · Với mỗi câu lẻ, trừ đi 1

    · Với mỗi câu chẵn, lấy 5 trừ đi điểm câu đó

    · Cộng dồn giá trị có được, và sau đó nhân điểm tổng với 2.5

    · Kết quả là một điểm trên thang 100 (không phải là phần trăm đâu)

    Đem điểm này đi so sánh:

    SUS sẽ không có tác dụng nói cho bạn biết chính xác vấn đề nằm ở đâu, nhưng sẽ cho bạn một tín hiệu để biết tính khả dụng của hệ thống như thế nào.

    Điểm trung bình trên thị trường là 68. Nếu dưới 68, tính khả dụng của hệ thống đang gặp những vấn đề rất nghiêm trọng cần được làm rõ.

    80.3 = A. Mọi người yêu thích hệ thống và sẽ giới thiệu nó cho bạn bè.

    68 = C. Bạn đang làm tốt đó, nhưng cần cải thiện thêm.

    51 trở xuống = F. Ưu tiên tính khả dụng lên hàng đầu và chỉnh nó ngay lập tức.

    Cách dùng SUS:

    Đầu tiên, Để người dùng trải nghiệm hệ thống

    Sau đó, cho làm bài đánh giá SUS

    Một số cách khác để đánh giá tính khả dụng của hệ thống:

    · Qualtrics: 5 câu để đánh giá độ hài lòng của khách hàng

    · SUMI — Software Usability Measurement Inventory — một bộ câu hỏi 50 câu

    · SUPR-Q — Standardized User Experience Percentile Rank Questionnaire — 1 bộ 13 câu, đánh giá trang web trên các yếu tố: tính khả dụng, độ đáng tin cậy, giao diện và độ trung thành

    Nguồn tham khảo cho người mới bắt đầu:

    · SUS: A Quick and Dirty Usability Scale [PDF] (1986).

    · SUS: A Retrospective [PDF] (2013).

    Nguồn:

    https://elearningindustry.com/directory/software-categories/learning-management-systems/best/user-experience: Các LMS được đánh giá dựa trên SUS, Perceived Usefulness & NPS

    Lược dịch: Trà Giang

    https://nguyenphantragiang.medium.com/system-usability-scale-thang-%C4%91o-t%C3%ADnh-kh%E1%BA%A3-d%E1%BB%A5ng-c%E1%BB%A7a-h%E1%BB%87-th%E1%BB%91ng-967bfa898d85

  • Bạn thạch sùng ở thành phố

    Đây là bạn thạch sùng số nhọ nhất hôm nay, bì bõm trong ly sữa bắp bạn Gấu để quên chẳng biết từ lúc nào, lúc tưởng được giải thoát đến nơi thì lại xui xẻo rơi tõm vào xô nước, may là được một thanh niên đẹp trai nhân hậu mỗi tội sợ thạch sùng giải cứu. Tội nghiệp bạn, đem thả ra “vườn” mà bám chặt vào cây đậu run rẩy mãi không thôi.

    Tội nghiệp bạn, ở thành phố nên đến cả côn trùng cho bạn cũng hiếm hoi. Hi vọng cái vườn nhỏ nhỏ này cho bạn được một ít đồ ăn đỡ đói lòng, rồi lại tiếp tục tặc lưỡi hàng đêm nhen.

    Bạn thạch sùng số nhọ

    Nhìn bạn thạch sùng, lại không khỏi nhớ đến Pom Poko. Từ rừng ra phố sống cũng chẳng dễ dàng gì, mình cũng thế thôi 😀

    20201102

    Trà Giang

  • Chuyện tự học cả đời và hiệu ứng cộng dồn

    Cũng lâu rồi, mình nhớ có một người cảm thán với mình rằng cái thứ gọi là “lifelong learning” mặc dù nghe rất hấp dẫn, nhưng cũng nên cẩn thận với việc một số nhóm có thể dùng nó để làm cái cớ phủi bay trách nhiệm trong việc hỗ trợ những người yếu thế cập nhật kiến thức và kĩ năng để đáp ứng với những thay đổi của thời thế, đặc biệt là thị trường lao động. Chẳng hạn, khi một người lao động không còn phù hợp cho vị trí công việc mới, thì đó là tại người ấy không chịu cập nhật kĩ năng.

    Về cơ bản, mình thấy việc tự học là một kĩ năng không dễ học được. Nó bao hàm nhiều vấn đề khó giải quyết, chẳng hạn như động lực, quản lý thời gian, lên kế hoạch, khả năng phân tích thị trường, khả năng mở rộng mối quan hệ, quản lý nguồn lực. Những kĩ năng như vậy đã khó đối với những người có điều kiện dư dả, lại càng khó với những người có ít điều kiện.Khi mình nhìn những bài báo về sự thành công của một người, mình thường ngẫm nghĩ về những yếu tố đã khiến họ đạt được điều đó, và tự đặt cho nó cái tên là hiệu ứng cộng dồn. Nếu được sinh ra trong một gia đình có truyền thống yêu chuộng học hành, thì ngay từ bé bạn đã được ưu tiên dành nhiều thời gian cho việc học. Với việc dành nhiều thời gian, bạn có thể học “khá” hơn tương đối so với những bạn còn đang vất vả phụ ba mẹ mưu sinh. Nếu bạn được học tiếng Anh từ nhỏ, trước khi chương trình chính thống bắt đầu, thì khi các bạn khác đang chật vật học phát âm cho đúng thì bạn đã có thể qua những bài dịch đơn giản. Nếu bạn đã được tiếp cận internet từ sớm, thì bạn đã tiến xa hơn rất nhiều người trong khả năng tiếp cận một lượng thông tin phong phú…

    Cứ thế, cứ thế, từ một chút khác biệt nhỏ ban đầu, qua nhiều năm, bạn đã tiến rất xa so với nhiều người khác. Còn những người đã không có, sẽ lại càng tụt lại phía sau.Lâu rồi, mình có đọc một bài viết liệt kê ra một loạt những điều tưởng chừng nho nhỏ, nhưng lại khiến cho mình tụt lại sau vạch xuất phát rất xa so với những người bạn đồng trang lứa. Đại loại, chúng bao gồm những định kiến về giới, về khoảng cách giàu nghèo, về vị trí địa lý, về khoảng thời gian có thể dành thêm cho việc học, về chế độ dinh dưỡng… Mình tự nhận rằng mình là một đứa trẻ trung bình, nhưng khi đếm lại, mình buồn bã nhận ra rằng mình tụt lại sau điểm xuất phát cũng kha khá.

    Mình viết ra điều này không phải để oán trách về sự bất công, bởi mình vốn xem công bằng cũng như đường chân trời kia thôi, chỉ có thể đến gần chứ không bao giờ đạt tới. Trong chừng mực nhỏ bé của một con người, mình chỉ nỗ lực để gom góp những điều chút xíu thôi, chẳng hạn:

    1. Học thêm ngoại ngữ (tiếng Anh)

    2. Tăng cường khả năng tìm kiếm, phân loại, xử lý thông tin

    3. Tích cực kết nối với những chuyên gia

    Nếu xuất phát điểm của bạn ở phía sau, cách duy nhất là phải tăng tốc lên. Một người mà mình rất ngưỡng mộ về khả năng tìm tòi học hỏi đó là anh Trần Xuân Ngọc. Vốn ảnh đã nổi tiếng từ lâu về việc ứng dụng game vào đào tạo rồi, nay ảnh còn chia sẻ về kỹ năng tự học trong group này nữa nè. Điểm xuất phát của ảnh bị lùi về phía sau rất nhiều, nhưng đã được bù đắp bằng những chuỗi ngày cần mẫn miệt mài, và mình tin là ảnh đang bắt đầu gặt quả ngọt rồi :3

    https://www.facebook.com/groups/tuhoc.nguoimoibatdau

    20201013

    Trà Giang