Kĩ sư phần mềm được lương cao, ích lợi tốt chỉ với bốn năm đại học khi so sánh với bác sĩ y khoa người cần tám năm ở trường nhưng làm chỉ được hơn vài nghìn đô la.
Kĩ sư phần mềm là thuật ngữ rộng mô tả những người phát triển và bảo trì phần mềm. Điều này bao gồm các vị trí như người lập trình, người kiểm thử, người phát triển, người thiết kế, kiến trúc sư, người phân tích v.v. Ngày nay phần mềm có ở mọi nơi và điều khiển nhiều thứ từ máy tính văn phòng tới máy móc trong cơ xưởng, từ websites tới điện thoại thông minh cho nên nhu cầu về kĩ sư phần mềm có kĩ năng là cao ở mọi nước và số sinh viên đại học ghi danh vào lĩnh vực phần mềm bắt đầu tăng lên nhưng xu hướng này trong phần mềm cũng đang thay đổi từ khái quát hoá sang chuyên môn hoá.
Một nhà phân tích công nghiệp giải thích: “Thường thì phần mềm là về viết mã nhưng khi nhu cầu này tăng lên, phần mềm trở nên lớn hơn, phức tạp hơn cho nên viết mã là không đủ. Kĩ sư phần mềm phải có kĩ năng trong toàn thể vòng đời phát triển phần mềm, từ yêu cầu tới bảo trì, và đặc biệt trong khu vực hay công nghệ nào đó. Ngày nay số các công nghệ đang thay đổi nhanh chóng cho nên người lập trình không còn có thể viết mã được cho mọi loại phần mềm mà bạn phải chuyên môn hoá trong khu vực đặc biệt.
Bạn có thể hoặc là người phát triển web, người phát triển app di động, người phát triển phần mềm nhúng, hay người phát triển ứng dụng doanh nghiệp nhưng không phải tất cả vì các khu vực này yêu cầu nhiều tri thức chuyên sâu trong công nghệ đặc biệt. Ngày nay sinh viên đại học phải hội tụ vào khu vực hay công nghệ đặc biệt để xây dựng tri thức chuyên sâu hơn là người khái quát hoá vì việc làm đang thay đổi, ngành công nghiệp đang thay đổi và nhu cầu cũng đang thay đổi. Vài năm trước nếu bạn biết một ngôn ngữ lập trình, bạn có thể dễ dàng kiếm được việc làm nhưng ngày nay bạn phải chuyên môn hoá trong một khu vực đặc thù.
Chẳng hạn biết lập trình Java là không đủ mà bạn cũng phải biết các nền đặc biệt như Android, IOS, hay Window để làm việc trong phát triển app di động. Bạn cần biết Objective C và IOS để làm việc trong ứng dụng di động Apple; hay JavaScript và PHP để làm việc trong khu vực phát triển Web v.v. Điều đó nghĩa là đại học bây giờ phải cung cấp đào tạo trong nhiều khu vực thay vì chỉ dạy ngôn ngữ lập trình tổng quát.”
Ngày nay tính toán mây đã làm thay đổi rất nhiều bộ mặt công nghệ thông tin vì các công ti đang chuyển mọi thứ lên mây. Thay vì mua phần cứng, phần mềm, thiết lập các trung tâm dữ liệu mà làm gia tăng chi phí vận hành, các công ti có thể để các nhà cung cấp mây làm mọi công việc kĩ thuật và thuê dịch vụ với chi phí tương đối thấp cho việc sử dụng. Do đó những công việc phần mềm chung như lập trình chung, cài đặt phần mềm, cập nhật phần mềm và bảo trì hệ thống không còn được cần tới vì chúng có thể được thực hiện bởi nhà cung cấp Tính toán mây.
Điều đó cũng có nghĩa là những công ti nhỏ có thể có được cùng mức dịch vụ trong mây như các công ti lớn cho nên họ có thể cạnh tranh nhanh chóng và công bằng. Điều đó cũng có nghĩa là không công nhân nào sẽ phải được chuyên môn hoá trong khu vực đặc thù hay sẽ có ít việc làm hơn cho họ. Vấn đề then chốt ở đây là có phần mềm cho khách hàng nhanh chóng nhất có thể được để cho bên cạnh các kĩ năng kĩ thuật, người kĩ sư phần mềm phải có khả năng làm việc tốt với người dùng để hiểu nhu cầu của họ.
Bằng việc có kĩ năng mềm, người kĩ sư phần mềm có thể phát triển phần mềm đúng mà người dùng sẽ dùng. Điều này cũng có nghĩa là đào tạo đại học cũng phải bao gồm các kĩ năng mềm như trao đổi, trình bày, lắng nghe, cộng tác, làm việc tổ, lãnh đạo và quản lí thời gian v.v. Bằng việc có những kĩ năng mềm này, người kĩ sư phần mềm sẽ chắc rằng điều mà khách hàng diễn đạt về nhu cầu là điều thực tế được xây dựng.