Các bạn đã đi làm thì từng tiếp xúc với “qui trình” này nọ rồi nhưng đối với anh em sinh ziên thì nghe hơi lạ tai, vậy nó là cái gì ? có ăn được không ?…
Dạo gần đây khá bực mình với mấy bác ở trễn, lo cho dân thì ít mà phá hoại thì nhiều. Mỗi lần bị phàn nàn thì mang lệnh bài “đúng qui trình” ra để được miễn tội. Hình như hơi lạc đề. Quay lại ý chính, mình sẽ làm xe ôm, đưa các bạn đi loanh quanh 1 vòng để mọi người hình dung những cái thụt đầu dòng bên dưới.
- Qui trình là gì, Vì sao cần phải biết
- Phân biệt qui trình phần mềm – qui trình dự án – qui trình công ty
- Các mô hình phát triển phần mềm
1. Qui trình là gì
Qui trình (Procedure) được định nghĩa là “cách thức cụ thể để tiến hành một hoạt động hoặc quá trình”. Theo wiki.
Đọc xong chả hiểu cmnlcg. Thôi tạm thời mượn lời giáo sư John Vũ để cho dễ nuốt hơn
Qui trình là một trình tự có tổ chức các hoạt động để hoàn thành cái gì đó. Chẳng hạn: Dự án phần mềm. Trong trường hợp này, dự án là việc áp dụng tài nguyên vào qui trình đó. Tài nguyên là con người, công cụ và kĩ thuật mà bạn áp dụng khi tuân theo qui trình. Thuật ngữ “con người” cũng chỉ ra kĩ năng và kinh nghiệm của thành viên tổ. Trình tự là trật tự theo đó mọi sự được hoàn thành. Thuật ngữ “trật tự” nghĩa là bạn phải tuân theo nó “từng bước một” tương ức theo qui tắc. Chẳng hạn, bạn phải hiểu yêu cầu trước khi bắt đầu thiết kế; chỉ khi thiết kế được hoàn thành thì bạn mới có thể bắt đầu viết mã v.v.
Khi còn là sinh viên, thường bài tập đều ở mức cơ bản, không quá lớn để triển khai qui trình. Anh em thường chơi theo kiểu đọc đề bài xong ngồi code, miễn sao chạy được, đôi khi không cần test, design là khái niệm quá xa xỉ, thầy ngó quá thấy kết quả hiện lên màn hình ổn ổn là nhận được một cơ số điểm rồi đi về oánh bài or làm vài trận đế chế, Fifa. Nhưng ra trường đi làm thì nó loằng ngoằng hơn nhiều, code sinh viên ko chạy được thì tốn vài trăm k thi lại, nếu code nhân viên ko xong trước deadline thì toi luôn dự án. Vậy nên qui trình là cái mà áp dụng để giải được bài toán sao cho các hoạt động được tiến hành trơn tru, đúng hạn, đúng người đúng việc, mình nhận output từ đứa nào và mấy cái mình làm xong ịn ra thì ai là người hốt, và mỗi người sau khi làm xong việc A thì biết phải làm tiếp việc B, rồi đến C.
2. Phân biệt qui trình phần mềm – qui trình dự án – qui trình công ty
Mặt phần mềm : Là tập hợp các nguyên tắc, trình tự để tiến hành phát triển phần mềm. Bao gồm 4 bước cơ bản
- 1.Đặc tả
- 2.Phát triển
- 3.Đánh giá
- 4.Cải tiến
Được xây dựng dựa trên các mô hình phát triển phần mềm như thác nước, tịnh tiến, xoắn ốc, chữ V…
Mặt dự án : là những cái áp dụng cho dự án, nó được customize từ 1 hoặc vài mô hình phần mềm ứng với từng giai đoạn, từng bộ phận, sao cho dự án hoạt động trơn tru nhất, đảm bảo hiệu quả nhất về mặt thời gian – tiền bạc – nhân lực – vật lực. Cách đây 3 năm mình có tham gia vào 1 dự án áp dụng mô hình chữ V, đội offshore chỉ làm phần CODE – TEST tương ứng với mục 2.phát triển trong 4 cái trên. Và để theo đúng qui trình, Code và Unit Test Case sẽ được viết dựa trên tài liệu detail design, IT (integration test) dựa trên tài liệu basic design (flow di chuyển màn hình, item screen list, nghiệp vụ thao tác màn hình của phần Front-End, còn back-end là function list, nghiệp vụ chức năng).
Mặt công ty : là những qui định trong việc điều hoà không khí cho các phòng ban được hoạt động mát mẻ, thoải mái. Qui trình tuyển dụng cho HR đảm bảo tuyển đúng người đúng tội … nhầm, đúng việc, qui trình quản lý tài sản đảm bảo giao máy cho dev đúng cấu hình – đúng thời gian, cho phòng kế toán đảm bảo lương được chuyển vào TK dev đúng ngày – không thiếu (tất nhiên là không thừa rồi), cho phòng hành chính để giải quyết nhanh gọn hiệu quả các nhu cầu tâm sinh lý anh em, cho bộ phận phát triển để đảm bảo đủ số người cần thiết, luân chuyển dev – tester – comter giữa các dự án với nhau hợp tình hợp lý. 1 công ty ai cũng biết việc mình phải làm là gì, xảy ra cơ sự biết ngay ai là người chịu trách nhiệm, DEV làm việc thoải mái – lương cao – không OT, nhân sự ngon – dự án bự ầm ầm kéo đến là 1 công ty có qui trình hoàn hảo.
3.Các mô hình phát triển phần mềm
Như trên mình đã nói, nhắc lại chút : 1 qui trình phần mềm được xây dựng dựa trên 1 hoặc nhiều mô hình. Không có mô hình tồi và cũng không có mô hình vạn năng, cái nào cũng có ưu vs nhược riêng, cần áp dụng linh hoạt.
- Waterfall model- Mô hình thác nước : ウォーターフォール型
- V- Shaped Model- Mô hình chữ V : V – 型
- Spiral Model – Mô hình xoắn ốc : スパイラルモデル
- Iterative and Incremental Model – Mô hình tiến hoá : 反復型
- Agile Model : アジャイルモデル
- Scrum : スクラム
Kết
Xe ôm này chở free nên không cần trả tiền, nhưng mà do hết xăng nên dừng tại đây 😀
Việc tuyển dụng bao giờ cũng yêu cầu 1-2 năm kinh nghiệm. 1 mặt là code cứng hơn, nhưng phần quan trọng mà ít ai nhắc đến đó là tuyển 1 người đã quen qui trình thì khỏi mất công đào tạo, tức là biết rõ phạm vi trách nhiệm – nghĩa vụ của bản thân và các bên liên quan. Nếu các bạn sinh viên mới ra trường trả lời phỏng vấn : “em nắm hết các qui trình cũng như các mô hình phát triển phần mềm” thì coi như pass 50% rồi.
Theo như các tiền bối chỉ dạy là tập trung tìm hiểu kỹ 2 cái : thác nước vs Scrum, thác là mô hình cổ điển – làm tiền đề cho các mô hình sau này, còn Scrum là mô hình hiện đại áp dụng cho dự án to nhỏ đều OK. Mình thấy có lý, còn các bạn thấy sao ?
Dưới đây là nguồn tham khảo. Bạn nào đang học JP thì đọc luôn 日本語 cho oách, coi như rèn IT dokkai.
Tiếng Nhật
http://www.nec-solutioninnovators.co.jp/column/01_agile.html
http://monoist.atmarkit.co.jp/mn/articles/1011/25/news112.html
http://asky.jp/service-pm.html
Tiếng Việt : Viết khá kỹ, có cả ưu nhược, bài rất hay đáng đọc
https://viblo.asia/nguyen.thi.phuong.mai/posts/l5XRBVZeRqPe