Tôi có một câu hỏi đã được đưa ra bởi công việc mới nhất của tôi (chứ không phải thực tập).
Chỉ cần đặt mọi thứ vào bối cảnh - Tôi 21 tuổi và tôi đã hoàn thành năm thứ 2 đại học trước đó, tôi đã có khoảng 2 năm kinh nghiệm làm các công việc quản trị / quản trị hệ thống và về cơ bản tôi có thể nói rằng tôi đã thấy sự khác biệt Lĩnh vực CNTT hoạt động. Chuyển sang thời điểm hiện tại và đây là một công việc thực tập tại một trong những tổ chức nghiên cứu hàng đầu ở Anh.
Những gì tôi phải làm là tạo ra một số công cụ nội bộ bằng cách sử dụng hỗn hợp các công nghệ - chủ yếu là AWS / Java / Bash - bạn sẽ có được hình ảnh. Mọi thứ đều ổn, tôi đang làm việc NHƯNG tôi không vui. Tại sao vậy - bởi vì tôi dự kiến sẽ làm việc trong một vấn đề đặc biệt. Đó là tạo ra mọi thứ một cách nhanh chóng, không mất thời gian vào thiết kế. Người quản lý của tôi nói rõ ràng rằng nó được dự kiến sẽ "vượt qua" các vấn đề khi chúng phát sinh và về cơ bản chúng tôi. Kết quả là hóa ra mọi thứ phải được thực hiện lại và tái thiết kế và chúng vẫn chưa hoàn hảo. Theo như thử nghiệm có liên quan - giữ nó ở mức tối thiểu, miễn là nó hoạt động thì nó vẫn ổn.
Tôi có lỗi khi không đồng ý với cách tiến hành công việc này không? Có sai không khi nghĩ về toàn bộ hệ thống, sau đó tập trung vào các thành phần khác nhau và xem chúng có thể hoạt động như thế nào, đến 0 trong các "điểm chính" khác nhau có thể trở thành vấn đề trong tương lai? Có phải là một tội ác khi muốn làm một công việc tốt và không phải là một "công việc nhanh chóng"? Có phải là một sai lầm hoặc thái độ sai lầm khi muốn nghiên cứu các cấu trúc dữ liệu áp dụng cho một vấn đề để bạn có thể chọn phương án tốt nhất tùy thuộc vào một vấn đề cụ thể không? Theo hiểu biết của tôi, bit "Kỹ thuật" trong "Kỹ thuật phần mềm" phải thực hiện chính xác với điều này - nghiên cứu miền vấn đề của bạn và đưa ra giải pháp thông tin sau đó tinh chỉnh khi cần thiết?
Tôi đã từng đến một cuộc phỏng vấn tại văn phòng của Arm ở Anh và họ chỉ cho tôi phòng SCRUM của họ và có vẻ như họ có ý tưởng khá hay về cách quản lý dự án của họ - họ đã tồn đọng, họ có số liệu về thời gian mỗi lần vấn đề có thể cần giải quyết - những điều thông thường đối với SCRUM - hoàn toàn khác với cách mọi thứ được vận hành "ở đây"
Tôi đã xây dựng một ý tưởng sai về ngành công nghiệp phần mềm nói chung? Tôi muốn nghe ý kiến của bạn về điều đó. Ý tôi là tôi "nhập" phát triển phần mềm hoàn toàn vì tôi muốn tạo ra mọi thứ - đơn giản và đơn giản, nhưng tôi muốn tạo ra những thứ chất lượng. Tôi muốn xem phần mềm của mình được sử dụng trong các tình huống khác nhau, tôi muốn xem phần mềm chống đạn - đó không phải là động lực cho tất cả các kỹ sư phần mềm? Tôi nghĩ mọi người đều có thể trở thành lập trình viên / lập trình viên chỉ bằng cách học cú pháp nhưng đối với tôi, nơi niềm vui thực sự bắt đầu là khi bạn thực sự phải đưa ra một thiết kế có thể thực hiện được trong thế giới thực.
Tôi đã từng làm bài tập đại học của mình bằng cách chỉ nhìn vào chúng và trực tiếp bắt đầu viết mã và có thể dễ dàng đạt điểm trên 75% và không bao giờ thực sự đánh giá cao mô-đun "vòng đời phát triển phần mềm". Nhưng bây giờ khi tôi thấy trong thế giới thực, việc làm việc tồi tệ như thế nào nếu không có bất kỳ quy trình chính thức nào và sự thất vọng vốn có trong tình huống mà bạn không biết liệu các yêu cầu sẽ thay đổi vào ngày mai (ồ, tôi đã nói rằng chúng ta không 't đã xác định rõ phân tích yêu cầu?)
Tôi thực sự muốn tin rằng tôi vừa đạt được một vị trí mà một số người chỉ cần một con khỉ mã để thực hiện công việc bẩn thỉu của họ và đây không phải là trường hợp thế giới phần mềm hoạt động rộng lớn.
because I'm expected to work in an ad-hoc matter. That is create things quickly, without spending time on designing
- Chào mừng bạn đến với Real World ™, nơi có thời hạn và các công ty dự kiến sẽ tạo ra kết quả.