Perbedaan utama: Pengembang perangkat lunak adalah orang yang peduli dengan aspek proses pengembangan perangkat lunak. Pekerjaan mereka termasuk merancang, mengimplementasikan, dan menguji perangkat lunak. Seorang insinyur perangkat lunak, di sisi lain, adalah seorang praktisi rekayasa perangkat lunak. Mereka menerapkan prinsip-prinsip rekayasa untuk desain, pengembangan, pemeliharaan, pengujian, dan evaluasi perangkat lunak dan sistem yang membuat komputer atau apa pun yang berisi pekerjaan perangkat lunak.
Pengembang perangkat lunak adalah orang yang peduli dengan aspek proses pengembangan perangkat lunak. Pekerjaan mereka termasuk merancang, mengimplementasikan, dan menguji perangkat lunak. Seorang insinyur perangkat lunak, di sisi lain, adalah seorang praktisi rekayasa perangkat lunak. Mereka menerapkan prinsip-prinsip rekayasa untuk desain, pengembangan, pemeliharaan, pengujian, dan evaluasi perangkat lunak dan sistem yang membuat komputer atau apa pun yang berisi pekerjaan perangkat lunak. Oleh karena itu dapat diklaim bahwa pekerjaan seorang insinyur perangkat lunak memiliki ruang lingkup yang lebih besar.
Pengembang perangkat lunak mengembangkan perangkat lunak yang berdiri sendiri, yang lebih dari sekadar program sederhana. Dia terlibat dengan semua fase pengembangan, desain, dan pengkodean. Dia mengambil bagian dalam desain, pemrograman komputer, atau manajemen proyek perangkat lunak. Pengembang dapat berkontribusi pada tinjauan umum proyek pada level aplikasi daripada pada level komponen atau tugas pemrograman individu. Di bawah Kelompok Utama Pekerjaan Komputer dan Matematika 15-0000, pengembang perangkat lunak dapat diklasifikasikan ke dalam salah satu dari 3 judul:
- 15-1131 Pemrogram Komputer
- 15-1132 Pengembang Perangkat Lunak, Aplikasi
- 15-1133 Pengembang Perangkat Lunak, Perangkat Lunak Sistem
Pekerjaan seorang pengembang meliputi:
- Desain perangkat lunak
- Implementasi inti aktual (pemrograman yang sering kali merupakan bagian terpenting dari pengembangan perangkat lunak)
- Implementasi lain yang diperlukan (mis. Instalasi, konfigurasi, penyesuaian, integrasi, migrasi data)
- Partisipasi dalam definisi produk perangkat lunak, termasuk analisis kasus bisnis atau kesenjangan
- Spesifikasi
- Analisa Kebutuhan
- Pengembangan dan penyempurnaan simulasi atau prototipe yang dibuang untuk mengkonfirmasi persyaratan
- Analisis kelayakan dan biaya-manfaat, termasuk pilihan arsitektur aplikasi dan kerangka kerja, yang mengarah pada anggaran dan jadwal untuk proyek
- Penulisan dokumentasi yang dibutuhkan oleh pengguna dan mitra implementasi, dll.
- Pengujian, termasuk menentukan / mendukung pengujian penerimaan dan mengumpulkan umpan balik dari penguji pra-rilis
- Partisipasi dalam rilis perangkat lunak dan kegiatan pasca-rilis, termasuk dukungan untuk penginjilan peluncuran produk (misalnya mengembangkan demonstrasi dan / atau sampel) dan analisis kompetitif untuk siklus pembuatan / rilis produk berikutnya
- Pemeliharaan