CÂU CHUYỆN LÀM PRODUCT CỦA BÈO (1)

SELF - REFLECTION

        Trong hai tuần vừa rồi, tui đã trải qua một giai đoạn áp lực và căng thẳng, mọi thứ trong cuộc sống dường như xoay quanh deadline, đi ngủ mà con mơ bị dí nữa. Một tình trạng mà lâu lắm rồi không gặp phải. Tui là người có xu hướng hoàn thành công việc trước hẹn và việc phải xin lỗi vì sự trễ hẹn của bản thân lần thứ hai thật sự khiến tui cảm thấy xấu hổ.

        Trong khoảng thời gian này, tui đã phải xin lỗi cô tui vì trễ deadline 3 lần liên tiếp, và các task trên công ty đều không hoàn thành đúng mục tiêu bản thân đã đặt. Thực ra, không phải là tui lười biếng hay gì, càng không phải miss công việc. 2 tuần rồi tui siêu nhơn lắm, làm việc tại công ty từ 8 giờ sáng đến 19h hơn. Sau khi về nhà, tiếp tục lôi laptop ra làm. Thứ bảy tối, tui còn cắm đêm từ 6 giờ chiều đến 6 giờ sáng ở quán cà phê và chẳng có ngày nghỉ vào vào chủ nhật.

        Hôm nay, tui quyết định xin cô off 1 bữa để dành thời gian reflect, tìm root cause và đưa ra hướng cứu chữa :v. Công việc trong 2 tuần này bị double lên và từ đó tui cảm thấy bản thân mình có nhiều vấn đề trong cách tổ chức công việc, thấy được nhiều điểm yếu cần phải cải thiện ngay.

1: Công việc Tester 

        Trước khi test một tính năng, test luồng nào đấy, thì cần hiểu về tính năng đó để biết về thực trạng, nó hoạt động như thế nào và nó có liên quan tới các tính năng nào khác, đọc BRD để xem đang muốn thay đổi những thứ gì. Từ đó lên một bộ test case và setup mọi thứ để test. Thì tui cũng nắm quy trình làm, cũng đi theo quy trình, nhưng lại hời hợt, làm không tới nơi tới chốn, mỗi bước chỉ làm được 60% và kết quả là đi đến bước 3 lại lùi về bước 1, tiến tới và lùi lại. Dù đây là cái task thứ 7+ về test rồi nhưng tui vẫn tắm 2 lần trên một dòng sông.

2: Viết BRD 

        Trước khi nhận một task về cải thiện tính năng, điều đầu tiên không phải là đi tìm hiểu, nghiên cứu thị trường để xem người ta đang làm như thế nào, mà là tìm hiểu về luồng hiện tại nó đang hoạt động ra sao, vấn đề đang gặp phải là gì, phân tích số liệu để xác định cái gì là must do, should do. Xác định scope, cái này nhiều user xài không, làm tốn workload của công ty không, làm ra thì nhận được value gì, công ty có đang đầu tư cho tính năng này không => có đáng để làm không, làm to hay làm tí tẹo là được rồi :v?  Done các bước đó rồi, xác định đối tượng người dùng, tìm tính năng đó của các công ty cùng lĩnh vực, đối tượng người dùng như mình xem họ đang làm như thế nào, tham khảo và chắt lọc những thứ hay ho, phù hợp để đem về làm tính năng của mình. 

        Đó là những thứ tui nghĩ mình nên làm, và đây là cách tui làm. Lướt sơ qua cái  luồng đi, không tìm hiểu kĩ các trường hợp nào sẽ báo lỗi, lỗi báo ra sao, không nắm được unhappy case. Tui đã đi khảo sát 10+ cái ngân hàng và đem về làm BRD. Cuối cùng thì khi đi trình bày với BA, FE, BE,  fail ngay từ phút ban đầu. Viết lại BRD tính đến hiện tại có lẽ là lần thứ 10 :v. Tính năng đi đến đâu đều bị reject đến đó và buộc phải làm đơn giản lại. Một lần, 2 lần tui còn nhiệt huyết, đấu tranh để mấy ảnh tìm giải pháp để làm theo ý tưởng của bản thân, làm thế này mới tiện cho user, nhưng tui quên rằng nhiệm vụ của PO không phải làm mọi thứ hoàn hảo nhất có thể. 

3: Mockup design 

        Để bắt tay vào mockup thì đầu tiên phải nắm được process flow, vẽ sketch để phát thảo ý tưởng, vẽ wireframe để biết được bố cục rồi mới đi tới mockup. Tui lại  không làm thế, trộn lại làm chúng cùng lúc. Đáng lẽ ra tui nên đi hỏi sếp xem process flow như này đã okela chưa, tiếp đó là sketch/wireframe oke hết rồi tới mới bắt tay vô mockup. Thực sự ngồi vẽ cực kỳ lâu, mất hơn 20 tiếng để ngồi vẽ luồng chuyển tiền định kỳ, đó còn không phải vẽ từ đầu mà là có bộ component sẵn và có nguồn tham khảo mà đã take time đến như thế. Và trong quá trình làm, không ít lần tui xóa vẽ rồi vẽ lại từ đầu. OMG, cái này mới đáng nói là sếp góp ý process flow cần phải thay đổi vài chỗ. Và thế là, ……..  quay về vạch xuất phát nào.

4: Ngoài đi tìm bug thì bug nó cũng đi tìm tui

        Mỗi lần làm cái gì thì nên thao tác từ từ từng bước, bước nào bị lỗi thì báo IT xử lý. Mô tả lại các bước để họ biết đường mà fix bug. Mình thì làm nhanh làu làu, ẩu tả, bị lỗi xong chẳng biết lỗi chỗ nào, thế là phải thực hiện lại lần 2, lần 3 xem bị sai chỗ nào còn để báo lại, có khi xuất phát từ cái tính hay quy về lỗi của bản thân, nghĩ mình sai chứ không phải hệ thống gặp sai, ngồi thử đi thử lại quài, bị lỗi quài. Và mỗi lần gặp sự cố như thế, tui đều mất khá nhiều thời gian để ngồi đó chờ và hỗ trợ ngta trong quá trình fix bug. Thay vì thế, sao tui không tạm để nó sang 1 bên, để chuyên gia làm việc của chuyên gia, khi nào xong thì hú, tui back lại sau chứ mắc gì ngồi đợi chi dậy trời ...??

        Khi mà có nhiều task cùng một lúc, càng khiến tui càng nhận ra khả năng multitask của bản thân kém, thường thì tui chỉ tập trung một thứ duy nhất, làm xong và qua cái khác. Nhưng bây giờ môi trường, khối lượng công việc và làm việc với nhiều bên khác nhau khiến mình không thể cứng nhắc cách làm việc như từ trước đây được. Tại vì nếu làm thế thì sẽ không phối hợp với các bên khác để hoàn thành công việc => teamwork tệ, và cái nào cần ưu tiên trước thì mình làm trước. Giải pháp hiện tại có thể là cuối tuần nên lên kế hoạch cho tuần mới và đầu ngày nên liệt kê những việc cần làm, cập nhật tình hình lên đó. Giả dụ, mentor yêu cầu cập nhật tiến độ thì cũng biết mà nói ngay, nếu mà bị task mới chèn vào thì không bị stuff, còn đang làm mà gặp lỗi thì cũng biết next step là làm gì.

        Túm cái váy lại là sang tuần mới làm việc có tổ chức, có quy trình từng bước và smart hơn chứ k có sờ tu pịt nữa. 


 

Thinhnotes|ERD (Entity Relationship Diagram)

 



Copy bài viết từ trang này (Bài này copy từ A Thịnh, vì bài được anh viết xúc tích quá rồi nên mình không cần lọc nhiều, đây chỉ là trang để mình take note lại những kiến thức thoai à)

Góc nhìn top down

1. ERD là gì?

ERD là một sơ đồ (Diagram) thể hiện các thực thể (Entiry) có trong database, và mối quan hệ (Relationship) giữa chúng với nhau. 

- Entity: Thể hiện các object ngoài đời thực  

Ví dụ: hệ thống built ra để quản lý đối tượng khách hàng, đơn hàng, sản phẩm thì chính những khách hàng, đơn hàng, sản phẩm là những đối tượng Entity.

Ngoài ra, Entity thường được dùng để mapping với khái niệm table trong relational database, và nó là những business logic nhất định.

=> ERD sẽ giúp ta hình dung tổng quan các "real business object" mà hệ thống đang quản lý. Và đặc biệt nó thể hiện mối quan hệ giữa các "real business object" này với nhau.

2. ERD để làm gì?

Giúp mường tượng tổng quan hệ thống có gì: Tiếp cận theo hướng top-down, ERD giúp liệt kê các đối tượng có trong hệ thống. Từ đó, scope được các chức năng của hệ thống, không lo out of scope, không lo phân tích thiếu đối tượng. Đảm bảo cung cấp đue một lượng thông tin để setup database cho giai đoạn phát triển sau này.

Giúp phân tích hệ thống: Trong những dự án maintenance, việc đọc hiểu ERD của hệ thống hhiệntaij là một cách hiệu quả để mn có thể nắm được tổng quan các đối tượng và chức năng giữa chúng với nhau.

Ví dụ: Cục A có quan hệ với cục B, cục B quan hệ với cục C.

Tức là, sẽ có một chức năng nào đó liên quan giữa cục A và cục B. Và một chức năng nào đó liên quan giữa cục B và cục C.

Nghiên cứu sâu hơn tài liệu requirements, đôi lúc sẽ giúp mn phát hiện được những " behind the scenes" cục kỳ quan trọng nhưng lại chưa được thể hiện ra trong tài liệu.

Giúp nắm rõ tầng database: Trong những hệ thống phức tạp, cấu trúc loằng ngoằng, hoặc chứa cả trăm table, việc visualize các table ra hình ảnh sẽ giúp mn dễ dàng phát hiện ra những điểm chưa hợp logic, những mối quan hệ mờ ám, dư thừa giữa các table với nhau.

Giúp thiết kê report: Nhìn vào database ta hình dung được mối quan hệ giữa chúng, từ đó viết các câu query để tính toán dễ dàng hơn. Đôi lúc có những mối quan hệ nhiều nhiều, mn không thể xử lý expression trực tiếp được, mà phải thông qua table trung gian nào đó. ERD sẽ giúp mn biết được: đó là những table nào. Từ đó moi móc data chính xác nhất. 

3. Ai vẽ - ai dùng ERD?

Vì BA là ngươi facing trực tiếp với khách hàng và moi móc yêu cầu từ họ. Nên rõ ràng, BA là người hiểu rõ khách hàng muốn gì nhất,

BA chính là người phác họa ra ERD: mô tả những đối tượng có trong hệ thống, thuộc tính và mối quan hệ giữa chúng ra sao. 

Vậy thì vẽ ERD xong, ai là người dùng?

BA vẽ ERD để capture lại các components có trong hệ thống. BA cũng cũng ERD để làm tài liệu thiết kế luôn. Ngoài ra, BA cung cấp ERD để cho ...Database Designer thiết kế database trong giai đoạn triển khai. Và dĩ nhiên, Developer cũng cần đọc bản thiết kế này. 

Để biết được phạm vi các đối tượng cần quản lý, biết được độ lớn của system. Có thể phần nào hiểu được các chức năng đằng sau các đối tượng này, và tìm cách tối ưu database sao cho tiết kiệm tài nguyên nhất có thể.

4. Ba thành phần của một ERD

Gồm 3 phần chính:

  • Entity: Thực thể (hoặc đối tượng) mà hệ thống quản lý
  • Attribute: Thuộc tính của các đối tượng mà hệ thống quản lý 
  • Relationship: mối quan hệ giữa các đối tượng .

4.1. Entity

Entity là những đối tượng như: người, vật, sự việc hoặc địa điểm ... nào đó, mà anh em muốn lưu trữ thông tin trên hệ thống. Thường thì entity rất dễ hình dung trên hệ thống, những cũng có một vài entity không tồn tại ở business thực tế bên ngoài. Nó là những entity trung gian, nằm gứac 2 entity khác, và thể hiện mối quan hệ nhiều -nhiều giữa 2 entity này với nhau.

Entity phải luôn là DANH TỪ.

4.2. Attribute 

Attribute nghĩa là thuộc tính. Thuộc tính của những entity. Cũng có thể hiểu là đặc tính của một đối tượng bất kỳ. Là những thông tin riêng biệt của đối tượng đó mà mình sẽ lưu trữ. 

Ví dụ Đơn hàng sẽ có 5 thông tin riêng biệt sau, mà chỉ có đơn hàng mới có, mấy thực thể khác không có, như: Ngày đặt hàng, Tổng tiền chưa giảm, Tiền khuyến mãi, Thành tiền, Điều khoản thanh toán.

Hoặc Khách hàng sẽ có 7 thông tin riêng biết sau mà các thực thể khác không có, như: Họ và tên, emial, ngày sinh, số điện thoại, Sở thích

4.3. Relationship

Về cơ bản thì relationship của ERD óc 3 loại:

  • One to one: Quan hệ 1-1 
  • One to many: Quan hệ 1 -nhiều
  • Many to many: Quan hệ nhiều-nhiều

Từ 3 loại mày, anh em sẽ thể hiện chi tiết hơn bằng 6 mối quan hệ như sau:


Ví dụ mối quan hệ bệnh nhân với y tá

1/ Đơn thuần là một 



2/ Quan hệ (một) - (một và chỉ một)


3/ Quan hệ (một) - (không hoặc một)

4/ Quan hệ (một) - nhiều



5/ Quan hệ (một) - (một hoặc nhiều)


6/ Quan hệ (một) - (không hoặc nhiều)


7/ Quan hệ nhiều - nhiều

Tại sao cần hiểu các mối quan hệ của ERD. Để khi khách hàng mô tả bằng ngôn ngữ thường ngày của họ thì mn có thể lấy csc đó để chuyển hóa nó thành ngôn ngữ ERD. Và phát thảo ra các mối quan hệ như vầy. Mấu chốt là anh em cần nhìn đợc: Quan hệ giữa 2 thực thể đó là gì?
Khi đó, ghép vào bối cảnh cụ thể, anh em sẽ hiểu được mối quan hệ giữa hai thực thể này là gì, và qua lăng kính business thực tế là như thế nào? 



Tóm gọn:
  • Mối quan hệ giữa các thực thể đều là: ĐỘNG TỪ (có, thuộc, đặt, chăm sóc, mượn, thực hiện ...)
  • Khi đọc mối quan hệ theo chiều ngược lại, anh em chỉ cần chueyenr nó thành THỂ BỊ ĐỘNG là xong.
  • Thực thể ám chỉ DANH TỪ
  • Thuộc tính ám chỉ TÍNH TỪ, ví dụ khách hàng thì cao 1m75, nặnng 65kg)
  • Còn mối quan hệ thì ám chỉ là ĐỘNG TỪ 

 5. Thực hư 1-1, 1-nhiều, nhiều-nhiều?

5.1. Relational Database 

  • Relational database nôm na là các database được tổ chức thành nhiều bảng, và giữa các bảng quan hệ với nhau bằng từ khóa. 
  • Table là gì? Mapping với khái niệm ERD, 1 table chính là 1 entity (một đối tượng hoặc một thực thể) mà database lưu trữ.


  • Table đơn thuần là có các cột và dòng. 
    • Cột chính là các thuộc tính (attribute) của đối tượng customer
    • Các dòng là các bản ghi (record), là số lượng dữ liệu mà table đó lưu trữ trong database. (23 record vf có 23 dòng)
  • Primary Key (Khóa chính): Bản chất khóa chính cũng là một cột, trong hằng hà các cột mà table lưu trữ. Nhưng nó khác ở chỗ khóa chính là thứ tồn tại độc lập duy nhất (không được giống nhau), tất cả những cột khác giống hay không, không quan trọng.
  • Foreign Key (Khóa ngoại): Khóa chính ở 1 table, nhưng lại là khóa ngoại ở một table khác mà table đó liên kết đến.

5.2. Giải nghĩa các mối quan hệ

Chỗ này đọc trên trang của ổng đi, lười rồi :v
Có một mẹo làm sao để xác định FK cho nhanh 
Nếu 2 table quan hệ 1-nhiều với nhau, ae chỉ cần lấy PK của table ở đầu quan hệ 1, bỏ vào FK của table ở đầu quan hệ nhiều bà xong. (Hey ghê) 

Ba bước vẽ ERD thần thánh 

  • Xác định entity
  • Xác định relationship
  • Thêm mắm dặm muối :v (Cái gì dậy trời ơi)

Cụ thể hơn là: 

  • Bắt đầu dự án, anh em sẽ làm tùm lum tùm la A,B,C,... để có được specific requirements từ khách hàng.
  • Dựa vào các requirements đó, điều đầu tiên là: Vẽ ra các ĐỐI TƯỢNG cần lưu trữ. (không cần attribute, cần entity là được)
  • Sau đó, tìm kiếm mối quan hệ giữa các đối tượng. Sau đó vẽ ra LIÊN KẾT GIỮA CÁC ĐỐI TƯỢNG là gì (Lưu ý: Ngay lúc này âe nên xác định luôn các entity nó quan hệ cụ thể như thế nào trong 6 cái cardinality. Nếu chưa xác định được thì đơn thuần ae chỉ cần vẽ một đường thẳng nối 2 entity để đánh dấu là 2 tụi nó có quan hệ, lát nữa quay lại bổ sung sau, khỏi quên)
  • Bước cuối là: Bổ sung các attribute, relationship nếu còn thiếu là done (Bước thêm mắm dặm muối của ổng nè trời :v)

BeauAgency|Customer Journey Map


Hành trình lớn: Tạo ra một concept mới
Hành trình nhỏ: Tối ưu, redesign lại tính năng, chức năng
 

1. Customer journey map là gì?

Customer journey map  (CJM) là một sơ đồ thể hiện hành trình trải nghiệm của khách hàng đi qua để đạt được mục tiêu. Sơ đồ này trình bày các điểm chạm trong quá trình khách hàng tương tác với sản phẩm. 

2. Customer journey map bao gồm các giai đoạn nào?

2.1. Trước mua hàng 

- Nhận thức - awareness: Khách hàng nhận ra họ có vấn đề 
- Xem xét - consideration: Người mua xác định rõ vấn đề của họ và nghiên cứu, đánh giá các phương án để giải quyết vấn đề 
- Quyết định - decision: Người mua chọn giải pháp 

2.2. Mua hàng 

- Mua hàng - Purchase - Khách hàng tiến hành mua sản phẩm
- Sử dụng - Use - Khách hàng sử dụng sản phẩm

2.3. Giai đoạn 3: Sau mua hàng 

Chia sẻ trải nghiệm - Advocacy - Khách hàng chia sẻ sản phẩm cho bạn bè, người thân

3. Phân biệt CJM & Customer Persona

- CJM: Tập trung vào hành động và câu hỏi, thể hiện sự thay đổi trải nghiệm người dùng theo thời gian => Tập trung vào trải nghiệm 
- CP: Tập trung vào con người.
Trong CJM có CP  

4. Tầm quan trọng của CJM

- Thu được bức tranh toàn cảnh về tất cả những thứ liên quan đến sản phẩm/dịch vụ mà doanh nghiệp đang cung cấp
- Tăng tỷ lệ chuyển đổi khách hàng bằng cách xác định rõ nhu cầu của họ
- Nắm được rào cản của khách hàng trên hành trình chạm tới mục tiêu
- Cải thiện tỷ lệ giữ chân khách hàng trong từng giai đoạn của hành trình mua sắm 

5. Các bước xây dựng customer journey mappig 

5.1. Đặt mục tiêu rõ ràng

- Tại sao tạo ra nó?
- Tạo cho ai dùng, hướng tới đối tượng khách hàng nào?

5.2. Thu thập dữ liệu về CX 

- Thông tin các nhân của khách hàng: Họ là ai, sống ở đâu, làm gì, độ tuổi,,, 
- Từ Analytics: Thời gian khách hàng sử dụng sản phẩm, họ dùng trong bao lâu thì drop, tỷ lệ quay lại là bao nhiêu,...
- Operation data từ call center, delivery, inventory: Số lượng cuộc gọi, thời gian mỗi cuoojx gọi, các vấn đề được cập nhật, tỷ lệ hài lòng của các cuộc gọi 

Refer to 5.2 Customer persona

5.3. Phác thảo chân dung khách hàng (Persona) 

Refer to 5.3 Customer persona

5.4. Liệt kê các điểm chạm 

'Touch - point' là tất cả các điểm mà khách hàng có thể tươg tác với sản phẩm. 
Danh sách các điểm chạm phổ biến nhất:
- Hành động: Tìm kiếm các từ khóa trên Google, các hành động nhấp vào một email từ doanh nghiệp.
- Cảm xúc: Năm bắt dữ liệu trải nghiệm cảm xúc ở các điểm tương tác, sau đó trực quan hóa để thể hiện được bản đồ hành trình một  cách dễ hiểu và sinh động nhất 
- Chướng ngại vật: Trên hànhh trình đạt được mục tiêu thì điều gì ngăn cản khách hàng.  Ví dụ, chi phí vận chuyển, UI confuse, ...

-----------------------------
Xem xét hồ sơ khách hàng, suy nghĩ về những kỳ vọng mà khách hàng có trong hành trình của họ. Mục tiêu, kì vọng phải được cụ thể, riêng lẻ, ví dụ: 'Khách hàng cần một đầu đọc thẻ di động cho doanh nghiệp nhỏ của họ"

Tiếp theo, vạch ra các bước khách hàng đang thực hiện trên hành trình này, yêu cầu mọi ngời thực hiện ncasc bước và đặt mình vào vị trí của khách hàng nhiều nhất cso thể, ví dụ:
  1. Google “đầu đọc thẻ tốt nhất”
  2. Nhấn vào link business.org trên kết quả tìm kiếm
  3. Truy cập trang "Những đầu đọc thẻ tốt nhất 2022"
  4. Lướt, đọc thông tin bài viết
  5. Click "tìm hiểu thêm" cho đầu đọc thẻ Square
  6. Đưa đầu đọc thẻ Square vào rỏ hàng
Liệt kê xong rồi thì đưa chúng vào sơ đồ như hình bên dưới:

 

Phần cuối của sơ đồ hành trình khách hàng là cơ hội, giải pháp, câu hỏi hay những điều cần nghiên cứu thêm. Trên thực tế, rất khó để giữ cho cuộc thảo luận tập trung vào khách hàng trước thời điểm này. Mọi thứ ở trên là về trải nghiệm mà khách hàng có, còn phần này mới là phần dành cho những cơ hội kinh doanh, những gì doanh nghiệp có thể cải thiện trải nghiệm của khách hàng. 

6. Xem xét và thay đổi 

Ở mỗi giai đoạn, điểm chạm, cảm xúc của khách hàng là gì? => Xem xét journey này dễ hay khó? Thời gian thực hiện mỗi giai đoạn bao lâu? Những trở ngại xảy ra là gì?
Vì cảm xúc luôn là yếu tố lớn ảnh hưởng đến quá trình trải nghiệm của khách hàng. 

Tài liệu tham khảo: