Tidak seperti profesi lain (seperti Akuntansi, Hukum, Kedokteran, dll.), Tidak ada sertifikasi untuk profesi Rekayasa Perangkat Lunak.
Saya sangat menyadari banyaknya sertifikasi spesifik teknologi dan metodologi yang bertujuan untuk berfungsi sebagai bukti spesialisasi dan pengalaman, tetapi tidak ada masyarakat Rekayasa Perangkat Lunak publik / badan pengatur yang menetapkan (dan memiliki kekuatan untuk menilai secara hukum) standar profesional yang diterima secara umum .
Saya mengerti bahwa perangkat lunak adalah binatang yang dinamis - itu adalah seni bagian, sebagian ilmu pengetahuan - tapi saya bertanya-tanya apakah Rekayasa Perangkat Lunak memiliki potensi untuk menjadi profesi formal.
Apa yang perlu diubah agar ini terjadi, dan apakah itu akan menjadi hal yang baik?
(Kalau ada yang tahu penelitian formal ke topik ini saya akan sangat menghargai referensi)
Memperbarui
Saya setuju dengan banyak poin bagus yang diajukan di bawah ini terkait dengan tingkat sertifikasi saat ini dalam Rekayasa Perangkat Lunak. Saya juga merasa sangat menarik bahwa beberapa negara memperlakukan Rekayasa Perangkat Lunak sebagai profesi sementara yang lain tidak.
Namun tampaknya ada sedikit kain kafan yang mengelilingi istilah "profesi formal", dan bagaimana itu akan berlaku untuk Rekayasa Perangkat Lunak. Saya pikir masalah utama dengan Rekayasa Perangkat Lunak - dan alasan utama itu bukan profesi penuh - adalah bahwa jika Anda seorang Insinyur Perangkat Lunak bersertifikat, dan - misalnya - beberapa perangkat lunak yang Anda tulis untuk kerusakan lift dan membunuh orang, sertifikasi dan / atau keanggotaan Anda ke badan profesional formal tidak akan dicabut.
Tentu saja, perusahaan Anda mungkin akan dituntut jutaan, dan Anda secara pribadi mungkin kehilangan pekerjaan dan mendapat referensi yang buruk, tetapi secara umum, Anda secara pribadi dilindungi oleh perisai tanggung jawab terbatas akibat dipekerjakan oleh perusahaan tersebut. Dengan kata lain, dan sejauh yang saya tahu, tidak ada penilaian / penegakan hukum yang berlaku (tidak seperti profesi formal lainnya dan masyarakat yang mengatur mereka) yang memiliki mandat untuk secara resmi melarang Anda dari berdagang begitu Anda telah melakukan penumpukan besar-besaran .
Saya sangat menyukai jawaban yang menyentuh fakta bahwa Rekayasa Perangkat Lunak - sebagaimana adanya - adalah meritokrasi, yang tidak perlu menjadi profesi formal, dan bahwa ini adalah hal yang baik yang tidak boleh berubah. Pada saat yang sama, saya pikir kita perlu membuat perbedaan yang jelas antara Insinyur Perangkat Lunak perangkat lunak mission-critical versus pengembang perangkat lunak lain-lain / non-kritis.
Bagi Anda yang bekerja / telah bekerja pada perangkat lunak mission-critical - apakah ada tanggung jawab pribadi? Tentunya ada kebutuhan untuk reaksi formal jika Insinyur Perangkat Lunak melakukan kesalahan mahal?
sumber
Jawaban:
Berdasarkan informasi yang tersedia, saya percaya bahwa Rekayasa Perangkat Lunak sudah merupakan profesi formal. Mungkin tidak diterima secara luas seperti itu, tetapi memenuhi kriteria yang berlaku umum untuk karakteristik profesi.
Dari artikel Wikipedia tentang Profesi :
Ini mengutip Magali Sarfatti Larson The Rise of Professionalism: A Sociological Analysis ekstensif. Mencari "karakteristik profesi" cenderung menghasilkan hasil yang serupa.
Bagaimana Rekayasa Perangkat Lunak menumpuk terhadap karakteristik ini?
Asosiasi Profesional Ada banyak asosiasi profesional untuk insinyur perangkat lunak. The IEEE dan lebih khusus IEEE Computer Society melayani profesional yang bekerja di bidang teknik di seluruh dunia, dengan IEEE Computer Society fokus khusus pada komputer dan perangkat lunak insinyur. The ACM adalah organisasi profesi lain untuk bekerja profesional dalam menghitung, umumnya di Amerika. Ada juga British Computer Society , yang melayani berbagai aspek profesi dalam teknologi informasi dan komunikasi, umumnya di Inggris.
Basis Kognitif Badan Rekayasa Perangkat Lunak disponsori oleh IEEE, Boeing, Dewan Riset Nasional Kanada, Raytheon, Perangkat Lunak Construx, Dewan Insinyur Profesional Kanada, Corporation MITER, NIST, Rasional, SAP (untuk versi 2004). Itu dimulai secara khusus sebagai langkah menuju "membuat rekayasa perangkat lunak disiplin teknik yang sah dan profesi yang diakui" .
Pelatihan Institusional Di Amerika Serikat, program Teknologi Informasi, Ilmu Komputer, dan Rekayasa Perangkat Lunak dapat diakreditasi oleh ABET . Di Kanada, program Ilmu Komputer dan Rekayasa Perangkat Lunak diakreditasi oleh CIPS . Organisasi-organisasi ini menetapkan standar minimum dan hasil yang diharapkan bagi siswa yang lulus dari program terakreditasi untuk memungkinkan mereka berfungsi dalam lingkungan profesional. IEEE juga menawarkan dua ujian berdasarkan Badan Rekayasa Perangkat Lunak Pengetahuan - ujian Associate Pengembangan Perangkat Lunak Bersertifikat untuk sarjana (atau sarjana yang baru lulus) dan ujian Profesional Pengembangan Perangkat Lunak Bersertifikat untuk profesional karir menengah.
Perizinan Per April 2013, NCEES menawarkan ujian Rekayasa Profesional dalam Rekayasa Perangkat Lunak . Ini ditawarkan berdasarkan negara bagian demi negara di Amerika Serikat. Namun, ujian Rekayasa Perangkat Lunak saat ini tidak ditawarkan oleh setiap negara, dan bahkan lebih sedikit yang memerlukan lisensi. Artikel ini, diterbitkan dalam edisi November / Desember 1999 dari Perangkat Lunak IEEE, membahas persyaratan lisensi di negara bagian Texas dan diskusi singkat tentang lisensi di Ontario dan British Columbia, Kanada dan Inggris. Di Texas, lisensi hanya diperlukan untuk bekerja pada desain, pengujian, atau implementasi sistem embedded atau real-time yang "memerlukan pemahaman rinci tentang komponen listrik atau mekanik yang direkayasa" dan untuk sistem perangkat lunak untuk "perangkat mekanik, perangkat listrik , dan sistem tenaga "- jumlah yang relatif kecil dari pekerjaan pengembangan perangkat lunak. Di negara-negara yang menawarkan lisensi, skenario terburuk adalah tindakan disipliner, sanksi, atau kehilangan lisensi Anda jika klien atau majikan mengajukan keluhan. Namun, satu-satunya kerugian nyata datang di negara-negara yang memerlukan lisensi - kecuali lisensi diperlukan untuk melakukan pekerjaan itu, kehilangan itu tidak berarti apa-apa.
Kode Etik ACM dan IEEE Computer Society membuat Kode Etik dan Praktek Profesional Rekayasa Perangkat Lunak . Di Amerika Serikat, lulusan program teknik terakreditasi ABET, termasuk program Rekayasa Perangkat Lunak, juga dapat bergabung dengan Order of the Engineer , yang mempertahankan kode etik yang umumnya berlaku untuk insinyur profesional.
Otonomi Kerja, Kontrol Kolega, Standar Tinggi Profesional dan Keunggulan Intelektual Ini sering terlihat dalam lingkungan di mana rekayasa perangkat lunak diperlakukan sebagai disiplin teknik. Artinya, tidak semua pengusaha (atau pekerja lepas) memperlakukan pengembangan perangkat lunak sebagai rekayasa.
sumber
Badan profesional yang didirikan dan diterima secara luas untuk pengembang perangkat lunak / insinyur / arsitek / dll tidak akan menjadi hal yang baik.
Saat ini, ini adalah salah satu dari sedikit bidang yang dapat bertindak sebagai meritokrasi. Seperti pada, saya tidak peduli gelar apa yang Anda miliki (atau jika Anda memilikinya), berapa senioritas yang Anda miliki, bahasa apa yang Anda ketahui, dll. Secara relatif mudah untuk mengetahui apakah Anda adalah pengembang yang baik atau tidak. , dan pada akhirnya itu adalah satu-satunya hal yang penting. yaitu, bisakah Anda menyelesaikan sesuatu?
Saat ini Anda diukur oleh kemampuan Anda, bukan oleh beberapa akreditasi yang diberikan seseorang kepada Anda. Dan ini adil, Good Thing (tm).
sumber
Tidak ada yang perlu diubah.
Seperti yang ditunjukkan oleh Thomas , rekayasa perangkat lunak sudah merupakan profesi. Hal ini dapat disebut rekayasa, pemrograman, hacking, dan / atau kerajinan, tetapi adalah sebagai profesi dan banyak orang yang membuat uang di atasnya.
Saya pikir pertanyaan Anda adalah seputar perizinan.
Saat ini tidak ada lisensi formal untuk rekayasa perangkat lunak. Siapa pun yang memiliki kecerdasan dan kemampuan pemrograman yang cukup dapat dipekerjakan dan dibayar untuk membuat kode daripada menjalankan mesin atau perangkat.
Ini tidak seperti industri lain (hukum dan kedokteran menjadi contoh seperti dikutip dalam pertanyaan). Diperlukan lisensi untuk profesi itu. Siapa pun dapat mengendarai mobil, tetapi untuk mengendarai secara legal Anda harus memiliki lisensi dirvers adalah contoh lain. Siapa pun dapat memprogram, tidak perlu lisensi atau sertifikasi.
Sekarang, saya percaya bahwa lisensi itu baik karena membuktikan bahwa seseorang memiliki kemampuan untuk melakukan sesuatu (seperti mengendarai mobil) dan mengetahui seluk beluk aturan (jalan).
Lisensi serupa mungkin diperlukan untuk rekayasa perangkat lunak, tapi saya rasa itu tidak akan banyak gunanya. Sebenarnya ada banyak driver berlisensi yang merupakan driver mengerikan, jadi karena Anda memiliki lisensi tidak berarti driver atau programmer yang baik.
Lisensi menciptakan penghalang untuk masuk, yang dalam industri ini tidak akan menjadi hal yang baik, jadi saya tidak melihat manfaat apa pun dari lisensi tersebut.
Perusahaan yang mempekerjakan insinyur perangkat lunak harus menguji kemampuan programmer potensial itu dengan "tes pemrograman" (dan saya tidak berbicara tentang tipe desis desis) berdasarkan keahlian yang diperlukan. Programmer dengan "sertifikasi" terlihat bagus di atas kertas, tetapi mereka harus benar-benar diuji dengan tes dunia nyata untuk mengukur pengalaman dan bakat.
sumber
Saya pikir seharusnya bisa menjadi pengembang perangkat lunak bersertifikat dengan lulus ujian seperti pengacara yang lulus ujian pengacara. Saya juga berpikir bahwa programmer yang tidak bersertifikat harus tetap dapat beroperasi sebagai programmer. Perbedaannya adalah bahwa pengusaha akan dapat beriklan khusus untuk pemrogram bersertifikat jika itu yang mereka inginkan, dan pemrogram bersertifikat akan datang dengan jaminan akuntabilitas tertentu, serta harga yang lebih tinggi.
Saya setuju dengan poster yang mengatakan bahwa pengembangan perangkat lunak adalah kekacauan kereta tanpa akuntabilitas. Saya pikir tidak harus seperti itu. Ada pengembang yang ingin membuat perangkat lunak yang baik dan mau bertanggung jawab untuk itu. Kita hanya perlu cara untuk membedakan diri kita sendiri.
Saya telah mengembangkan perangkat lunak selama lebih dari 20 tahun. Saya tidak mengklaim ini membuat saya pengembang yang hebat, tetapi saya pikir saya adalah pengembang yang cukup baik. Masalahnya adalah saya harus selalu menunjukkan mengapa saya pengembang yang lebih baik daripada setiap anak yang belajar pemrograman di waktu luangnya dan menginginkan pekerjaan yang sama seperti saya. Belum lagi legiun pengembang "lepas pantai" yang berjanji untuk melakukan pekerjaan yang sama untuk sebagian kecil dari uang. Sekarang ini membutuhkan banyak usaha. Saya harus memberikan contoh pekerjaan, referensi, mengikuti tes, melakukan wawancara. Saya bisa dengan mudah mengalami hari yang buruk, melakukan kesalahan pada ujian, dan didiskualifikasi. Saya lebih suka mengatakan, "ya, saya adalah pengembang bersertifikat dan ini adalah sertifikat saya". Saya masih harus melakukan wawancara, tetapi setidaknya saya hanya akan bersaing dengan pengembang bersertifikat lainnya.
sumber
Tidak akan pernah, setidaknya tidak sepenuhnya. Perangkat lunak adalah media, seperti cat. Ada orang yang melakukan pekerjaan pengecatan skala industri dari struktur besar, ada orang yang merancang cat baru untuk melakukan dengan standar tinggi, tetapi ada juga orang yang membeli cat untuk melakukan pekerjaan skala kecil seperti mengecat gudang mereka, dan masih ada lagi yang mungkin mencampur cat mereka sendiri tetapi gunakan saja untuk melukis gambar kucing.
Demikian pula, sementara saya bisa melihat masa depan di mana perangkat lunak keamanan dan / atau keuangan yang kritis membutuhkan teknisi terakreditasi yang mengerjakannya, tidak akan pernah ada kebutuhan bagi orang-orang yang memproduksi perangkat lunak seni atau hiburan. Apa yang perlu diubah untuk mendapatkan perangkat lunak keamanan atau keuangan yang diperlukan untuk memiliki insinyur yang terakreditasi? Sama seperti profesi-profesi lain itu, diperlukan hukum untuk mengamanatkannya.
sumber
Perangkat lunak bukanlah suatu profesi, juga tidak akan menjadi profesi.
"Sebuah profesi muncul ketika perdagangan atau pekerjaan apa pun mengubah dirinya melalui pengembangan kualifikasi formal berdasarkan pendidikan, magang, dan ujian, munculnya badan pengawas dengan kekuatan untuk mengakui dan mendisiplinkan anggota, dan beberapa derajat hak monopoli."
Deskripsi itu sama sekali tidak cocok dengan perangkat lunak.
Pertama, siapa pun yang tertarik dengan perangkat lunak dapat keluar dan mencoba mencari pekerjaan mengembangkan perangkat lunak. Banyak dari mereka yang memiliki gelar sarjana yang sama sekali tidak terkait dengan pemrograman komputer dan banyak yang tidak memiliki gelar sama sekali. Tidak ada yang menghentikan salah satu dari kelompok tersebut dari menjadi pemrogram perangkat lunak.
Perangkat lunak tidak dapat menjadi suatu profesi karena anggota "berlisensi" menjadi bertanggung jawab atas kerusakan yang mereka sebabkan dan malpraktik mereka. 80-90% pengembang akan kehilangan pekerjaan mereka dalam beberapa tahun untuk itu saja.
Secara umum, kualitas perangkat lunak mengerikan, rawan bug dan sekadar tidak dilakukan dengan sangat baik. Apakah itu layak menjadi sebuah profesi? Apakah Anda melihat penghentian itu karena orang mendapatkan lisensi? Jika organisasi profesional tidak akan mendukung standar tinggi dan kualitas profesional maka tidak ada gunanya. Itu bertentangan langsung dengan praktik industri. Kualitas penulisan, perangkat lunak yang tangguh, dan bekerja bertentangan dengan prinsip-prinsip sebagian besar perusahaan di luar sana, karena waktu-ke-pasar, biaya, cukup baik, tidak ingin merusak apa pun, mencoba memperbaiki perangkat lunak yang rusak dipandang lebih penting daripada perangkat lunak kelas profesional.
Juga, tentang malpraktek. Bagaimana Anda akan membuktikan bahwa satu develper versus yang lain harus disalahkan. Dalam perangkat lunak ini adalah cara mudah untuk menunjuk jari dan kedua pengembang "benar". Siapa yang harus disalahkan ketika pengembang itu menggunakan API tidak berdokumen yang tersembunyi di perut OS dan kemudian vendor OS mengubah fungsinya atau menghapusnya?
Semoga sukses dengan badan pengawas itu. Mari kita lihat kongres mengatakan tidak kepada Microsoft ketika Microsoft meminta mereka untuk membunuh tagihan itu karena itu hanya akan memungkinkan mereka untuk mempekerjakan pengembang "berlisensi". Tanpa badan pengatur itu, maka siapa yang akan bergabung dengan organisasi yang memiliki hak untuk mendisiplinkan Anda dan menagih iuran Anda terutama jika tidak ada nilai tambah seperti mendapatkan hak monopoli tanpa badan pengatur.
Adapun, apakah itu hal yang baik untuk memerlukan lisensi? Tentu saja, bagi mereka yang bisa mendapatkan akreditasi. Bayaran Anda akan meningkat secara dramatis dengan monopoli baru Anda yang ditemukan.
Namun, untuk semua orang ... penggunaan teknologi komputer dalam bisnis mungkin akan menurun seiring dengan laju kemajuan yang kita lihat saat ini. Pasti akan ada hambatan untuk kemajuan perangkat lunak baru, seperti bahasa dan metodologi desain. Lagi pula, siapa yang ingin mendorong cara-cara baru dalam melakukan hal-hal yang akan membutuhkan pelatihan ulang bertahun-tahun untuk mempertahankan lisensi Anda. Sebagian besar pengembang berlisensi akan lebih memilih untuk menjaga hal-hal seperti mereka dalam hal itu.
sumber