Memahami Bagaimana AI Mengubah Proses Software Engineering
Memahami Bagaimana AI Mengubah Proses Software Engineering
Meskipun menurut Business Insider, pembuat ChatGPT OpenAI mungkin melatih teknologi AI untuk menggantikan beberapa insinyur perangkat lunak, banyak pakar meyakini bahwa hal ini tidak akan berdampak pada kualitas tenaga kerja pengembangan.
Salah satu pakar yang berpendapat demikian adalah Alan Fern, seorang profesor ilmu komputer dan direktur eksekutif penelitian AI di Fakultas Teknik Universitas Negeri Oregon. Dalam sebuah email kepada Teknologi Pemerintah, ia menyatakan bahwa banyak pengembang yang sangat terampil mengungkapkan bahwa alat otomasi telah meningkatkan efisiensi mereka, membantu mereka menyelesaikan tugas berulang yang sebelumnya memakan waktu berharga untuk penelitian atau pembelajaran. Ia juga menambahkan, “Saya yakin para pemrogram akan tetap diperlukan dalam jangka panjang, tetapi efisiensinya akan meningkat secara dramatis.”
Seperti yang dilaporkan oleh Acceleration Economy, alat seperti ChatGPT memiliki kemampuan untuk menghasilkan kode yang kompleks dan akurat, dan ini menjadi masa depan dalam pengembangan perangkat lunak. Namun, alat-alat ini tidak akan menggantikan pengembang dalam waktu dekat. Sebaliknya, AI generatif akan mempercepat laju pengembangan perangkat lunak modern, mempromosikan eksperimen, dan bahkan mengubah proses rekayasa perangkat lunak yang ada.
Revolusi Proses Software Enginnering dengan Bantuan AI
Pada tahap pengembangan AI seperti ini, alat-alat seperti ChatGPT, Bing AI, Copilot, Tabnine, dan Amazon CodeWhisperer bukanlah pengganti tim pengembangan, melainkan menjadi alat yang memberdayakan mereka untuk mempercepat pengembangan aplikasi, menulis kode yang lebih lancar, dan mengoptimalkan konsep rekayasa perangkat lunak yang sudah ada.
Mari kita tinjau tahap dasar dalam pengembangan perangkat lunak saat ini dan bagaimana alat-alat yang didukung AI dapat membantu meningkatkannya.
Dalam proses pengembangan perangkat lunak, ada beberapa tahap yang dapat ditingkatkan dengan menggunakan teknologi kecerdasan buatan. Beberapa alat, seperti OpenAI Codex, Selenium, dan Bing AI, dapat memberikan kontribusi yang signifikan dalam memperbaiki efisiensi dan kualitas pengembangan perangkat lunak. Berikut adalah beberapa tahap penting dalam pengembangan perangkat lunak yang dapat ditingkatkan dengan bantuan AI:
- Mengumpulkan persyaratan dan melakukan uji coba: Dalam hal ini, AI dapat membantu dalam menentukan persyaratan yang diperlukan untuk kasus penggunaan tertentu dan menghasilkan uji otomatis yang mencakup semua kemungkinan kasus uji. OpenAI Codex dan Selenium adalah contoh alat yang dapat membantu analis bisnis dan insinyur QA dalam tahap ini.
- Desain antarmuka pengguna (UI/UX): Dengan kemampuan multimodalnya, seperti konten gambar, ChatGPT-4 dapat membantu para desainer dalam menciptakan antarmuka pengguna yang lebih efektif dan memperbaiki perjalanan pelanggan.
- Definisi arsitektur: Meskipun belum bisa mengevaluasi pertukaran antara keputusan arsitektur yang berbeda, AI dapat memberikan saran terkait layanan yang relevan dari penyedia cloud publik atau menghitung Total Cost of Ownership (TCO) dari arsitektur target. Ini dapat membantu para pengembang dalam menentukan arsitektur yang optimal.
- Menulis kode: Menulis kode adalah salah satu bidang yang dapat sangat diuntungkan. Alat seperti Bing AI dapat digunakan untuk menghasilkan cuplikan kode berdasarkan petunjuk yang diberikan. Metode pengembangan perangkat lunak baru, seperti rekayasa cepat, juga dapat diterapkan dengan bantuan AI untuk memfasilitasi pembuatan prototipe dan eksplorasi berbagai ide.
- Pengujian unit: Pengujian unit adalah salah satu area di mana AI dapat memberikan manfaat besar. Alat seperti CodeWhisperer dapat mengotomatiskan pengujian unit, membantu dalam meningkatkan kualitas perangkat lunak dan mengurangi waktu yang diperlukan untuk pengujian.
- Integrasi: Integrasi API dapat menjadi tantangan yang kompleks. Namun, alat AI seperti Kopilot dapat membantu dalam mengembangkan integrasi API dengan lebih efisien, mengatasi masalah kompleksitas teknologi, risiko keamanan, serta mengurangi resistensi dari karyawan.
- Pengujian penerimaan: AI dapat membantu dalam mempercepat proses pengujian penerimaan, meminimalkan risiko bisnis, dan memastikan bahwa semua aspek produk TI telah diterima dengan cepat dan transparan oleh pemangku kepentingan.
- Penerapan: Dalam pengembangan perangkat lunak, penggunaan alat berbasis kecerdasan buatan (AI) dapat memberikan kontribusi besar dalam mempercepat dan meningkatkan kualitas penerapan fitur. Alat-alat ini tidak hanya membantu dalam memverifikasi penerapan, tetapi juga dapat mempersingkat waktu yang diperlukan dalam proses tersebut. Selain itu, mereka dapat terus membantu selama fase pasca-penerapan dengan menandai kesalahan dan mengungkap ketidaknormalan melalui analisis log sistem.
Dengan menggunakan alat berbasis AI, pengujian penerapan fitur dapat dilakukan secara otomatis dan lebih efisien. Algoritma AI dapat memverifikasi apakah fitur yang diimplementasikan sesuai dengan spesifikasi yang ditetapkan. Dengan adanya alat ini, pengembang dapat menghemat waktu yang sebelumnya digunakan untuk melakukan pemeriksaan manual dan mengidentifikasi kesalahan penerapan.
Masa Depan Proses Software Engineering
Proses software engineering terus mengalami transformasi dengan kemajuan teknologi, dan salah satu cara yang dapat membentuk masa depannya adalah melalui pendekatan yang membaginya menjadi dua tahap yang berbeda: tahap kreatif dan tahap pengiriman. Dalam pendekatan ini, kolaborasi antara manusia dan kecerdasan buatan (AI) akan menjadi kunci penting dalam setiap tahapnya.
- Tahap Kreatif – Pada tahap ini, peran analis bisnis dan arsitek perangkat lunak adalah berinteraksi dengan AI. Mereka akan memanfaatkan pengetahuan mereka tentang praktik bisnis dan berkomunikasi dengan AI untuk menghasilkan hasil yang diinginkan. Proses ini melibatkan beberapa iterasi dengan partisipasi pelanggan untuk memastikan kebutuhan dan persyaratan proyek terpenuhi. Tahap kreatif ini menghasilkan persyaratan proyek, arsitektur, desain, dan kriteria penerimaan. Memiliki pemahaman yang baik tentang cara berkolaborasi dengan alat AI yang digunakan akan menjadi keterampilan penting bagi analis bisnis dan arsitek perangkat lunak.
- Tahap Pengiriman – Pada tahap ini, AI digunakan untuk membuat, menguji, dan menyebarkan kode. Peran insinyur perangkat lunak senior adalah untuk meninjau dan memoles kode serta menerapkan aplikasi. Keterampilan yang baik dalam menggunakan alat AI yang relevan atas nama analis bisnis dan arsitek perangkat lunak juga diperlukan di tahap ini. Hasil dari tahap ini meliputi proof of concept (PoC), aplikasi, pengujian penerimaan, skrip penerapan, serta dokumentasi teknis dan pengguna. Selain itu, AI dapat membantu mengidentifikasi bug dan memberikan saran solusi, meningkatkan akurasi dan efisiensi proses pengembangan. Hal ini pada akhirnya dapat menghasilkan produk perangkat lunak berkualitas tinggi yang dapat disampaikan dalam waktu yang lebih singkat, sementara para insinyur dapat fokus pada pemecahan masalah yang lebih kompleks dan kreatif.
Pemanfaatan alat AI dapat secara signifikan meningkatkan efisiensi dalam proses pengembangan perangkat lunak. Misalnya, Jonathan Burket, seorang manajer teknik senior di Duolingo Inc., melaporkan bahwa penggunaan Copilot membuatnya 25% lebih efisien. Selain itu, penelitian dari Microsoft dan MIT menunjukkan bahwa pengembang yang menggunakan alat AI dapat menyelesaikan tugas mereka dengan kecepatan 55,8% lebih cepat.
Dari perspektif proses rekayasa perangkat lunak, akan terjadi perubahan seiring waktu, dengan rekayasa cepat memainkan peran penting dalam perkembangannya. Adaptasi kode juga akan meningkat, sehingga pewarisan kode dari satu tim ke tim lain akan menjadi lebih lancar. Kemampuan untuk menerapkan AI secara efektif dalam operasi akan menjadi standar industri bagi analis bisnis dan arsitek perangkat lunak.
Singkatnya, organisasi yang berinvestasi dalam membuat perangkat lunak khusus akan menganggap mengotomatiskan tugas berulang melalui teknologi AI sebagai titik pertumbuhan potensial. Ini dapat menghasilkan produk akhir dengan kualitas yang lebih baik dan waktu penyelesaian yang lebih cepat, menjadikannya usaha yang menjanjikan untuk dijelajahi.


