Tự học Business Analyst

Tony viết bài này dành cho các bạn Non-IT đang chuẩn bị bước sang lĩnh vực Business Analyst hoặc đang làm công việc khác có quan tâm đến lĩnh vực phân tích nghiệp vụ.

Hẳn các bạn không học ngành CNTT sẽ luôn đặt ra một câu hỏi là không biết phải bắt đầu từ đâu để có thể làm BA, BA cần kĩ năng, kiến thức gì. Tony viết Blog Blaoman này với vai trò 1 người đang làm BA với những chia sẻ gần gũi và dễ hiểu nhất để giúp các bạn có thêm một nguồn tài liệu tham khảo cho quá trình tự học BA của mình.

Hình minh họa mình lấy một tấm hình học Piano, học BA cũng tương tự như học nhạc cụ. Bạn tự học nhưng cần có những kiến thức cơ bản mới có thể đi nhanh và đi xa được.

Bài này Tony viết theo kiểu bình dân học vụ cho các bạn dễ hiểu nhé.

1. Mô hình 3 lớp của 1 hệ thống phần mềm

– Presentation Layer: lớp giao tiếp với người sử dụng: VD 1 trang web, 1 mobile app thường được lập trình bằng ngôn ngữ HTML + CSS + Javascript; Lập trình viên chuyên lập trình lớp này được gọi là FRONT END DEVELOPER. Đây là phía ngoài cùng bạn thấy liền khi mở app hoặc website lên. BA thường cần biết chút kiến thức vê UI/UX để thiết kế mockup, prototype tốt cho phần này. Đặc biệt là dữ liệu hiển thị lên lấy từ đâu, Backend, API có đáp ứng không…Lúc mới làm BA sẽ nhiều bạn thiết kế dính lỗi API, backend k đáp ứng đủ các trường dữ liệu hiển thị.

– Business Logic Layer: Thường là phần mềm ko có giao diện, chuyên lắng nghe các yêu cầu từ lớp Presentation Layer gửi xuống, xử lý thông tin (VD: tính toán, lấy dữ liệu từ lớp thứ 3 – lớp cơ sở dữ liệu lưu trữ) và trả về thông tin cho lớp Presentation hoặc lưu trữ thông tin vào lớp Database.

Lập trình viên thường dùng các ngôn ngữ lập trình như .NET, Java, PHP, GoLang, Node JS….. để lập trình ở lớp này à phần mềm ở lớp này thường ko có giao diện người dùng, chỉ là 1 dịch vụ chạy ở background

– Database Layer: Lớp lưu trữ thông tin. Ví dụ các cơ sỡ dữ liệu như Microsoft Access, Microsoft SQL Server, Oracle, MySQL…. bản chất nó vẫn là 1 phần mềm, user có thể truy cập được phần mềm này và đọc hiểu dữ liệu trong đó:

Lập trình viên chuyên lập trình ở lớp Business Logic và Database Layer được gọi là BACKEND DEVELOPER.

Lập trình viên lập trình cả 3 lớp gọi là FULL STACK Developer.

Đó là lý do khi các bạn làm trong 1 team phần mềm sẽ thấy các title: front end dev, back end dev, full stack dev, Mobile dev (ios android)

Khi các bạn dùng 1 Mobile App, các bạn đang dùng phần presentation layer, phần Business Logic Layer và Database layer hiếm khi nằm trên thiết bị Mobile của các bạn mà sẽ đặt trên máy chủ.

2. Ngôn ngữ phiên dịch (Interpretation) và Ngôn ngữ biên dịch(Compilation)

Máy tính chỉ hiểu được các mã lệnh nhị phân (binary) VD 0110100110: 0 và 1 giống như trạng thái có/không có dòng điện chạy qua 1 mạch điện tử trong bộ vi xử lý. Lập trình viên lập trình cho máy chạy thì ko thể nào dùng ngôn ngữ nhị phân được vì quá khó hiểu/khó nhớ.

Compilation (Biên dịch): Lập trình viên lập trình bằng ngôn ngữ người có thể đọc hiểu VD: .NET, Java, sau đó dùng 1 chương trình đặc biệt gọi là trình biên dịch (compiler) để biến đoạn mã đó thành mã mà máy tính có thể hiểu được à các ngôn ngữ lập trình dạng này gọi là ngôn ngữ biên dịch, VD khi mọi người chạy 1 tập tin *.EXE trên máy tính, đó là 1 chương trình đã được biên dịch sang ngôn ngữ máy.

Interpretation (Phiên Dịch): Không cần biên dịch sang ngôn ngữ máy, lúc chạy chương trình, 1 trình phiên dịch nào đó đọc đoạn mã do lập trình viên viết và thể hiện nó thành 1 nội dung/chức năng dễ hiểu với người dùng. VD: Trình duyệt là một trình phiên dịch, HTML là ngôn ngữ phiên dịch, trình duyệt đọc đoạn mã HTML (Ngôn ngữ Đánh dấu Siêu văn bản) và diễn dịch nó thành nội dung dễ hiểu với người sử dụng; Bản thân người sử dụng nếu có kiến thức về HTML có thể mở nó ra xem và biết nó viết gì, thậm chí không cần trình phiên dịch.

3. Cách thông thường 2 hệ thống phần mềm giao tiếp và trao đổi thông tin cho nhau (tích hợp hệ thống):

Export data từ hệ thống A và Import vào hệ thống B.

Sử dụng chung 1 database cho 2 hệ thống A, B hoặc sử dụng riêng nhưng ở lớp database, dữ liệu của 2 cơ sở dữ liệu A và B được đồng bộ (copy qua lại)

Hệ thống A cung cấp 1 phương thức cho hệ thống B truy cập, ra lệnh thực hiện 1 chức năng nào đó trong hệ thống A: phương thức đó gọi là 1 API (Aplication Programming Interface)

4. Project Scope

Phân rã chức năng hệ thống, mọi người sử dụng check list này để kiểm tra scope danh sách chức năng của mình đã đầy đủ chưa:

  • Transaction Management:

VD: Manage Orders, Manage Invoices, Manage Payment, and Manage Journey Bookings on Grab App….

Transaction là phần chính mang lại value nhiều nhất cho 1 hệ thống, mục đích hệ thống tạo ra là để input/xử lý/lưu trữ/report các transactions, các transaction sẽ xuất hiện trên tất cả các business processes tác nghiệp hàng ngày trong 1 tổ chức.

  • Master data management:

Quản lý tập dữ liệu danh mục được tạo ra và sử dụng cho 1 transaction VD: Manage Customers, Manage Product ( trong 1 transaction “Order”, cần xác định customer là ai, mua “product nào” 1 dữ liệu master được tạo ra trước và có thể dùng cho nhiều transaction, VD 1 khách hàng có thể mua nhiều orders. Trả lời được câu hỏi: ai được vào hệ thống. Các chức năng thuộc nhóm này: login/logout/forgot password, register, manage my profile, Manage

  • Users Authorization

Vào hệ thống thì được cho phép truy cập chức năng gì (kịch bản gì), và được thấy dữ liệu gì. VD Chức năng Manage User roles thuộc nhóm này

***lưu ý phần “được thấy dữ liệu gì” rất critical, liên quan đến bảo mật thông tin, không có 1 công thức/pattern chung cho tất cả các hệ thống, mỗi hệ thống có các quy luật nghiệp vụ riêng cho phần này. BA thường phân tích thiếu phần này, đây là một phần quan trọng liên quan đến Business rule của tổ chức. Khi làm chức năng này cần lấy yêu cầu và phân tích kĩ.

  • Reports:

Scope phải cụ thể rõ ràng là có bao nhiêu reports, không viết chung chung là view reports. View là view thấy gì? đối tượng và phạm vi cụ thể của report. Đặc biệt phần xử lý, tính toán để ra được dữ liệu.

  • System Integration

Hệ thống đang phát triển sẽ tích hợp (trao đổi thông tin) với các hệ thống nào khác, phương thức trao đổi thông tin là gì? thông dụng nhất là thông qua API (pplication Programming Interface)

  • Background Services

Các chức năng chạy ngầm ở background, không do con người thực hiện, máy được lập lịch để tự thực hiện và xử lý 1 tác vụ nào đó thường là do tải công việc lớn. VD gửi 5000 Payslips cho nhân viên vào cuối tháng, hoặc điều kiện để start tác vụ khó kiểm soát bởi con người.

VD: thỏa 1 điều kiện gì đó thì phải gửi ra 1 notification, tự động nhắc nợ quá hạn 1 tuần, 3 tháng, sáu tháng.

Hi vọng với bài viết cơ bản như trên các bạn non-IT có thể dễ dàng hiểu được 1 phần mềm đang hoạt động như thế nào. Từ đó các bạn tự học bằng cách tự phân tích các ứng dụng, website bạn đang sử dụng hằng ngày để có tư duy về hệ thống. Tư duy hệ thống là một kĩ năng rất quan trọng với một người IT BA.

Facebook Comments
Tony Nguyen

Chào các bạn, mình là Tony. Cảm ơn bạn đã ghé thăm website Blaoman. Đây là nơi mình chia sẽ những trải nghiệm trong cuộc sống và công việc IT BA đang làm, phát triển sản phẩm trong lĩnh vực công nghệ. Ngoài ra mình cũng đang là Owner một Business nhỏ về giáo dục. Thỉnh thoảng Tony cũng có chia sẻ một chút về lối sống tối giản, sách, kinh doanh và phát triển bản thân. Mình bắt đầu với Blaoman với mục tiêu giúp mình tốt hơn mỗi ngày. Và biết đâu đó những chia sẻ này cũng giúp ích đến những bạn đã tình cờ ghé thăm blog của mình. Cảm ơn các bạn đã theo dõi bài viết.

Leave a reply

Your email address will not be published. Required fields are marked *

Most Viewed Posts

×
error: Content is protected !!