Sunday, 30 October 2016

MENGULAS SOFTWARE ENGINEER

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