Software Engineering atau SE adalah satu bidang profesi yang mendalami cara-cara
pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi
pengembanganan perangkat lunak dan manajemen kualitas.
Software
Engineer bisa digolongkan sebagai sebuah profesi. Deskripsi kerja dari seorang
Software Engineer adalah melakukan aktivitas engineering (analisa, rekayasa,
spesifikasi, implementasi, dan validasi) untuk menghasilkan produk berupa
perangkat lunak yang digunakan untuk memecahkan masalah pada berbagai bidang.
Untuk
bisa melaksanakan tugas sebagai Software Engineer seseorang harus memiliki latar
belakang pendidikan tertentu yang memberikan bekal untuk melakukan kerja dengan
baik dan benar. Selain itu setelah lulus dari pendidikan, seorang Software
Engineer juga dituntut untuk memiliki pengalaman cukup dalam pekerjaan ini
melalui keikutsertaannya sebagai pekerja magang dalam proyek. Software Engineer
juga harus terus memperbaharui pengetahuan dan ketrampilannya sesuai dengan
perkembangan teknologi komputer yang cepat.
Profesi Software Engineer sejauh ini belum memiliki
organisasi profesi. Organisasi profesi Software Engineer yang mungkin
diperlukan adalah tidak diperlukan untuk menyeleksi keanggotaannya, namun yang
penting adalah bisa memberikan kualifikasi yang jelas tentang apa Software
Engineering itu, siapa Software Engineer itu, dan membantu anggotanya untuk
memperbaharui pengetahuan dan ketrampilannya. Namun belakangan ini pengesahan
profesi Software Engineer oleh organisasi profesi mulai dirasakan perlu karena
banyak bidang kerja profesi ini yang bersinggungan dengan hajat hidup orang
banyak.
karakteristik
yang dimiliki Software Engineer:
Kompetensi,
yaitu suatu sifat yang selalu menuntut
profesional Software Engineer untuk
memperdalam dan memperbaharui pengetahuan dan
ketrampilannya sesuai dengan tuntutan profesinya. Seorang Software Engineer
tidak boleh berhenti belajar karena dunia software engineering terus berkembang
dan berubah dengan cepat. Profesi Software Engineer tidak melekat seumur hidup,
hanya sepanjang seseorang terus mengikuti tuntutan profesinya. Dan ini sesuai
dengan etika profesi yang berlaku umum bahwa hanya profesional yang berkompeten
yang berhak melakukan pekerjaan di bidangnya.
Tanggung
jawab pribadi: yaitu kesadaran untuk membebankan hasil pekerjaannya sebagai
tanggung jawab pribadi. Seorang Software Engineer untuk itu harus mengenal
kemampuan dirinya, sehingga bisa mempertanggungjawabkan semua pekerjaan yang
dilakukannya secara moral: selalu merekomendasikan apa adanya, melakukan
pekerjaan yang menjadi bidang kompetensinya, dan mendahulukan kepentingan umum.
Pendidikan
formal yang diperlukan seorang Software Engineer
Kemampuan
yang perlu dimiliki seorang Software Engineer supaya dapat melaksanakan tugas
dan tanggung jawabnya secara baik dan benar adalah:
metodologi pengembangan perangkat lunak: analisa masalah,
perancangan sistem yang ada dan yang akan dibangun, meng-kode-kan disain
menjadi perangkat lunak.
Mengelola
kelompok kerja
Mengelola
sumber daya: merencanakan, mengadakan, mengawasi, dan mengoptimalkan
pemanfaatannya
Komunikasi
Seorang
Software Engineer harus memiliki pendidikan formal tingkat sarjana yang
merupakan gabungan dari bidang:
·
Computer
science: terutama dalam perangkat keras
·
Engineering:
terutama dalam pendekatan/metode analisa pemecahan masalah
·
Industrial
engineering: terutama dalam optimasi proses dan sumber daya
·
Management:
terutama dalam mengelola manusia dan kelompok kerja, manajemen proyek
·
Social
science: terutama dalam pendekatan manusia dan komunikasi
Dari uraian di atas jelas bahwa profesi Software
Engineer tidak semata mengandalkan pengetahuan dalam ilmu komputer.
Pada negara-
negara maju di dunia seperti amerika, profesi sebagai seorang Software engineer sangatlah diminati. Menurut Glassdoor, seperti dikutip dari Wall Street Journal, seorang
Software engineer Google
rata-rata memiliki gaji pokok sebesar 128.336 dollar AS (sekitar Rp 1,2 miliar per
tahun atau Rp 100 juta perbulan)
Rekomendasi
untuk pengembangan profesi Software Engineer di Indonesia.
Di Indonesia profesi Software Engineer belum
terdefinisikan, masih dicampur adukkan dengan profesi lainnya. Di dalam
pengembangan perangkat lunak dikenal 2 aktor yang terlibat yaitu System Analyst
dan Programmer. System Analyst melakukan analisa terhadap masalah dan kebutuhan
organisasi dalam mengelola orang, metode, dan teknologi untuk mengatasi masalah
tersebut. Programmer merencanakan keperluan penggunaan perangkat keras dan
lunak yang sesuai dengan solusi yang direkomendasikan oleh System Analyst, dan
memastikan kebenarannya sesuai dengan spesifikasi.
Bidang kerja Software Engineer meliputi bidang kerja System
Analyst dan Programmer yaitu mencakup semua fase dalam software development
life cycle: analisa sistem, analisa kebutuhan perangkat lunak, perancangan
sistem, pembuatan dan perawatan perangkat lunak, ditambah dengan tugas dari
manager proyek yaitu perencanaan dan pengelolaan proyek.