Software Engineer
Pengertian Software Engineer
Seorang software engineer adalah orang
yang menerapkan prinsip-prinsip rekayasa perangkat lunak dalam mendesain,
pengembangan, pengujian, dan evaluasi perangkat lunak dan sistem yang membuat
komputer atau apapun yang berisi perangkat lunak. Sebelum pertengahan tahun
1990-an, sebagian besar praktisi perangkat lunak menyebut dirinya programmer
atau software developer, tanpa memandang pekerjaan yang sebenarnya. Banyak
orang lebih suka menyebut dirinya pemrogrammer dan software developer, karena
dapat diterima secara luas, sementara istilah software engineer masih dalam
perdebatan.
Profesi software engineer sebenarnya
ada kemiripannya dengan profesi programmer, system analyst ataupun SQA
engineer. Yang membedakannya adalah software engineer memerlukan keahlian lebih
mendalam dalam hal SDLC (Software Development Life Cycle) yaitu seluruh proses
yang harus dijalani dalam pengembangan software. Pada level tertentu, seorang
software engineer juga harus menguasai manajeman proyek software development.
Salah satu standar SDLC yang umum digunakan dalam software engineering adalah
SWEBOK (Software Engineering Body of Knowledge).
Kompleksitas dalam software
develompment dari tahun-ketahun semakin kompleks dan jauh lebih kompleks
dibandingkan pada saat awal komputer diciptakan. Untuk itulah para ahli dalam
bidang software engineering menyusun berbagai metodologi untuk mengoptimalkan
software development process agar dapat menghasilkan produk software yang
sesuai dengan tuntutan perkembangan zaman. Keahlian unik seorang software
engineer adalah kemampuannya untuk merekomendasikan dan menerapkan metodologi
software development terbaik dalam sebuah proyek. Metode-metode software
development populer seperti RUP, Agile, Scrum, XP, TDD, BDD memiliki keunggulan
dan kelemahan dan tentunya diperlukan keahlian dan pengalaman dalam merekomendasikan
dan mengimplementasikan metode yang paling cocok dalam sebuah proyek software
development.
Bila programmer dan system analyst ada
yang dipekerjakan di perusahaan-perusahaan yang core business-nya bukan
software, software engineer umumnya dipekerjakan di perusahaan-perusahaan
software development. Bila sebuah perusahaan memerlukan karyawan dengan posisi
software engineer, maka kemungkinan besar perusahaan tersebut memerlukan
karyawan yang dapat ditempatkan secara fleksibel. Misalnya di sebuah proyek,
karyawan A dapat diposisikan sebagai programmer dalam tahap construction,
sedangkan dalam proyek lainnya si A dapat diposisikan sebagai system analyst
dalam tahap requirement dan design. Dapat pula si A diposisikan sebagai
software tester, SQA engineer ataupun di posisi mana saja dalam SDLC.
Kemampuan untuk menguasai seluruh
disiplin dalam SDLC tidak membuat software engineer selalu lebih unggul
daripada programmer, system analyst atau SQA engineer. Pada tingkatan yang
sama, misalnya pengalaman kerja 5 tahun, seorang sistem analyst tentunya lebih
ahli dalam menangkap requirement dan bisnis proses serta membuat proposal.
Seorang programmer tentunya lebih menguasai secara mendalam bahasa pemprograman
dan IDE (Integrated Development Environment) tools serta trik-trik tertentu
dalam bahasa pemprograman. Seorang SQA engineer lebih menguasai software
testing dan quality assurance. Diluar hal itu, semuanya bergantung pada pribadi
masing-masing dalam mengembangkan keahliannya di profesi apapun.
Istilah programmer sering digunakan
sebagai istilah yg merujuk kepada mereka yang tidak memiliki tools,
keterampilan, pendidikan, atau etika untuk membangun perangkat lunak yang
berkualitas baik. Akibatnya, banyak praktisi menyebut diri sendiri sebagai
software engineer untuk melepaskan diri dari stigma yang melekat pada kata
programmer. Di banyak perusahaan, untuk berbagai kategori programmer, nama jabatan
programmer atau software developer telah diubah menjadi software engineer.
Istilah tersebut menimbulkan kebingungan, karena ada beberapa penolakan, dengan
argumentasi bahwa semua orang pada dasarnya melakukan hal yang sama dengan
perangkat lunak, sedangkan yang lain menggunakan istilah untuk membuat sebuah
perbedaan, dengan argumentasi bahwa pekerjaan tersebut benar-benar berbeda.
Pekerjaan Kebanyakan software engineer
bekerja sebagai karyawan atau kontraktor. Software engineer bekerja untuk
perusahaan, instansi pemerintah (sipil atau militer), dan organisasi nirlaba.
Beberapa software engineer bekerja untuk sendiri sebagai freelancer. Beberapa
organisasi telah memiliki spesialis untuk melakukan tugas tertentu dalam proses
pengembangan software, dan organisasi membutuhkan software engineer untuk
melakukan sebagian atau seluruhnya. Dalam proyek-proyek besar, orang dapat
mengkhususkan diri dalam satu bidang. Dalam proyek-proyek kecil, beberapa tugas
dapat dilakukan seorang diri. Specializations meliputi: industri (analis,
arsitek, pengembang, testers, dukungan teknis, manajer) dan akademisi
(pendidik, peneliti). Terdapat perdebatan atas masa depan prospek untuk
pekerjaan Software Engineers dan Professional IT. Sebagai contoh, pasar online
masa depan yang disebut pekerjaan IT masa depan di Amerika mencoba menjawab
untuk apakah padaa pada tahun 2012 akan ada lebih banyak proyek TI, termasuk
software engineer, dibandingkan pada tahun 2002.
Software engineer meneliti, merancang,
dan men-develop sistem software untuk memenuhi keperluan client. Setelah sistem
sudah secara penuh dirancang software engineer lalu diuji, debug, dan
memelihara sistem.
Mereka perlu memiliki pengetahuan
berbagai macam bahasa pemrograman komputer dan aplikasi, ini karena luasnya
bidang kerja yang dapat terlibat didalamnya.
Software engineer kadangkali merupakan
computer programmer atau software developer. Bergantung pada tipe organisasi,
software engineer dapat menjadi spesialis dalam sistem atau aplikasi. Software
engineering merupakan salah satu profesi IT yang paling popular.
Aktivitas Kerja Software Engineer
Aktivitas yang dilakukan oleh software
engineer meliputi:
a) Researching,
perancangan, dan pembuatan software baru
b) Menguji
program baru dan mencari kesalahan
c) Men-develop
program yang sudah ada dengan menganalisa dan mengenali area untuk modifikasi
d) Memasang
produk software yang sudah ada dan mengambil incompatible platform untuk
bekerja bersama
e) Memeriksa
teknologi baru
f) Membuat
spesifikasi teknis dan perencanaan pengujian
g) Bekerja
dengan bahasa coding komputer
h) Membuat
dokumentasi operasional dengan technical author
i) Memelihara
sistem dengan memonitoring dan memperbaiki kerusakan software
j) Bekerja
secara dekat dengan staff lain, seperti manajer proyek, graphic artists, system
analyst, dan sales dan marketing professional
k) Berkonsultasi
dengan client/kolega berkaitan dengan pemeliharaan dan performance dari sistem
software dan bertanya untuk memperoleh informasi, menjelaskan detail dan
mengimplementasikan informasi
l) Secara
konstan meng-update pengetahuan teknis dan kemampuan dengan menghadiri in-house
dan/atau kursus eksternal, membaca manual dan mengakses aplikasi baru
m) Problem
solving dan berpikir secara menyamping sebagai bagian dari tim, atau secara
individual, untuk memenuhi kebutuhan dari proyek
Kemampuan Software Engineer
Orang-orang
yang ingin berprofesi di bidang ini harus memiliki kemampuan sebagai berikut:
a) Pengetahuan
tentang berbagai macam aplikasi
b) Menguasai
hal-hal yang dikuasai programmer, system analyst dan SQA engineer (dalam porsi
yang lebih sedikit)
c) Menguasai
SDLC berdasarkan SWEBOK (requirement, design, implementation/construction,
testing, maintenance)
d) Menguasai
metodologi software development seperti RUP, Agile, XP, Scrum dll
e) Antusiasme
dan pengetahuan dari project lifecycle
f) Kemampuan
analytical and problem-solving
g) Memperhatikan
detail
h) Pikiran
yang logis
i) Numeracy
j) Pengetahuan
tentang sektor yang akan Anda kerjakan
k) Kemampuan
interpersonal dan komunikasi yang baik
l) Kemampuan
untuk berkomunikasi secara efektif dengan client, kolega, dan manajemen senior
m) Kemampuan
untuk belajar skill dan teknologi terbaru dengan cepat
n) Motivasi
karir dan kemauan untuk melanjutkan lebih jauh pengetahuan dan kemampuan
o) Awareness
pada isu terkini yang mempengaruhi industri dan teknologi
REFERENSI:
http://cintainformatika.blogspot.co.id/2012/01/software-engineer.html
https://muhammadghazali.wordpress.com/tag/deskripsi-pekerjaan-software-engineer/
https://choirulyogya.wordpress.com/profesi-ti/4-software-engineer/
No comments :
Post a Comment