
Hệ thống phát triển (System Development) là gì? Vì sao chỉ nắm quy trình & phương pháp vẫn thất bại—Cẩm nang thực chiến hoàn thành DX với “Chất lượng × Vận hành × Giá trị xã hội”
Be A Racer Team
Author
“Phát triển hệ thống rốt cuộc nên bắt đầu từ đâu?” — trong quá trình thúc đẩy DX, hiện đại hóa hệ thống lõi hay tối ưu hiệu suất nghiệp vụ, hẳn đã có lúc câu hỏi này thoáng qua trong đầu bạn.
Hiện trường thì bận rộn. Ngân sách thì hữu hạn. Và ngay khi tưởng như đã đủ yêu cầu, môi trường kinh doanh lại tiếp tục thay đổi —. Dù vậy, hệ thống không phải ‘làm xong là xong’; chỉ khi vận hành ổn định và liên tục tạo ra giá trị thì mới được xem là thành công.
Trong bài viết này, dựa trên nền tảng “quy trình”, “phương pháp”, “điểm cần lưu ý khi thuê/đặt hàng” đã được tổng hợp ở các bài tham khảo, chúng tôi tái cấu trúc theo góc nhìn riêng như một “bản thiết kế để làm đến nơi đến chốn” bao gồm cả đảm bảo chất lượng (kiểm thử bên thứ ba), thiết kế vận hành và giá trị xã hội (CSR). Giá trị khi đọc là rất rõ ràng. Tránh bùng dự án, được hiện trường sử dụng, chịu được kiểm toán/bảo mật và tác động trực tiếp đến KPI kinh doanh — chúng tôi cụ thể hóa thực hành cần thiết bằng case và ví dụ triển khai.
“Mục tiêu của phần mềm không phải là ‘phát hành’, mà là ‘niềm tin’”
— Câu nói thường được nhắc ở hiện trường đảm bảo chất lượng (tác giả diễn giải)
✅Bạn sẽ nhận được gì từ bài viết này
- Sắp xếp bức tranh tổng thể phát triển hệ thống (quy trình, vai trò, deliverables) theo góc nhìn bên đặt hàng
- Hiểu cách chọn Waterfall/Agile… kèm các mô thức thất bại thường gặp
- Loại bỏ “lỗ hổng” từ RFP, báo giá, hợp đồng đến chất lượng, vận hành, bảo mật
1. Mở rộng định nghĩa “phát triển hệ thống” đến mức “cơ chế tạo ra giá trị”

Phát triển hệ thống ≠ chỉ viết phần mềm
Như các bài tham khảo đã đề cập, phát triển hệ thống là chuỗi hoạt động từ xác định yêu cầu → thiết kế → triển khai → kiểm thử → vận hành. Tuy nhiên, trong bối cảnh quản trị/DX, phạm vi trách nhiệm của “phát triển” mở rộng đến mức ‘nghiệp vụ thay đổi và con số (KPI) thay đổi’. Ví dụ, khi thay mới hệ thống chấm công, không chỉ làm màn hình chấm công, mà cần quy đổi thành KPI như giảm công sức xử lý chốt kỳ, giảm tỷ lệ quên chấm, rút ngắn thời gian đáp ứng kiểm toán…
Sự khác nhau giữa “phát triển hệ thống” và “xây dựng hệ thống” chính là mầm mống bùng dự án
Theo bài tham khảo số 4, “phát triển” về cơ bản là “tạo ra”, còn “xây dựng” là “kết hợp/cấu hình”. Nhưng ở hiện trường thường bị dùng lẫn lộn, trở thành ổ chứa lệch nhận thức. Ví dụ: gọi triển khai SaaS là “phát triển”, rồi về sau mới phát hiện “cần phát triển tùy biến”, khiến chi phí đội lên. ⚠️Lưu ý: đừng chỉ thống nhất bằng từ ngữ, hãy thống nhất bằng ‘deliverables và phạm vi công việc’.
Case doanh nghiệp: Triển khai Salesforce tưởng là “xây dựng” nhưng lại thành “phát triển”
Nhiều doanh nghiệp chọn Salesforce làm CRM, nhưng nếu nghiệp vụ phức tạp thì sẽ cần phát triển Apex hoặc tích hợp với hệ thống lõi bên ngoài. Trên thực tế, ngay cả trong các dự án SI tại Nhật, không hiếm trường hợp giả định “dùng chuẩn là đủ” bị phá vỡ, rồi đến giai đoạn kiểm thử tích hợp mới bùng vì đặc tả tích hợp còn chưa chốt. Doanh nghiệp làm tốt sẽ xác định ngay từ đầu “nghiệp vụ To-Be” và ranh giới tích hợp (API/batch/thao tác thủ công), sau đó tách riêng phần xây dựng và phần phát triển để báo giá.
✅Action item: Với dự án của bạn, hãy diễn đạt rõ “phát triển/xây dựng/hỗ trợ triển khai” bằng phạm vi công việc (WBS) và deliverables (tài liệu thiết kế, danh sách cấu hình, đặc tả kiểm thử). Chương tiếp theo sẽ phân rã bức tranh này theo các công đoạn.
2. Không chỉ biết công đoạn, mà phải thiết kế với giả định “sẽ có quay lại” (thực tế của mô hình chữ V)

Các công đoạn phổ biến: Xác định yêu cầu → Thiết kế → Triển khai → Kiểm thử → Phát hành → Vận hành
Như bài tham khảo 3 và 5 đã tổng hợp, mô hình điển hình gồm: xác định yêu cầu, thiết kế tổng thể (basic design), thiết kế chi tiết, triển khai, kiểm thử, phát hành, bảo trì vận hành. Điều quan trọng không phải là nhớ tên công đoạn, mà là ở mỗi công đoạn cần ‘chốt cái gì’ và ‘xác minh cái gì’. Ở giai đoạn yêu cầu, thứ cần chốt không chỉ là danh sách chức năng, mà còn gồm SLA, mô hình vận hành, định hướng chuyển đổi dữ liệu, yêu cầu log phục vụ kiểm toán…
Mô hình chữ V là bản đồ để “kiểm thử soi chiếu thiết kế”
Mô hình chữ V cho thấy mối quan hệ tương ứng giữa bên trái (thiết kế) và bên phải (kiểm thử). Ví dụ: thiết kế tổng thể ↔ kiểm thử hệ thống, thiết kế chi tiết ↔ kiểm thử tích hợp, triển khai ↔ kiểm thử đơn vị. ✅Checkpoint: thiết kế nào không viết được đặc tả kiểm thử thì thiết kế đó chưa hoàn thiện. Lý do kiểm thử bên thứ ba như SHIFT được coi trọng là vì thực tế “người làm ra thường bỏ sót”.
Case doanh nghiệp: Nghiên cứu của Microsoft cho thấy chi phí sửa lỗi ở công đoạn sau nặng đến mức nào
Dù là nhận định kinh điển, nhưng vẫn hữu ích trong thực tế: chi phí sửa lỗi tăng mạnh theo công đoạn (ở giai đoạn vận hành có thể cao hơn rất nhiều so với giai đoạn yêu cầu). Vì vậy, đồng thuận/review ở thượng nguồn và thiết kế kiểm thử sớm sẽ phát huy hiệu quả. Đặc biệt với hệ thống lõi, sự cố sau vận hành tác động trực tiếp đến doanh thu và giao hàng; chi phí cơ hội có thể vượt cả ‘chi phí phát triển’.
✅Action item: Khi review yêu cầu, hãy đồng thời tạo “góc nhìn kiểm thử (điều kiện nghiệm thu)”. Chương tiếp theo sẽ so sánh lựa chọn phương pháp (Waterfall/Agile…) theo “ràng buộc thực tế”.
3. Cách chọn phương pháp phát triển: quyết định Waterfall vs Agile bằng “điều kiện ràng buộc”
Ưu/nhược điểm có thể đảo chiều theo “mức độ trưởng thành của tổ chức”
Như bài tham khảo 3 nêu, Waterfall thiên về kế hoạch, Agile tích lũy giá trị qua lặp. Tuy nhiên, không phải phương pháp nào “tốt hơn”, mà tùy ràng buộc của doanh nghiệp (kiểm toán, hợp đồng, mức độ hợp tác của hiện trường, thiếu Product Owner…). ⚠️Lưu ý: Agile không phải ‘nhanh’, mà là ‘học nhanh’. Tổ chức ra quyết định chậm thì Agile có thể còn chậm hơn.
Bảng so sánh: Chọn sai phương pháp sẽ dẫn đến điều gì
| Góc nhìn | Waterfall | Agile (Scrum…) | Anti-pattern |
|---|---|---|---|
| Biến động yêu cầu | Mạnh khi giả định ít thay đổi | Hấp thụ thay đổi như một giả định | Yêu cầu chưa chốt đã vào WF → nửa sau sụp đổ |
| Hợp đồng & ngân sách | Hợp với fixed scope/fixed price | Hợp với hợp đồng theo thời gian (T&M) / ủy thác theo công sức | Fixed price mà làm Agile → quản lý thay đổi thành địa ngục |
| Đảm bảo chất lượng | Dễ lập kế hoạch dày cho giai đoạn test | Càng mạnh khi có auto test/CI | Agile dựa vào test thủ công → vừa chậm vừa kém chất lượng |
| Ra quyết định | Vẫn chạy được dù quy trình phê duyệt nặng | Cần PO quyết nhanh | Không có PO nhưng vẫn làm “nghi thức Scrum” → hình thức hóa |
Case doanh nghiệp: Spotify cân bằng tốc độ và tự chủ bằng “squad”
Spotify model thường bị hiểu sai; điểm quan trọng là thiết kế tổ chức và văn hóa phát triển (tự động hóa, trao quyền) đi theo bộ. Chỉ “triển khai Scrum” thôi mà thời gian chờ phê duyệt dài thì lead time không thể giảm. Ở các doanh nghiệp Nhật làm tốt, cách tiếp cận phổ biến là bắt đầu nhỏ (MVP) → học → nhân rộng, tích lũy đồng thuận từ hiện trường.
✅Action item: Trước khi quyết định phương pháp, hãy rà soát “khả năng biến động yêu cầu”, “bố trí người ra quyết định”, “có/không auto test & CI”. Chương tiếp theo sẽ đi vào RFP và báo giá — điểm then chốt để đặt hàng thành công.
4. 80% thành bại nằm ở khâu đặt hàng: giảm rủi ro bằng RFP, báo giá, hợp đồng
RFP (Request for Proposal) không phải “spec”, mà là công cụ ra quyết định
RFP như bài tham khảo 4 đề cập sẽ quyết định độ chính xác của báo giá và chất lượng đề xuất. Mấu chốt là: thay vì viết quá chi tiết yêu cầu chức năng, hãy làm rõ vấn đề nghiệp vụ, ràng buộc, ưu tiên và điều kiện nghiệm thu. Ví dụ: “rút ngắn chốt tháng từ 3 ngày xuống 1 ngày”, “lưu audit log 7 năm”, “500 người truy cập đồng thời giờ cao điểm”… Khi có điều kiện đo được, bạn mới so sánh được các đề xuất.
Tính “hợp lý” của báo giá không nằm ở số tiền, mà ở các giả định
Như bài tham khảo 3 chỉ ra, phần lớn chi phí phát triển là nhân công. Điều quan trọng là trong báo giá có ghi rõ “bao gồm gì/không bao gồm gì” hay không. Những mục hay bị thiếu: chuyển đổi dữ liệu, thiết kế vận hành, đào tạo, kiểm thử hiệu năng, kiểm tra lỗ hổng. ⚠️Lưu ý: báo giá càng rẻ thường càng nhiều ‘giả định’, dễ phát sinh bổ sung về sau. Khi so sánh nhiều nhà cung cấp, hãy review khác biệt về giả định thay vì chỉ nhìn tổng tiền.
Case doanh nghiệp: Ứng dụng “Working Backwards” kiểu Amazon vào RFP
“Working Backwards” của Amazon là cách nghĩ: viết thông cáo báo chí (giá trị khách hàng) trước. Áp dụng vào RFP, nếu bạn đặt ở phần đầu “khi hoàn thành thì ai sẽ làm được việc gì nhanh hơn bao nhiêu”, đề xuất của SIer sẽ chuyển từ “liệt kê chức năng” sang “thiết kế giá trị”. Kết quả là giảm chức năng thừa, siết scope, và thực tế có thể giảm tổng chi phí 10–20% (xu hướng trong các dự án tác giả từng hỗ trợ).
✅Action item: Trong RFP, hãy luôn đưa bộ 3: “KPI mục tiêu”, “điều kiện nghiệm thu”, “phi chức năng (hiệu năng/tính sẵn sàng/bảo mật)”. Chương tiếp theo sẽ đào sâu “đảm bảo chất lượng” — lõi của phi chức năng.
5. Đừng biến QA thành “người gác cổng cuối”: học cách kiểm thử bên thứ ba phát huy hiệu quả như SHIFT
QA không phải chi phí, mà là đầu tư để tránh tổn thất và xây dựng niềm tin
Như bài tham khảo 1 nhấn mạnh, kiểm thử bên thứ ba là đòn bẩy nâng chất lượng và dẫn đến thành công kinh doanh. Khi sự cố xảy ra, không chỉ tốn công khôi phục mà còn kéo theo rời bỏ khách hàng, tăng ticket hỗ trợ, tổn hại thương hiệu. Đặc biệt trong B2B, chỉ một sự cố nghiêm trọng có thể làm giảm tỷ lệ gia hạn và phá hủy LTV. ✅Checkpoint: hãy nối KPI chất lượng (mật độ lỗi, test coverage, MTTR) với chỉ số quản trị.
Ví dụ triển khai: chạy auto test và phân tích tĩnh trên CI để “cơ chế hóa” chất lượng
Dù Agile hay Waterfall, nếu chỉ dựa vào “người” để đảm bảo chất lượng thì sẽ sớm chạm trần. Dưới đây là ví dụ tối thiểu chạy test và lint cho Python bằng GitHub Actions. Tự động hóa nhỏ nhưng giúp giảm đều đặn việc làm lại ở công đoạn sau.
name: ci
on:
pull_request:
push:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: pip install -r requirements.txt
- run: pip install pytest ruff
- run: ruff check .
- run: pytest -q
Anti-pattern: “nhồi” kiểm thử vào cuối dự án thì chắc chắn vỡ
“Dev trễ nên gỡ lại bằng test” là quyết định hay gặp. Nhưng kiểm thử không phải công đoạn “tạo chất lượng”, mà là công đoạn “đo chất lượng”. Nếu phát hiện nhiều lỗi, vòng sửa → test lại sẽ khiến tiến độ trễ theo cấp số nhân. Doanh nghiệp làm tốt sẽ review thiết kế, kéo sớm thiết kế kiểm thử, và đưa góc nhìn bên thứ ba để giảm “dòng lỗi chảy vào” từ đầu.
✅Action item: Từ dự án tới, hãy triển khai theo cặp: “đặc tả kiểm thử được tạo cùng lúc với thiết kế tổng thể” + “CI chạy tối thiểu auto test”. Chương tiếp theo sẽ sang “thiết kế vận hành” để sau phát hành vẫn tạo giá trị liên tục.
6. Vận hành/bảo trì cũng là sản phẩm: tạo cơ chế ‘không dừng’ với SRE/DevOps
Thiết kế vận hành yếu, hiện trường sẽ âm thầm rời bỏ
Vận hành/bảo trì không chỉ là “xử lý sự cố”. Nó gắn trực tiếp với công việc hằng ngày: luồng tiếp nhận hỏi đáp, quản lý quyền, cập nhật master, audit log, quy trình chỉnh dữ liệu… Nếu phần này yếu, hiện trường sẽ quay lại Excel và ROI biến mất. ⚠️Lưu ý: vận hành càng để ‘tính sau’ thì càng đắt. Ngay ở giai đoạn yêu cầu, hãy thống nhất luồng vận hành (ai, khi nào, làm gì).
Ví dụ triển khai: đảm bảo Observability bằng log
Muốn giảm MTTR (thời gian khôi phục), cần log và metric. Ví dụ với Node.js, chỉ cần gắn request ID và chuẩn hóa log theo cấu trúc cũng đã giúp truy vết nguyên nhân nhanh hơn đáng kể.
// Express middleware example (Node.js)
import { randomUUID } from "crypto";
export function requestId(req, res, next) {
const rid = req.headers["x-request-id"] ?? randomUUID();
req.requestId = rid;
res.setHeader("x-request-id", rid);
next();
}
// log example
console.log(JSON.stringify({ level: "info", msg: "order_created", requestId: req.requestId, orderId }));
Case doanh nghiệp: Tư duy SRE do Google đề xuất phá vỡ “vận hành phụ thuộc cá nhân”
SRE (Site Reliability Engineering) của Google là triết lý đảm bảo độ tin cậy bằng kỹ thuật. Ở doanh nghiệp Nhật, khi áp dụng on-call, postmortem (retrospective không đổ lỗi), SLO (mục tiêu dịch vụ), không chỉ giảm sự cố mà còn tăng an toàn tâm lý cho đội phát triển, giúp cải tiến chạy đều.
✅Action item: Hãy đưa vào yêu cầu: “SLO (ví dụ uptime 99,9%, mục tiêu khôi phục 60 phút)”, “RACI vận hành”, “thiết kế giám sát & cảnh báo”. Chương tiếp theo sẽ nói về “bảo mật và governance” — bỏ sót dễ thành vết thương chí mạng.
7. Bảo mật và governance: biến thành “điều kiện bắt buộc” khi chọn công ty phát triển
Đã xử lý dữ liệu mật thì bảo mật là một yêu cầu
Bài tham khảo 3 cũng nhấn mạnh “quản trị bảo mật phải vững”. Nếu xử lý dữ liệu cá nhân, dữ liệu khách hàng, dữ liệu tài chính, bảo mật không phải “mục tiêu cố gắng” mà là yêu cầu phải đưa vào hợp đồng và thiết kế. Không chỉ kiểm tra có ISMS (ISO/IEC 27001) hay SOC2, mà còn cần xác nhận đến mức vận hành: phân quyền truy cập, quản lý khóa, SLA xử lý lỗ hổng, lưu giữ log…
Ví dụ triển khai: nguyên tắc tối thiểu quyền và quản lý bí mật (Secrets)
Khi cloud đã phổ biến, nhiều sự cố đến từ “sai cấu hình” hoặc “rò rỉ secrets”. Ví dụ với AWS: IAM theo tối thiểu quyền, dùng Secrets Manager, cấm cấu hình public cho S3… là nền tảng. Với CI/CD cũng bắt buộc không để API key trong repo.
# Anti-pattern (NG): committing secrets
API_KEY=xxxxxxxx
# Better: use environment variables + secret store
export API_KEY="$API_KEY"
Case doanh nghiệp: Vì sao các định chế tài chính thúc đẩy “Zero Trust”
Trong tài chính/bảo hiểm, họ thúc đẩy Zero Trust (không tin mặc định, luôn xác minh) với giả định có gian lận nội bộ và rủi ro chuỗi cung ứng. Đây không chỉ là chuyện của tập đoàn lớn. Khi đối tác gửi bảng kiểm bảo mật, nếu bạn không trả lời được, có thể mất cơ hội nhận dự án. ✅Checkpoint: bảo mật không phải chi phí, mà là điều kiện để có doanh thu.
✅Action item: Trong RFP chọn nhà phát triển, hãy bắt buộc có “phạm vi kiểm tra lỗ hổng”, “đầu mối liên lạc khi incident”, “thời hạn lưu log”. Chương tiếp theo giới thiệu góc nhìn coi giá trị địa phương/xã hội (CSR) là “kết quả của phát triển”.
8. Thiết kế cả “giá trị xã hội”: CSR và năng lực tuyển dụng quyết định tính bền vững của phát triển hệ thống
Phát triển trả lại giá trị cho địa phương/khách hàng/nhân viên rốt cuộc sẽ mạnh hơn
Thông điệp của Công ty System Development (Miyazaki) trong bài tham khảo 2 rất gợi mở: đóng góp cho cộng đồng địa phương thông qua IT và giành được niềm tin của stakeholder — đây không chỉ là khẩu hiệu. Khi thiếu hụt nhân lực ngày càng nghiêm trọng, năng lực duy trì phát triển = tuyển dụng/đào tạo/giữ chân. Dự án có giá trị xã hội trở thành niềm tự hào của kỹ sư, và kết quả là nâng chất lượng cũng như cải tiến liên tục.
Case doanh nghiệp: DX cho chính quyền địa phương và y tế — “vận hành” và “niềm tin” quyết định thành bại
Với chính quyền địa phương và y tế, đây là lĩnh vực không thể dừng và không được sai. Bao gồm cả dịch vụ cho phòng khám nha khoa…, mức độ hiểu biết IT tại hiện trường chênh lệch lớn, nên thiết kế hỗ trợ trở thành một phần của chất lượng. Doanh nghiệp thành công sẽ giảm chi phí vận hành bằng cách giảm inquiry sau triển khai (ví dụ hoàn thiện tutorial giúp giảm 30% câu hỏi) và nội bộ hóa nội dung đào tạo.
Anti-pattern: Chỉ chạy theo deadline ngắn hạn khiến con người kiệt sức
Khi “cháy” vì deadline phi thực tế, tri thức không được tích lũy và cải tiến tiếp theo dừng lại. Kết quả là sự cố tăng, hài lòng khách hàng giảm, và hiện trường càng kiệt sức — vòng xoáy xấu. ✅Checkpoint: đưa tính bền vững (Sustainable Delivery) vào KPI. Ví dụ đo giờ làm thêm, chỉ số phụ thuộc cá nhân, tỷ lệ đầy đủ tài liệu… sẽ giúp “thể lực” phát triển được nhìn thấy rõ.
✅Action item: Hãy đưa vào mục tiêu dự án: “bám rễ tại hiện trường”, “đào tạo”, “giảm công vận hành”. Chương tiếp theo sẽ tổng hợp điểm chính thành checklist và gợi ý Next Step.
Tổng kết: Phát triển hệ thống thành công không nằm ở “công đoạn”, mà ở “chuỗi niềm tin”
Nhắc lại các điểm quan trọng (chỉ cần nắm phần này)
✅Phát triển hệ thống không phải ‘làm ra’, mà là tạo ‘cơ chế liên tục sinh giá trị’
✅Chọn phương pháp không theo trào lưu, mà theo ràng buộc (ra quyết định/hợp đồng/tự động hóa)
✅Đảm bảo chất lượng không phải thêm vào cuối, mà nhúng cùng lúc với thiết kế
✅Chỉ khi bao gồm vận hành/bảo mật/CSR thì ROI mới hoàn chỉnh
Checklist thực hành (5–7 mục)
- ✅Đã thống nhất KPI mục tiêu (giảm thời gian/tăng doanh thu/giảm sai sót) và điều kiện nghiệm thu
- ✅Phạm vi “phát triển” và “xây dựng” đã rõ bằng WBS và deliverables
- ✅Đã đảm bảo đối ứng chữ V (thiết kế ⇔ kiểm thử), và đặc tả kiểm thử được kéo sớm
- ✅Giả định trong báo giá (migrate/đào tạo/hiệu năng/kiểm tra lỗ hổng/vận hành) được ghi rõ để so sánh
- ✅CI… đang chạy tối thiểu auto test và phân tích tĩnh
- ✅Đã chốt RACI vận hành, giám sát, SLO, đầu mối liên lạc khi sự cố
- ✅Yêu cầu bảo mật (phân quyền/log/kiểm tra/ứng phó incident) đã đưa vào hợp đồng
Next Step (một bước làm được từ ngày mai)
- Viết lại mục tiêu dự án thành “KPI nghiệp vụ” và “điều kiện nghiệm thu”
- Bổ sung vào RFP phần “phi chức năng (hiệu năng/tính sẵn sàng/bảo mật)”
- Khi so sánh báo giá, tạo “bảng chênh lệch giả định” thay vì chỉ so tiền
- Bắt đầu chạy dù chỉ 1 auto test trên CI
- Vẽ sơ đồ luồng vận hành (hỏi đáp, phân quyền, cập nhật master, xử lý sự cố)
Phát triển hệ thống là khoản đầu tư lớn gánh tương lai doanh nghiệp. Vì vậy, ngoài kiến thức về công đoạn và phương pháp, hãy thiết kế và thực thi đến cùng “chuỗi niềm tin” bao gồm chất lượng, vận hành, bảo mật và giá trị xã hội.
Tags
Bình luận
🗣️ Tham gia thảo luận
Sign in to leave a comment and join the discussion