Các bạn lập trình viên thân mến,
Làm thế nào để bạn "lập kế hoạch phần mềm" khi nghiên cứu học thuật được tham gia? Và, một lưu ý phụ, làm thế nào để bạn thuyết phục sếp rằng viết phần mềm không giống như xây nhà và nó giống như viết tiểu thuyết hơn ?
Các chi tiết gory dưới đây.
Tôi phụ trách một nhóm phát triển nhỏ làm việc trong phòng thí nghiệm nghiên cứu. Chúng tôi bắt đầu phát triển một phần mềm với mục đích ra mắt công chúng một ngày (tức là bán và kiếm tiền từ đó). Phần mềm như vậy phụ thuộc vào, trong số những thứ khác, ít nhất hai dòng nghiên cứu độc lập: đó là, có ít nhất hai bằng tiến sĩ. hy vọng rằng một ngày nào đó sẽ có một triển khai thực hiện những gì chúng ta cần.
Phần mềm chính cũng phụ thuộc vào các tài nguyên cụ thể khác mà chúng tôi là nhà phát triển có thể chăm sóc: kết xuất đồ họa, biến dạng cơ thể mềm, v.v.
Sếp của tôi yêu cầu tôi viết các thông số kỹ thuật, yêu cầu VÀ biểu đồ GANTT đẫm máu của toàn bộ dự án. Đối mặt với thực tế là tôi không có manh mối về phần nghiên cứu và nghiên cứu đó là nền tảng cho phần mềm, ông nói "hãy đưa ra các giả định." Để rõ ràng của cuộc tranh luận, ông là một giáo sư có bằng tiến sĩ. sinh viên nên đưa ra nghiên cứu chúng tôi cần. Và anh ta đến từ một nền tảng kỹ thuật nghiêm ngặt: lên kế hoạch cho mọi thứ trước, viết ra các thông số kỹ thuật và chỉ sau đó viết mã "đó là phần cuối cùng".
Những gì tôi đang làm bây giờ:
- Tôi đã phá vỡ các sản phẩm trong các tính năng; mỗi "tính năng" là, thực tế , là một sản phẩm riêng biệt;
- Mỗi tính năng được xây dựng trên đầu trang của tính năng trước đó;
- Khi một tính năng (A) có nguyên mẫu hoạt động, nhóm có thể bắt đầu làm việc với tính năng tiếp theo (B), trong khi QA được thực hiện cho A (nếu tiền cho phép, nhiều người có thể được đưa vào, v.v.);
- Các tính năng phụ thuộc vào nghiên cứu sẽ đến sau cùng: vào lúc đó, hy vọng, phần nghiên cứu sẽ được hoàn thành ( khi vẫn còn là một câu hỏi lớn);
Ngoài ra, tôi đã thiết lập nhóm sử dụng SCRUM để phát triển 'phiên bản 1.0 ', do trong một vài tháng. Thời hạn này có thể được đặt dựa trên các giả định hợp lý: chúng tôi đã liệt kê tất cả các tính năng cần thiết, chúng tôi đã tính đến tính khả dụng của chúng tôi và chúng tôi đã đưa ra ước tính hợp lý.
Vì vậy, câu hỏi của tôi, một lần nữa, là:
- Làm thế nào để tôi làm cho sếp của tôi hạnh phúc trong khi đồng thời nhận được một cái gì đó ra khỏi cửa?
- Làm cách nào để tôi viết thông số kỹ thuật cho một cái gì đó mà chúng tôi - các nhà phát triển - không biết liệu có thể làm được hay không? (Chúng tôi vẫn chưa quyết định sử dụng thư viện nào cho một số nhiệm vụ; chúng tôi sẽ làm như vậy khi chúng tôi cần)
- Làm thế nào để tôi có được các yêu cầu cho điều đó, cho rằng vẫn chưa có khách hàng cũng như nhà đầu tư, chỉ có rất nhiều lợi ích và lời hứa?
- Làm thế nào để tôi có được hòa bình trên thế giới?
Tôi chắc chắn ít nhất một trong những câu hỏi của tôi sẽ được trả lời :)
ps: Tôi đang viết điều này nặc danh vì một nhà đầu tư tiềm năng có thể phản tác dụng nếu điều này được phát hiện. Hy vọng bạn sẽ hiểu. Tuy nhiên tôi phải nói rằng tôi không thích tâm lý 'che giấu sự thật' này: chương trình này có thể sẽ mang lại lợi ích cho nhiều người, và không thể nói chuyện cởi mở về điều này (với tên tôi và danh tiếng của tôi kèm theo) cảm thấy như bị kiểm duyệt. Nhưng than ôi, tôi quan tâm nhiều hơn về đề xuất của bạn bây giờ.