Cong nghe phan mem la gi

Công nghệ phần mềm (kỹ thuật phần mềm) là gì ?

Du lịch

Kỹ thuật phần mềm (công nghệ phần mềm)
Đây là chuyên ngành mà sinh viên theo học nhiều nhất, vì dễ kiếm việc làm.
Chuyên ngành Kỹ thuật phần mềm (KTPM) này phù hợp cho những bạn nào thích lập trình thuần túy. Bạn cứ lập trình code suốt ngày là được, ha ha. Nói vậy chứ đâu có dễ.
Khi lập trình xong, thường ta sẽ tạo ra một sản phẩm gọi là “phần mềm”, “chương trình” hoặc “ứng dụng”. Bạn có biết rằng bạn đang sử dụng phần mềm khắp mọi nơi như: Microsoft Word, Excel, Powerpoint, trình duyệt web Chrome, Firefox,… chương trình vẽ Photoshop, chương trình Camera360 giúp con gái dụ dỗ con trai ghê hơn…thậm chí cả Facebook, Google Search, Zing MP3,… cũng là một dạng ứng dụng. Thậm chí cả hệ điều hành Microsoft Windows hay Linux cũng là phần mềm. Wow…
Trong chuyên ngành này có nhiều nhánh nhỏ như lập trình ứng dụng desktop, web, mobile mà rất nhiều bạn thích đi theo.

Bạn có thể tạo ra các phần mềm trên máy tính bình thường, hoặc là một trang web (website), hoặc là ứng dụng di động Android, iOS, hoặc lập trình ở mức độ sâu bên dưới về phần cứng, rất rộng.

Nhưng nếu bạn chỉ lập trình không thì chưa đủ để tạo ra phần mềm tốt cho khách hàng. Bởi vì việc tạo ra phần mềm tốt, có chất lượng đòi hỏi phải có một quy trình. Và trong mỗi quy trình đó, hình thành nên các công việc khác nhau, trong đó quan trọng nhất là lập trình viên (người lập trình – coder/programmer/developer).


Quy trình cơ bản là vầy nè: ban đầu ta sẽ xã giao, làm quen với khách hàng, trò chuyện với họ để lấy các yêu cầu của họ. Khách hàng nói chuyện bằng ngôn ngữ của riêng họ (y tế, giao thông, kinh doanh,…). Khách hàng thường chẳng biết code, chẳng hiểu gì về ngành CNTT cả. Lập trình viên chỉ biết ngôn ngữ code, đâu hiểu được các thuật ngữ y tế, giao thông gì đâu. Ngôn ngữ khác nhau, vậy thì làm sao lập trình viên và khách hàng có thể giao tiếp với nhau được? Và đây chính là nhiệm vụ của BA (Business Analyst). BA là người có khả năng giao tiếp, vừa hiểu được nghiệp vụ khách hàng mà vừa hiểu được cơ bản ngành CNTT. BA sẽ phân tích, mổ xẻ các yêu cầu khách hàng để bàn giao cho lập trình viên. Nhờ vào đó lập trình viên sẽ phân tích, lập trình tạo ra phần mềm. Làm ra phần mềm xong thích quá, nhận tiền thôi!!! Đâu dễ vậy, ta cần phải kiểm tra xem phần mềm có bị lỗi hay không, chạy có đúng như mong muốn khách hàng hay không, và đây là công việc của tester. OK hết thì mới giao phần mềm cho khách hàng và ôm tiền đi chơi với gấu thôi.
Tester thì ít lập trình hơn, họ có các công cụ, kĩ năng để kiểm tra phần mềm. Nếu như phần mềm là 1 game, tester sẽ là người chơi game, chơi suốt ngày thích ghê. Nhưng mà đâu có dễ vậy: chơi game để tìm lỗi, tìm được lỗi là lập trình viên phải sửa lỗi. Niềm vui của tester là nỗi đau cho developer.
Trong quá trình làm việc, luôn luôn có một người quản lý dự án (project manager) quản lý các lập trình viên, lên kế hoạch, bảo đảm tiến độ, là cầu nối của lập trình viên, BA, tester,… Họ là lãnh đạo. Họ không hẳn là người lập trình giỏi nhất, không hẳn là người tài nhất, nhưng họ có khả năng kích thích, tăng sự hưng phấn, tăng thêm nguồn động lực cho mọi người để hoàn thành dự án tốt.
Cao hơn nữa, ta còn có thể có CIO, Technical Architect (kiến trúc sư phần mềm), QA, QC, tá lả luôn.

Túm lại, người không thích lập trình, thích lập trình ít (như con gái chẳng hạn) thì có thể làm nghề tester hoặc BA.

Nguồn: Nguyễn Trung Thành (https://www.facebook.com/notes/nguyễn-trung-thành/)

Leave a Reply

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