Hướng dẫn dự án Capstone/1
Nhiều sinh viên đã viết cho tôi hỏi xin giúp đỡ về dự án Capstone của họ. Vì đây là dự án “thực” đầu tiên, nhiều người lo lắng và không chắc về phải làm gì. Dựa trên yêu cầu của họ, tôi đã viết bản hướng dẫn tóm tắt cho dự án Capstone dựa trên điều tôi đã dạy ở Carnegie Mellon (mỗi trường có thể khác) mà một số trong các bạn có thể thấy nó là hữu dụng:
Dự án Capstone được thiết kế để giúp cho sinh viên kinh nghiệm việc phát triển phần mềm “thế giới thực”. Qua vài tháng tiếp, tổ của bạn sẽ thiết kế và xây dựng sản phẩm phần mềm bằng việc dùng tri thức bạn đã học trong ba năm quá khứ trong trường. Đây là cơ hội cho bạn áp dụng tri thức của bạn và chuyển nó thành kĩ năng “thực”. Bằng việc tuân theo hướng dẫn này, bạn sẽ học các kinh nghiệm có giá trị trong làm việc tổ, giải quyết vấn đề, qui trình phần mềm, và quản lí dự án. Đây là những kĩ năng mà công nghiệp phần mềm cần và mong đợi người tốt nghiệp biết.
Ngày nay phát triển phần mềm vẫn còn có vấn đề. Nhiều dự án không đáp ứng lịch biểu của chúng. Ngay cả khi được chuyển giao, nhiều sản phẩm phần mềm chưa bao giờ được dùng vì chất lượng thấp. Điều đáng quan tâm là các dự án này không thất bại bởi vì các lí do kĩ thuật mà chúng thất bại do quản lí dự án kém và làm việc tổ không hiệu quả. Nói cách khác, chúng thất bại do các lí do có liên quan tới “qui trình” hơn là “công nghệ”. Đó là lí do tại sao trong các dự án Capstone, điều quan trọng nhất mà sinh viên phải học là “làm việc tổ” và “qui trình” như lập kế hoạch, quản lí và thực hiện dự án phần mềm.
Phát triển phần mềm là hoạt động phức tạp. Mặc dầu các ngôn ngữ lập trình và công cụ cho phép người phát triển viết nhiều mã nhanh hơn, nhưng viết mã chỉ đại diện cho một phần nhỏ của hoạt động phát triển phần mềm. Học về phát triển phần mềm hiệu quả, tổ của bạn phải tuân theo cách tiếp cận vòng đời phần mềm và tạo ra một loạt các tài liệu. Tổ của bạn được yêu cầu đệ trình các báo cáo pha dự án được viết ra trong toàn thể dự án capstone. Các báo cáo này được dùng để làm tài liệu cho tiến bộ của tổ và để nhận diện các vấn đề mà tổ tìm ra. Các báo cáo này là công cụ có giá trị cho quản lí dự án và tự đánh giá của tổ. Chúng cũng cung cấp cho giáo sư của bạn các thông tin họ cần để đánh giá hiệu năng của tổ và cung cấp hướng dẫn cho tổ trong dự án Capstone project.
Trước khi bạn bắt đầu, có vài điều bạn cần biết: Bạn phải KHÔNG BAO GIỜ nhảy vào viết mã như bạn nghĩ bạn có thể làm. Đây là vấn đề thông thường trong các sinh viên. Nhiều người nghĩ họ đã biết về giải pháp cho nên họ bắt đầu viết mã ngay. Đó là lí do tại sao nhiều dự án Capstone thất bại. Xin nhớ cho rằng dự án Capstone KHÔNG phải là phân công nhiệm vụ trong lớp lập trình. Bạn không học về Java, PHP, hay C++ ở đây. Bạn đã học chúng trong các năm trước và không cần lặp lại ở đây. Dự án Capstone là về thực hiện vòng đời phát triển phần mềm. Nó sẽ giúp bạn hiểu mọi bước cần thiết để xây dựng chất lượng của sản phẩm phần mềm. Xin nhớ cho rằng viết mã chiếm ít hơn 20% của mọi công việc được cần tới trong dự án phần mềm điển hình. Không dự án nào đã bao giờ thất bại vì viết mã nhưng bởi vì mọi người KHÔNG tuân theo qui trình. Cho nên bạn phải học về qui trình phần mềm và không bỏ qua bất kì bước nào. Một khi bạn học mọi bước này, bạn cũng phát triển kĩ năng phát triển riêng của bạn và do đó không có vấn đề gì khi làm việc trong công nghiệp phần mềm.
Phần lớn các dự án Capstone được trao cho bạn bởi các công ti bên ngoài (khách hàng) trong cộng tác với đại học của bạn. Về truyền thống, khách hàng cho đại học của bạn bản đặc tả yêu cầu phần mềm (SRS) cho dự án Capstone. Phần lớn thời gian, yêu cầu là mông lung và không được xác định rõ (Tất nhiên, nó là được dự định cho bạn học về phân tích yêu cầu). Như một tổ, bạn phải kiểm điểm yêu cầu một cách cẩn thận để nhận diện từng cấu phần hệ thống và chức năng. Tổ của bạn phải hiểu điều khách hàng (công ti phần mềm bên ngoài) muốn tổ thực hiện. Tất nhiên, bạn phải biết cái gì đó về khách hàng. Bước đầu tiên là tổ viết ra phát biểu ngắn mô tả công việc của khách hàng của bạn và cách họ vận hành như họ là ai, họ làm gì v.v. (Bạn học về kinh doanh của họ). Sau đó, bạn phải phỏng vấn khách hàng để hiểu sản phẩm và dịch vụ của họ. Bạn muốn biết cách họ làm công việc, cách họ giải quyết thông tin, cách họ phát triển phần mềm (bạn học về qui trình công việc của họ). Bạn phải kiểm điểm công nghệ họ dùng để hiểu nhu cầu của họ và các lí do tại sao họ muốn tổ của bạn làm việc trên dự án này. Bằng việc hỏi họ, thảo luận với họ tổ của bạn sẽ biết nhiều thêm về qui trình của khách hàng và yêu cầu của họ (Xin ôn lại tài liệu của lớp kĩ nghệ yêu cầu).
English version
Tác phẩm, tác giả, nguồn
- Tác phẩm: Quản lý dự án
- Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University.
- Wiki hóa: https://kipkis.com