Dalam sejarah perkembangan dunia komputer, istilah Software Engineering merupakan istilah yang baru, setidaknya istilah ini muncul disaat perkembangan hardaware sudah mencapai beberapa tahap yang signifikan yang sudah dirasakan manfaatnya oleh manusia.
Secara umum, Software Engineering didefinisikan sebagai sebuah proses yang harus dilakukan untuk mambantu masalah user yang berkaitan dengan komputer dengan cara membuat, mengembangkan dan mengimplementasi Software (perangkat lunak) dengan menerapkan prinsip-prinsip yang efisien, efektif dan tepat guna.
Software Engineering ini juga dikenal dengan istilah Rekayasa Perangkat lunak, yang dari nama nya saja kita tahu bahwa Software Engineering ini akan sangat berkaitan dengan masalah Software (perangkat lunak).
Software engineering didefinisikan oleh Fritz Bauer sebagai: penerapan dan penggunaan prinsip-prinsip engineering yang baik dalam rangka menghasilkan software yang ekonomis, reliable, dan bekerja secara efisien pada komputer sungguhan. ( Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.)
Sementara itu IEEE mendefinisikan software engineering sebagai: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches in (1).
Dan Wikipedia menyebutkan definisi Software Engineering (Rekayasa perangkat lunak) adalah sebuah aplikasi yang sistematis, disiplin, menggunakan pendekatan pembangunan yang kuantitatif, operasi dan pemeliharaan perangkat lunak, dan studi tentang pendekatan-pendekatan ini, yaitu penerapan rekayasa perangkat lunak
Software engineering pertama kali di kenal pada saat konferensi di Garmisch Partenkirchen tahun 1968, konfrensi tersebut adalah konfrensi untuk mencari solusi dari krisis software yang tengah terjadi. Krisis software mulai mewabah sejak munculnya komputer generasi ke tiga, dimana software yang dihasilkan menjadi lebih besar dan kompleks, biaya hardware turun dan biaya software meningkat, hal ini terjadi sekitar tahun 1960an.
Dengan semakin berkembangnya teknologi komputer, telekomunikasi dan informasi baik secara hardware maupun software, dan semakin terlihat bahwa teknologi ini sudah semakin merambah kepada seluruh aspek kehidupan manusia, maka mau tidak mau, implementasi perangkat ini membutuhkan orang-orang yang sangat ahli dibidangnya,
Dari bebrapa literatur dan referensi, menunjukan bahwa profesi di bidang IT adalah profesi yang sangat dicari dan mendapatkan pengakuan “secara moral dan materi“ paling tinggi. Lihat saja daftar orang-orang terkaya di dunia yang dikeluarkan oleh Forbes, lebih dari 50 % 10 teratas orang-orang kaya itu bergerak di dunia IT, dengan tokoh sentralnya Bill Gates yang nyaris setiap tahun tidak pernah turun dari urutan pertama orang terkaya di dunia versi Forbes.
Belum lagi di setiap negara, dimana orang-orang yang bergerak di IT itu juga mendapatkan penghargaan yang sangat tinggi dari dunia usaha dan industri. Warta Ekonomi edisi April 2009 juga masih menempatkan profesi IT sebagai profesi termahal.
Hal ini sangat mungkin terjadi, mengingat kebutuhan dan perkembangan teknologi informasi dan komunikasi memanga sangatlah besar dan sepertinya akan terus semakin besar.
Salah satu bidang yang sekarang ini sedang tren dicari oleh perusahaan-perusahaan besar adalah Software Engineer.
Sebuah software engineer adalah seseorang yang menerapkan prinsip-prinsip rekayasa perangkat lunak untuk desain, pengembangan, pengujian, dan evaluasi perangkat lunak dan sistem yang membuat komputer atau apapun yang berisi perangkat lunak.
Romi Satrio Dalam salah satu makalahnya menyebutkan beberapa hal yang melatarbelakangi mengapa Profesi Software Engineer sangat diperlukan adalah sebagai berikut :
• Jumlah software house di Indonesia 250 dan akan meningkat 2x dalam 5 tahun ke depan
• Jumlah pengembang profesional 56500 dan akan meningkat sampai 71600 di tahun 2008
• Total pengembang profesional di dunia adalah 13,5 juta (Indonesia menyumbang0,5%). Sumbangan terbesar dari India (10,5%) dan Amerika (18,9%)
• Region Asia Pacific Penyumbang Developer Terbesar di Dunia (29,2%) disusul North America (21,7%)
• Software Spending per Developer Region Asia Pacific Cukup Rendah, hanya 50% dari Region North America Lebih dari 200 komunitas, forum dan milis pengembang Indonesia, baik yang berkumpul karena kesamaan bahasa pemrograman yang digunakan, atau bidang software yang digarap
• Penemuan menarik bahwa banyak projectproject besar (sistem egovernment, eLearning) dibantu oleh komunitas dan perusahaan pengembang level kecil
• Banyak yang sudah mulai berkontribusi untuk project opensource secara terbuka (mendaftarkan diri dan aktif di sf.net) Dalam 5 tahun ke depan, sektor IT di Indonesia akan didominasi oleh IT Services. Menumbuhkan 81000 lapangan pekerjaan dan 1100 perusahaan IT baru
• Dalam periode tersebut software spending akan naik hingga mencapai 11.4% dari total IT Spending. 29.9% dari seluruh pekerja IT di Indonesia akan terlibat dalam pengembangan, pendistribusian atau layanan implementasi software.
• Pertumbuhan IT 6% tahun 2005 dan salah satu wilayah terkuat adalah Asia
Dibawah ini beberapa kemampuan yang harus dimiliki oleh seorang software engineer, diantaranya :
1. Menguasai keterampilan dan pengetahuan rekayasa perangkat lunak.
2. Mampu bekerja sebagai perorangan dan sebagai bagian dari suatu tim untuk mengembanghkan suatu perangkat lunak yang berkualitas.
3. Mampu merancang suatu perangkat lunak sesuai dengan sasaran proyek. Batasan biaya, waktu, pengetahuan, sistem yang berjalan dan organisasi.
4. Mampu memberikan desain solusi sesuai dengan aplikasi yang dibangun dan mampu mengintegrasikan dengan pendekatan etis, sosial, hukum dan ekonomi.
5. Mampu mendemonstrasikan suatu pemahaman akan teori, model, teknik dalam hal identifikasi masalah dan analisa, desain perangkat lunak, pengembangan, implementasi, verifikasi dan dokumentasi.
6. Mampu dan paham akan pentingnya negosiasi, kebiasaan bekerja efektif, leadership dan komunikasi baik dengan stakeholders maupun dengan rekan tim pada saat pengembangan software.
7. Selalu mempelajari model baru, teknik, teknologi yang muncul serta mengembangkan profesional yang berkelanjutan.
ACM/IEEE mengeluarkan suatu kode etik sebagai profesional Software Engineering, antara lain harus mengikuti Delapan Prinsip berikut :
1. MASYARAKAT, Perekayasa perangkat lunak akan bertindak secara konsisten sesuai dengan kepentingan masyarakat.
2. KLIEN DAN ATASAN, Perekayasa perangkat lunak akan melakukan yang terbaik bagi klien dan atasan mereka, konsisten dengan kepentingan masyarakat.
3. PRODUK, Perekayasa perangkat lunak akan mejamin bahwa produk mereka dan modifikasi yang mereka lakukan terhadapnya memenuhi standar profesional yang setinggi-tingginya.
4. PENILAIAN, Perekayasa perangkat lunak akan mempertahankan integritas dan independensi penilaian profesional mereka.
5. MANAJEMEN, Manajer dan pemimpin rekayasa perangkat lunak akan mengikuti dan mempromosikan pendekatan etis terhadap manajemen pengembangan dan pemeliharaan perangkat lunak.
6. PROFESI, Perekayasa perangkat lunak akan mempertinggi integritas dan reputasi profesinya konsisten dengan kepentingan masyarakat.
7. KOLEGA, Perekayasa perangkat lunak akan bersifat adil dan mendukung terhadap koleganya.
8. DIRI SENDIRI, Perekayasa perangkat lunak akan berpartisipasi dalam pembelajaran seumur hidup mengenai praktek profesi mereka dan akan mempromosikan pendekatan etis terhadap praktek profesi tersebut.
Kode Etik ini dibuat terkait dengan perilaku dan keputusan yang dibuat oleh para Software Engineering Profesional yang mencakup profesi praktisi, pendidik, manajer, supervisor, pembuat kebijakan dan termasuk trainee dan mahasiswa profesi Sofware Engineering.
Referensi :
1. Romi Satria Wahono, materi Kuliah Software Engineeering
2. Warta Ekonomi Edisi April 2009
3. Wikipedia
4. Literatur lain dari internet