Software engineering merupakan suatu Rekayasa Perangkat Lunak (RPL) atau ilmu atau teori yang mengerjakan suatu proyek perangkat lunak (software) baik itu menciptakan/membangun software baru ataupun mengembangkan software lama. Banyak orang yang bisa melakukan pengkodean perangkat lunak yang biasa kita sebut programmer, namun dalam proses pembuatan perangkat lunak itu dilakukan dengan tidak sistematis sehingga menghasilkan produk perangkat lunak yang lemah.
Dengan Ilmu RPL sebuah proyek perangkat lunak dapat menghasilkan suatu produk software yang handal. Software Engineering telah menjadi salah satu bidang yang serius dibahas, baik di kalangan akademisi maupun programmer lepas. Perguruan Tinggi Ilmu komputer telah menjadikan bidang ini sebagai salah satu konsentrasi program studi. Bahkan SMK Komputer sekarang juga sudah menjadikan bidang ini sebagai salah satu jurusan dari beberapa jurusan yang ada.
Software Engineering telah berkembang menjadi sebuah profesi layaknya profesi lain seperti dokter, arsitek, sopir, dosen dan sebagainya. Namun software engineering memiliki keunikan tersendiri dimana profesi ini terkadang dapat dimiliki oleh orang yang tidak berlatar belakang pendidikan ilmu komputer tapi terkadang menjadi keharusan bahwa profesi software engineering berasal dari orang yang berlatar pendidikan ilmu komputer khususnya yang mengambil konsenterasi Rekayasa Perangkat Lunak . Ukuran proyek menjadi dasar penilaian apakah profesi ini harus berasal dari latar belakang pendidikan software engineering atau sebaliknya.
1. Softwere Engineer sebagai Profesi
Profesi adalah suatu bentuk pekerjaan yang mengharuskan pelakunya memiliki pengetahuan tertentu yang diperoleh melalui pendidikan formal dan dan ketrampilan tertentu yang didapat melalui pengalaman kerja pada orang yang terlebih dahulu menguasai ketrampilan tersebut, dan terus memperbaharui ketrampilannya sesuai dengan perkembangan teknologi.
Pada profesi yang melibatkan hajat hidup orang banyak, gelar keprofesionalan tersebut harus didapatkan melalui pengujian oleh organisasi profesional yang diakui secara nasional atau internasional, dan hanya kandidat yang lulus yang berhak menyandang gelar profesi ini dan melakukan pekerjaan untuk profesi ini. Contoh yang paling jelas adalah profesi dokter (kesehatan manusia) di Indonesia, hanya sarjana kedokteran yang menjadi anggota dari IDI boleh melakukan praktek kedokterannya.
Organisasi keprofesian ini mengatur keanggotaan, membuat kebijakan etika profesi yang harus diikuti oleh semua anggota, memberi sanksi bagi anggota yang melanggar etika profesi, dan membantu anggota untuk dapat terus memperbaharui pengetahuannya sesuai dengan perkembangan teknologi.
Bila dimasukkan dalam definisi profesi di atas, 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.
2. 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.
Mengutip Tanri Abeng, untuk menjadi profesional harus memenuhi 3 syarat yaitu:
1. menguasai ilmu secara mendalam dalam bidangnya,
2. mampu mengkonversikan ilmu menjadi ketrampilan, dan
3. selalu berpikir positif dengan menjunjung tinggi etika dan integritas profesi.
3. Latar Belakang Pendidikan seorang Softwere Engineer
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.
Kemampuan yang perlu dimiliki seorang Software Engineer supaya dapat melaksanakan tugas dan tanggung jawabnya secara baik dan benar adalah:
1. metodologi pengembangan perangkat lunak: analisa masalah, perancangan sistem yang ada dan yang akan dibangun, meng-kode-kan disain menjadi perangkat lunak.
2. Mengelola kelompok kerja
3. Mengelola sumber daya: merencanakan, mengadakan, mengawasi, dan mengoptimalkan pemanfaatannya
4. Komunikasi
Untuk itu berarti 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.
4. Prinsip kode etik dalam profesional Softwere Engineering
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.
5. 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.
Tabel perbandingan System Analyst dan Programmer
Kriteria System Analyst Programmer
Dominasi tugas Analisa dan perancangan sistem Perencanaan dan pengkodean program
Partner Kerja User, programmer System analyst
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. Dari definisi ini jelas perbedaan antara ketiga pekerjaan di atas.
Infrastruktur yang perlu dipersiapkan untuk pengembangan profesi Software Engineer di Indonesia adalah:
1. Lembaga pendidikan tinggi yang mengelola program studi Software Engineering: berarti perlu dibentuk badan khusus untuk merancang kurikulum program studi ini sesuai dengan definisi pekerjaan dan kebutuhan industri pemakai profesi ini. Oleh karena itu perlu dilibatkan para praktisi yang ada untuk memberi masukan yang pas.
2. Industri yang mendukung pemakaian profesional Software Engineer: berarti pihak industri sudah harus bis membedakan antara berbagai profesi yang ada di area pengembangan perangkat lunak, sehingga bisa diketahui profesi mana yang sebetulnya dibutuhkan oleh pihak industri sendiri. Dengan demikian juga berarti bahwa profesi Software Engineer memang ‘exist’ sebagai profesi, bukan sebagai ciptaan pihak akademisi saja.
3. Organisasi Profesi Software Engineer yang dikelola oleh para profesional: yang berperan untuk membantu para Software Engineer membuat definisi profesi, kebijakan etika profesi, dan sebagai komunitas yang mengkomunikasikan berbagai topik antar anggota.
4. Tersedianya materi bacaan atau alat komunikasi yang membantu profesional Software Engineer memperbaharui pengetahuan dan ketrampilannya.
Keempat infrastruktur ini pembentukannya harus berjalan secara paralel, karena pengalaman di satu bagian akan bisa menjadi masukan perbaikan untuk bagian lainnya.
No comments:
Post a Comment