[Công nghệ Thông tin] -- [Web] -- [Công nghệ phần mềm] -- [PhoThong] -- [TỪ ĐIỂN] -- [----] -- [Học viên cũ] -- [10.000 giờ]
--------------- <> -----------------
---  KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
---  Nhận làm website, web app, chạy quảng cáo, digital marketing --->>>  LIÊN HỆ...

Tìm kiếm trong Blog

Phân tích và thiết kế PM (1) - Tổng quan

1. Tổng quan

1.1 Tham khảo quy trình để làm ra một sản phẩm phần mềm

Phần này lược thuật lại buổi nói chuyện về Product Management for Managers, của tác giả Hieu Nguyen.

Theo tác giả, để làm ra một sản phẩm (phần mềm) hiệu quả, có xác suất thành công cao thì cần làm theo các bước trong Tháp quản lý sản phẩm (Product Management Tower). Tác giả minh họa bằng sản phẩm Airbnb (giả định).

Tháp quản lý sản phẩm gồm các bước sau:


Giải thích từng bước:

– [1] Target Market: thị trường mục tiêu mà chúng ta muốn hướng đến, nó dựa trên hai yếu tố là thị trường mà chúng ta am hiểuđộ lớn của nó. Vì hiểu thị trường, nên biết nó đang cần gì? Biết mình phải làm gì để đáp ứng nhu cầu của thị trường. Chúng ta cũng cần biết được độ lớn của thị trường để đảm bảo khả năng sinh lời của sản phẩm. Ví dụ: Airbnb có thế mạnh về du lịch, chứ không có thế mạnh về giao vận (logistic) và ngân hàng (banking). Do vậy, nó đã chọn du lịch để tập trung vào.

– [2] Segmentation: lựa chọn phân khúc khách hàng. Chia thị trường thành các phân khúc khách hàng khác nhau. Ví dụ: trẻ em, giới trẻ, gia đình, thương nhân, nhà giàu. Sau đó loại đi các phân khúc mà chúng ta không muốn phục vụ hoặc không thể phục vụ (loại đi những nhóm khách hàng không có tiềm năng). Airbnb chọn 3 nhóm khách hàng để phục vụ là giới trẻ (young), gia đình (family) và thương nhân (business).

– [3] Target Customers: sau khi lựa chọn được phân khúc khách hàng, chúng ta sẽ có Tập khách hàng tiềm năng: giới trẻ (young people), gia đình (families) và thương nhân (business).

– [4] User Personas: từ Tập khách hàng tiềm năng, chúng ta sẽ đưa ra được bản mô tả về khách hàng hay Chân dung khách hàng (profile, user personas). Đây là bản mô tả chung về một nhóm người dùng mục tiêu của một sản phẩm. Tập trung vào hành vi và mục tiêu của khách hàng khi sử dụng sản phẩm của chúng ta.

– [5] Needs: thực hiện phỏng vấn, khảo sát, để biết được các nhu cầu của khách hàng mục tiêu (need). Ví dụ người đi du lịch sẽ cần một nơi để ở (place to stay), phương tiện đi lại (transportation), bảo hiểm (travel insurance), các đánh giá về địa điểm họ sẽ tới (attraction review), các hoạt động (activities), ăn (foods), hướng dẫn viên du lịch (tour guides), đặt vé máy bay (flight booking), đổi tiền (forex).

– [6] Underserved Needs (Pain Points): sắp xếp các nhu cầu của khách hàng mục tiêu, từ quan trọng nhất đến ít quan trọng hơn, tìm ra được những nhu cầu khách hàng cần, nhưng chưa được phục vụ tốt bởi các dịch vụ đang có (pain points). Cách làm: loại đi các dịch vụ đã được phục vụ tốt hoặc các dịch vụ mà không phải là thế mạnh của chúng ta. Airbnb tập trung vào chỗ ở, các hoạt động, ăn, và hướng dẫn viên du lịch.

– [7] Product Market-Fit: sản phẩm thị trường đang cần, và người dùng cảm thấy hài lòng khi sử dụng sản phẩm đó.

– [8] Value Proposition: đưa ra các dịch vụ mà khách hàng cần, nhằm giúp họ được sử dụng các dịch vụ tốt hơn những cái đang có. Ví dụ: Airbnb tập trung vào chỗ ở (accomodation) và trải nghiệm du lịch (experiences).

– [9] Product Feature Set: cần sản phẩm gì? sản phẩm gồm các chức năng gì? để đáp ứng nhu cầu của khách hàng. Ví dụ: dịch vụ chỗ ở cho gia đình, cho người đi công tác; danh sách các địa danh du lịch nổi tiếng (list), tìm kiếm trong du lịch (search), thanh toán (payment), đặt chỗ (booking).

– [10] User Experience: thiết kế trải nghiệm người dùng, không chỉ tập trung và trải nghiệm người dùng, mà quan trọng hơn là đáp ứng được nhu cầu của người dùng.

– [11] User Interface: thiết kế giao diện ứng dụng.

– [12] Front-end: làm phần front-end của ứng dụng.

– [13] Back-end: làm phần back-end của ứng dụng

Như vậy, để làm ra một sản phẩm phần mềm, chúng ta cần trải qua rất nhiều công đoạn. Mỗi công đoạn yêu cầu những kỹ năng và kinh nghiệm khác nhau; mỗi công đoạn thuộc về một bộ phận cụ thể trong một công ty.

Bạn cần có tư duy tổng thể, để biết được bức tranh lớn của công việc chúng ta đang làm, biết được mối liên hệ, vai trò của mỗi công đoạn.

Với vai trò là nhà phát triển phần mềm (software developer), tùy khả năng, chúng ta sẽ tập trung vào các công đoạn như lập trình back-end, front-end, thiết kế giao diện, thiết kế trải nghiệm, phân tích yêu cầu, xác định yêu cầu.

1.2 Các giai đoạn của một dự án phần mềm

Ở phần trước (Tham khảo quy trình để làm ra một sản phẩm phần mềm), bạn đã được tiếp cận quá trình làm ra một sản phẩm phần mềm dưới góc nhìn của một người tạo ra sản phẩm, của một người khởi nghiệp. Người này đòi hỏi có tố chất sáng tạo, óc quan sát tốt, nhìn ra được nhu cầu của thị trường.

Phần này cho bạn một cách nhìn khác về các bước để tạo ra một sản phẩm phần mềm. Nó là góc nhìn của một người thuần về kỹ thuật, chủ yếu tập trung vào các công đoạn để tạo ra một sản phẩm phần mềm. Nó gồm một số bước cụ thể hơn, chi tiết hơn.

Bảng sau là các bước cơ bản, cần thực hiện để có một sản phẩm phần mềm hoàn thiện.


Giải thích chi tiết từng bước, để bạn dễ hình dung:

[Bước 1] Phân tích yêu cầu khách hàng

Đây là bước đầu tiên và quan trọng nhất. Nhóm phát triển sẽ gặp gỡ khách hàng để hiểu rõ họ cần gì, vấn đề mà họ đang gặp phải là gì. Mục tiêu là nắm bắt chính xác các yêu cầu về nghiệp vụ, tính năng, và kỳ vọng của người dùng cuối. Nếu thiếu bước này, sản phẩm có thể không đáp ứng được nhu cầu thực tế.

Ví dụ: Một công ty muốn tạo ra một ứng dụng quản lý bán hàng. Họ cần ứng dụng đó có thể theo dõi doanh số, quản lý kho hàng và in hóa đơn.

[Bước 2] Phân tích chức năng hệ thống

Sau khi có yêu cầu từ khách hàng, đội ngũ phân tích sẽ chuyển đổi các yêu cầu đó thành các chức năng cụ thể của phần mềm. Bước này liên quan đến việc xác định các mô-đun (module), tính năng chính và cách chúng hoạt động.

Ví dụ: Từ yêu cầu của công ty bán hàng, các chức năng được xác định là:

- Mô-đun "Quản lý kho": Thêm sản phẩm, xóa sản phẩm, cập nhật số lượng tồn kho.

- Mô-đun "Bán hàng": Tạo hóa đơn, tính tiền, áp dụng khuyến mãi.

- Mô-đun "Báo cáo": Thống kê doanh số theo ngày, tháng, năm.

[Bước 3] Thiết kế cơ sở dữ liệu

Đây là việc tạo ra cấu trúc để lưu trữ thông tin của phần mềm. Một cơ sở dữ liệu tốt sẽ giúp phần mềm hoạt động hiệu quả, ổn định và dễ dàng truy cập dữ liệu.

Ví dụ: Thiết kế các bảng (table) để lưu thông tin về:

- Sản phẩm: Tên sản phẩm, mã sản phẩm, giá bán, số lượng.

- Hóa đơn: Mã hóa đơn, ngày bán, tổng tiền. 

- Khách hàng: Tên, số điện thoại, địa chỉ.

[Bước 4] Thiết kế giao diện

Đây là bước tạo ra giao diện mà người dùng sẽ tương tác. Giao diện (UI) cần trực quan, dễ sử dụng và thể hiện được tính độc đáo của sản phẩm. Bước này cũng bao gồm việc thiết kế trải nghiệm người dùng (UX) để đảm bảo người dùng có thể thực hiện các tác vụ một cách dễ dàng và hiệu quả.

Ví dụ:

- Thiết kế giao diện mua hàng: Giao diện cần có các nút rõ ràng như "Thêm vào giỏ hàng", "Thanh toán", và các hình ảnh sản phẩm đẹp mắt.

- Thiết kế báo cáo: Biểu đồ hiển thị doanh thu phải dễ đọc, các số liệu được trình bày khoa học.

[Bước 5] Thiết kế kiến trúc ứng dụng

Kiến trúc ứng dụng là "bộ khung" của phần mềm, quyết định cách các thành phần (máy chủ, cơ sở dữ liệu, giao diện) liên kết và giao tiếp với nhau. Một kiến trúc tốt giúp phần mềm dễ dàng mở rộng, bảo trì và hoạt động ổn định khi có nhiều người dùng.

Ví dụ: Lựa chọn kiến trúc ba tầng (3-tier architecture), trong đó có tầng giao diện người dùng (Front-end), tầng xử lý nghiệp vụ (Back-end) và tầng cơ sở dữ liệu (Database).

[Bước 6] Cài đặt (Lập trình)

Đây là giai đoạn viết mã (coding) để biến các thiết kế thành một sản phẩm phần mềm thực tế. Lập trình viên sẽ sử dụng các ngôn ngữ lập trình (như Python, Java, JavaScript, C#) để xây dựng các chức năng đã được phân tích và thiết kế.

Ví dụ: Lập trình viên viết mã để:

- Tạo chức năng "Đăng nhập" để người dùng truy cập hệ thống.

- Kết nối với cơ sở dữ liệu để lấy thông tin sản phẩm.

- Lập trình tính toán tổng tiền khi tạo hóa đơn.

[Bước 7] Kiểm tra và sửa lỗi

Sau khi các chức năng hoặc phần mềm được viết xong, đội ngũ kiểm thử (Tester) sẽ thực hiện kiểm tra toàn diện để tìm ra các lỗi (bugs) và đảm bảo các chức năng và phần mềm hoạt động đúng như mong đợi. Bước này bao gồm kiểm tra chức năng, hiệu năng, bảo mật và khả năng tương thích.

Ví dụ: Kiểm tra xem nút "Thanh toán" có hoạt động đúng không, ứng dụng có bị chậm khi có nhiều người truy cập không, hoặc có lỗ hổng bảo mật nào không.

[Bước 8] Viết tài liệu hướng dẫn

Đây là công đoạn tạo các tài liệu cần thiết cho người dùng và cho các thành viên trong đội ngũ kỹ thuật. Tài liệu giúp người dùng biết cách sử dụng sản phẩm và giúp các lập trình viên khác dễ dàng bảo trì, phát triển thêm các tính năng mới sau này.

Ví dụ:

- Tài liệu hướng dẫn sử dụng: Hướng dẫn từng bước cách sử dụng các tính năng chính cho người dùng cuối.

- Tài liệu kỹ thuật: Mô tả cấu trúc mã nguồn, cách triển khai hệ thống cho lập trình viên.

[Bước 9] Vận hành

Sau khi phần mềm đã hoàn thiện và được kiểm thử, nó sẽ được triển khai (deploy) và đưa vào hoạt động chính thức. Đội ngũ kỹ thuật sẽ đảm bảo phần mềm hoạt động ổn định trên máy chủ và sẵn sàng phục vụ người dùng.

[Bước 10] Quản trị, bảo trì và SEO

Đây là giai đoạn tiếp theo của quá trình vận hành, đảm bảo phần mềm luôn hoạt động tốt và được cập nhật.

- Quản trị và bảo trì: Theo dõi hiệu suất, khắc phục các sự cố phát sinh, cập nhật phiên bản mới, và vá lỗi bảo mật.

- SEO (Search Engine Optimization): Nếu là một ứng dụng web, bước này giúp tối ưu hóa để phần mềm dễ dàng được tìm thấy trên các công cụ tìm kiếm như Google.

1.3 Bài tập

Bài tập 1a. Dựa vào Tháp quản lý sản phẩm, hãy tạo ra một Tháp sản phẩm của chính bạn (hoặc nhóm của bạn).

Kết quả của bài tập bao gồm:

[1] Hình vẽ tóm tắt 13 bước của Tháp quản lý sản phẩm

[2] Giải thích chi tiết 13 bước của Tháp quản lý sản phẩm

Kết quả của bài tập được lưu trong tập tin Tài liệu môn học hoặc Tiểu luận.

Bài tập 1b. Dựa vào 10 giai đoạn của một dự án phần mềm, hãy liệt kê các công cụ hoặc phần mềm để thực hiện mỗi giai đoạn. 

Ví dụ: 

Bước

Công cụ/phần mềm

Bước 6: Cài đặt và lập trình

Visual Studio Code, Git, SQL Server

Kết quả của bài tập được lưu trong tập tin Tài liệu môn học hoặc Tiểu luận.

-----

Bài sau:



Mẹ

 MẸ TA TRẢ NHỚ VỀ KHÔNG 

Ngày xưa chào mẹ, ta đi

Mẹ ta thì khóc

Ta đi thì cười

Mười năm rồi lại thêm mười

Ta về thì khóc, mẹ cười lạ không

Ông ai thế ? Tôi chào ông

Mẹ ta trí nhớ về mênh mông rồi

Ông có gặp thằng con tôi

Hao hao...

tôi nhớ...

nó... người... như ông

Mẹ ta trả nhớ về không

Trả trăm năm lại bụi hồng, rồi đi...

(Đỗ Trung Quân)