Sudah umum diketahui bahwa AI generatif dapat menghasilkan gambar fotorealistik, ilustrasi, dan lukisan hanya dengan diberikan instruksi.
Sementara itu, di dunia bisnis, perhatian terfokus pada kemampuan AI generatif untuk menghasilkan program.
AI percakapan didukung oleh model bahasa besar, teknologi fundamental, dan sangat unggul dalam bercakap-cakap dalam berbagai bahasa serta menerjemahkan di antaranya.
Bahasa pemrograman, yang digunakan untuk membuat program, juga merupakan jenis bahasa. Programmer manusia, dalam arti tertentu, menerjemahkan persyaratan perangkat lunak yang diterima secara lisan ke dalam bahasa pemrograman.
Inilah sebabnya mengapa AI generatif percakapan, yang menggunakan model bahasa besar, juga sangat mahir dalam pemrograman.
Selain itu, pemrograman adalah tugas intelektual di mana kebenaran hasilnya sering kali dapat diverifikasi secara otomatis dan segera. Ini karena program yang dibuat dapat dieksekusi dan secara otomatis diperiksa untuk melihat apakah ia menghasilkan keluaran yang diinginkan.
Faktanya, ketika programmer manusia membuat program, mereka sering kali secara bersamaan membuat program pengujian untuk memverifikasi hasilnya, mengembangkan program utama sambil memeriksa bahwa ia berfungsi sebagaimana mestinya.
AI generatif juga dapat berkembang dengan pemrograman sambil melakukan pengujian dengan cara yang sama. Jika manusia memberikan instruksi yang tepat, AI dapat secara otomatis beriterasi dan menyelesaikan program hingga lolos semua pengujian.
Tentu saja, karena keterbatasan kemampuan pemrograman AI generatif dan ambiguitas instruksi manusia, ada banyak kasus di mana pengujian tidak dapat dilewati bahkan setelah banyak iterasi. Terlebih lagi, pengujian yang tidak memadai atau salah sering kali menyebabkan bug atau masalah pada program yang selesai.
Namun, seiring dengan peningkatan kemampuan AI generatif, dan para insinyur manusia menyempurnakan metode instruksi mereka, ditambah dengan mekanisme untuk meningkatkan pengetahuan pemrograman AI generatif melalui pencarian internet, ruang lingkup untuk secara otomatis menghasilkan program yang sesuai semakin meluas dari hari ke hari.
Selain itu, dengan fokus dunia bisnis, perusahaan-perusahaan terkemuka yang terlibat dalam penelitian dan pengembangan AI generatif juga banyak berinvestasi dalam meningkatkan kemampuan pemrograman AI generatif.
Dalam situasi ini, perluasan cakupan dan volume tugas pemrograman otomatis yang dapat dipercayakan kepada AI generatif diperkirakan akan semakin cepat.
Ada banyak contoh individu yang belum pernah mengembangkan program sebelumnya, menyiapkan lingkungan pengembangan dasar menggunakan informasi internet, kemudian mengandalkan AI generatif untuk pemrograman, menyelesaikan proyek bersama sebagai tim berdua.
Sebagai seorang programmer sendiri, saya menggunakan AI generatif untuk pemrograman. Setelah saya menguasainya, saya dapat menyelesaikan perangkat lunak tanpa sama sekali mengedit program, cukup dengan menyalin dan menempelkan kode ke dalam berkas sesuai instruksi AI generatif.
Tentu saja, ada banyak kasus di mana saya mengalami kesulitan. Ini sebagian besar disebabkan oleh perbedaan kecil antara pengaturan komputer atau alat pengembangan pemrograman saya dan konfigurasi umum, atau karena komponen perangkat lunak gratis lebih baru dari apa yang dilatih oleh AI generatif, menyebabkan kesenjangan pengetahuan, atau karena permintaan saya sedikit tidak biasa.
Dalam kasus tanpa perbedaan kecil atau keadaan khusus semacam itu, dan ketika diinstruksikan untuk membuat fungsi perangkat lunak yang sangat umum, program yang sesuai dihasilkan dalam sebagian besar situasi.
Menuju Era Liquidware
Sebagai pengembang perangkat lunak, saya dapat merilis perangkat lunak yang saya buat, dan perangkat lunak tersebut, yang dirilis oleh kami para insinyur, kemudian digunakan oleh berbagai pengguna.
Masa depan di mana pengembangan perangkat lunak ini dapat dilakukan oleh siapa saja dengan AI generatif adalah perpanjangan dari diskusi sejauh ini.
Namun, ini bukan hanya perubahan di sisi pengembangan perangkat lunak; perubahan signifikan juga akan datang ke sisi pengguna.
Tugas menginstruksikan AI generatif secara lisan untuk secara otomatis menambah atau memodifikasi fungsi dalam perangkat lunak dapat dilakukan tidak hanya selama fase pengembangan sebelum perangkat lunak dirilis, tetapi juga selama penggunaannya. Terlebih lagi, ini dapat dilakukan oleh pengguna perangkat lunak itu sendiri.
Pengembang perangkat lunak dapat menentukan ruang lingkup apa yang dapat dan tidak dapat diubah, kemudian merilis perangkat lunak dengan fitur kustomisasi bertenaga AI generatif.
Ini akan memungkinkan pengguna untuk meminta AI generatif memodifikasi ketidaknyamanan kecil atau preferensi desain layar dalam perangkat lunak.
Selain itu, pengguna dapat menambahkan fitur berguna yang ditemukan di aplikasi lain, menggabungkan beberapa operasi menjadi satu klik, atau melihat layar yang sering diakses semuanya dalam satu tampilan.
Bagi pengembang perangkat lunak, memungkinkan kustomisasi pengguna semacam ini menawarkan manfaat signifikan: ini menghilangkan upaya untuk mengimplementasikan permintaan fitur itu sendiri, dan ini dapat meningkatkan popularitas perangkat lunak dengan menghindari ulasan negatif dan ketidakpuasan atas kegunaan.
Ketika pengguna dapat dengan bebas mengubah layar dan fungsi dengan cara ini, konsep tersebut menyimpang secara signifikan dari apa yang secara tradisional kita sebut "perangkat lunak."
Akan lebih tepat untuk menyebutnya "Liquidware," menyiratkan sesuatu yang bahkan lebih cair dan adaptif daripada perangkat lunak (yang sudah lebih fleksibel daripada hardware), dan sesuatu yang sangat cocok untuk pengguna.
Fungsi-fungsi pernah diwujudkan semata-mata oleh hardware. Kemudian, perangkat lunak yang dapat dipertukarkan muncul, memungkinkan fungsi-fungsi melalui kombinasi hardware dan perangkat lunak.
Dari sana, kita dapat membayangkan munculnya Liquidware, yang berarti bagian-bagian yang dapat dimodifikasi oleh AI generatif. Akibatnya, fungsi-fungsi akan diwujudkan oleh hardware + perangkat lunak (disediakan oleh pengembang) + Liquidware (modifikasi pengguna).
Di era Liquidware ini, ide-ide modifikasi pengguna akan meledak.
Ide modifikasi inovatif yang ditemukan oleh satu pengguna mungkin menjadi topik hangat di media sosial, yang mengarah pada orang lain meniru dan memodifikasi berbagai aplikasi Liquidware.
Terlebih lagi, Liquidware yang mampu menangani berbagai aplikasi perangkat lunak secara terintegrasi juga kemungkinan akan muncul. Ini berarti pengguna dapat melihat timeline dari berbagai platform media sosial yang berbeda dalam satu aplikasi, atau hasil pencarian dapat mengintegrasikan hasil dari berbagai platform.
Dengan cara ini, di dunia di mana Liquidware tersebar luas, berbagai perangkat, termasuk PC dan smartphone, akan menyediakan fungsi-fungsi yang sangat sesuai dengan kehidupan dan aktivitas individu kita masing-masing.
Sebuah Fenomena Saat Ini
Bagi insinyur perangkat lunak seperti saya, penting untuk memahami bahwa Liquidware bukanlah konsep futuristik atau sesuatu yang baru akan terjadi beberapa tahun lagi.
Ini karena Liquidware yang sangat sederhana pun sudah dapat diwujudkan.
Sebagai contoh, misalkan saya adalah seorang insinyur yang mengembangkan aplikasi web untuk situs e-commerce perusahaan saya.
Aplikasi web semacam itu akan memiliki database, sistem manajemen penjualan, dan sistem pengiriman produk di server yang dikelola secara in-house atau dikontrak melalui layanan cloud. Ketika pengguna melakukan pembelian, sistem-sistem ini saling terhubung untuk menangani pengumpulan pembayaran dan pengiriman produk.
Sistem bisnis inti dan database seperti ini tidak dapat diubah secara sembarangan.
Namun, desain layar web situs e-commerce yang menghadap pengguna dapat dimodifikasi agar sesuai dengan pengguna individu tanpa menimbulkan masalah signifikan. Tentu saja, jika perubahan satu pengguna memengaruhi layar pengguna lain, itu akan menjadi masalah, tetapi kustomisasi spesifik pengguna individu tidak masalah.
Misalnya, berbagai modifikasi dapat dibayangkan: memperbesar teks, mengubah latar belakang menjadi warna gelap, memposisikan ulang tombol yang sering ditekan agar lebih mudah dioperasikan dengan tangan kiri, mengurutkan item berdasarkan harga di layar daftar, atau menampilkan detail dua produk secara berdampingan.
Secara teknis, modifikasi ini dapat dicapai dengan mengubah berkas konfigurasi dan program seperti HTML, CSS, dan JavaScript yang menampilkan layar di peramban.
Dari perspektif keamanan, berkas-berkas ini awalnya berjalan di peramban web. Oleh karena itu, bagian-bagian yang dapat dimodifikasi oleh insinyur yang berpengetahuan tentang aplikasi web hanya menangani fungsi dan data yang aman untuk dimodifikasi.
Dengan demikian, di sisi server aplikasi web e-commerce, sebuah mekanisme dapat dibuat untuk menyimpan berkas-berkas ini secara terpisah untuk setiap pengguna yang login, menambahkan layar untuk berkomunikasi dengan chat AI, dan kemudian memodifikasi berkas HTML, CSS, dan JavaScript pengguna tersebut di server sesuai dengan permintaan mereka.
Jika teks ini, bersama dengan informasi konfigurasi aplikasi web e-commerce yang ada dan source code (kode sumber), disajikan kepada AI generatif, kemungkinan besar ia akan memberikan langkah-langkah dan program yang diperlukan untuk menambahkan fungsionalitas semacam itu.
Dengan cara ini, Liquidware sudah menjadi topik saat ini; tidak akan mengejutkan jika itu adalah fenomena yang sedang berlangsung sekarang.
Insinyur Omnidireksional
Bahkan dengan cakupan pemrograman otomatis yang didorong AI yang terus berkembang dan munculnya era Liquidware, pengembangan perangkat lunak masih belum dapat dilakukan semata-mata oleh AI generatif.
Namun, dapat dipastikan bahwa penekanan pada pemrograman dalam pengembangan perangkat lunak akan berkurang secara signifikan.
Lebih lanjut, untuk mengembangkan perangkat lunak dengan lancar, diperlukan berbagai pengetahuan dan keterampilan rekayasa yang luas, mulai dari pemrograman umum hingga infrastruktur cloud, jaringan, keamanan, platform, kerangka kerja pengembangan, dan database—semua tingkatan stack sistem agar seluruh sistem dapat berfungsi.
Personel dengan pengetahuan dan keterampilan seperti itu disebut insinyur full-stack.
Secara tradisional, beberapa insinyur full-stack akan menangani desain keseluruhan, sementara insinyur sisanya akan mengkhususkan diri dalam pemrograman, atau berfokus pada area non-pemrograman tertentu dalam stack sistem, sehingga membagi peran.
Namun, seiring AI generatif mengambil alih aspek pemrograman, biaya pengembangan perangkat lunak akan berkurang secara signifikan, yang mengarah pada perencanaan berbagai proyek pengembangan perangkat lunak baru.
Akibatnya, dalam setiap proyek pengembangan, insinyur yang hanya bisa menulis program akan sebagian besar tidak diperlukan; sebaliknya, sejumlah besar insinyur full-stack akan diminati.
Terlebih lagi, dalam skenario ini, hanya memiliki pengetahuan dan keterampilan full-stack tidak akan cukup. Ini karena jenis perangkat lunak yang dibutuhkan dalam berbagai proyek pengembangan akan beragam, yang berarti pengembangan tidak akan selalu diminta menggunakan stack sistem yang sama. Selain itu, tuntutan untuk sistem kompleks yang memerlukan beberapa stack sistem pasti akan meningkat.
Sebagai contoh, stack sistem untuk aplikasi web berbeda dengan stack sistem untuk bisnis atau sistem inti. Oleh karena itu, insinyur aplikasi web full-stack tidak dapat dipercayakan dengan proyek pengembangan sistem inti.
Demikian pula, aplikasi web, aplikasi smartphone, dan aplikasi PC masing-masing memiliki stack sistem yang berbeda. Dalam dunia perangkat lunak tertanam, seperti IoT, stack sistem akan sangat bervariasi untuk setiap perangkat tertanam.
Namun, seiring dengan berkurangnya penekanan pada pemrograman dan turunnya biaya pengembangan perangkat lunak secara keseluruhan, pengembangan sistem kompleks yang menggabungkan perangkat lunak dengan stack sistem yang berbeda ini kemungkinan akan meningkat.
Meskipun pengembangan semacam itu akan membutuhkan pengumpulan beberapa insinyur full-stack yang berbeda, insinyur yang dapat mengawasi seluruh sistem dan menangani desain dasar akan memainkan peran krusial.
Ini berarti akan ada permintaan untuk insinyur dengan pengetahuan dan keterampilan omnidirectional di berbagai stack sistem, melampaui batas-batas stack sistem individu.
Insinyur semacam itu kemungkinan besar akan disebut insinyur omnidirectional.
Dan sama seperti permintaan untuk insinyur yang hanya bisa memprogram akan berkurang karena AI generatif, suatu era akan datang ketika permintaan untuk insinyur full-stack yang terbatas pada satu stack sistem juga akan berkurang.
Jika Anda ingin tetap aktif sebagai insinyur IT di era itu, Anda harus segera memulai perjalanan untuk menjadi insinyur omnidirectional.
Peran Insinyur Omnidireksional
Bahasa pemrograman, platform, dan framework yang akan dikembangkan sangat beragam.
Namun, seorang insinyur omnidirectional tidak perlu menguasai semuanya, karena mereka juga dapat menerima bantuan dari AI generatif.
Jika Anda menyerahkannya kepada AI generatif, bahkan bahasa pemrograman, platform, atau framework yang belum pernah Anda gunakan sebelumnya dapat dihasilkan hanya dengan memberikan instruksi verbal.
Tentu saja, ada risiko memperkenalkan bug atau kerentanan keamanan, atau menumpuk technical debt yang dapat menyulitkan modifikasi di masa mendatang.
Untuk mengidentifikasi dan mengurangi risiko ini, diperlukan pengetahuan tentang bahasa atau library (pustaka) tertentu. Namun, pengetahuan ini juga dapat diperoleh dari AI generatif. Seorang insinyur omnidirectional hanya perlu mampu membangun prosedur dan mekanisme yang kuat untuk mendeteksi dan mencegah masalah ini, atau untuk menanganinya pasca-kejadian.
Prosedur dan mekanisme ini tidak secara drastis berubah dengan stack sistem yang berbeda. Jika prosedur dan mekanisme untuk mencegah bug dan kerentanan keamanan serta memastikan ekstensibilitas di masa mendatang diformalkan, maka sisanya dapat diserahkan kepada AI generatif atau insinyur yang berspesialisasi dalam area tersebut.
Insinyur omnidirectional tidak perlu memiliki pengetahuan mendetail atau pengalaman jangka panjang dengan setiap stack sistem individu.
Salah satu peran utama seorang insinyur omnidirectional adalah merancang bagaimana fungsi didistribusikan dan bagaimana beberapa sistem perangkat lunak kompleks, yang beroperasi secara kolaboratif di berbagai stack sistem, berinteraksi.
Selain itu, mempertimbangkan bagaimana mengembangkan dan mengelola seluruh perangkat lunak juga merupakan peran krusial bagi seorang insinyur omnidirectional.
Perangkat Lunak Omnidireksional
Mari kita pertimbangkan jenis pengembangan perangkat lunak seperti apa yang membutuhkan seorang insinyur omnidirectional.
Sebelumnya, saya memberikan contoh pengembangan aplikasi web e-commerce.
Di bawah arahan seorang eksekutif yang ditugaskan oleh manajemen puncak untuk menyegarkan aplikasi web e-commerce ini, tim perencanaan mungkin akan mengajukan persyaratan-persyaratan berikut:
Integrasi Platform Komunitas Pengguna: Ini berarti menyediakan platform tidak hanya untuk aplikasi atau situs e-commerce yang khusus, tetapi juga tempat pengguna dapat berinteraksi tentang produk itu sendiri dan cara menggunakannya. Tujuannya adalah retensi pengguna, efek word-of-mouth, pengayaan konten melalui kontribusi pengguna, dan integrasi umpan balik (baik positif maupun negatif) ke dalam pengembangan produk, perencanaan produk baru, dan pemasaran.
Kompatibilitas Omni-device: Ini membuat komunitas pengguna dan informasi produk dapat diakses dari berbagai perangkat, termasuk tidak hanya aplikasi web, tetapi juga aplikasi smartphone, asisten suara, perangkat wearable, dan peralatan rumah tangga pintar.
Kompatibilitas Omni-platform: Ini mencakup tidak hanya platform komunitas pengguna perusahaan itu sendiri, tetapi juga, misalnya, daftar produk dan berbagi ulasan di situs e-commerce komprehensif, integrasi dengan media sosial, dan link fungsional dan informasi dengan berbagai alat AI.
Penyegaran sistem bisnis: Sambil sementara menghubungkan dengan sistem manajemen penjualan dan pengiriman produk yang ada, ini juga melibatkan penyegaran sistem-sistem ini. Pasca-penyegaran, rencana tersebut mencakup agregasi data penjualan real-time dan perkiraan permintaan, serta integrasi dengan sistem manajemen inventaris. Selanjutnya, link dengan sistem inventaris yang didistribusikan secara regional yang disediakan oleh perusahaan pengiriman dan layanan pengiriman di sisi carrier akan dilakukan secara bertahap, yang mengharuskan sistem informasi untuk secara bertahap menyesuaikan integrasinya.
Kompatibilitas Liquidware: Semua antarmuka yang menghadap pengguna, tentu saja, akan kompatibel dengan Liquidware. Selain itu, antarmuka pengguna internal untuk pengembangan dan perencanaan produk (seperti agregasi informasi dan umpan balik), departemen operasi sistem, dan laporan untuk manajemen juga akan semuanya dikonversi ke Liquidware.
Jika rencana pengembangan untuk perangkat lunak kompleks semacam itu diajukan, tim pengembangan perangkat lunak tradisional kemungkinan besar tidak akan segera menerimanya. Alternatifnya, melalui diskusi tentang spesifikasi sistem, mereka akan secara logis menunjukkan kebutuhan akan biaya dan waktu pengembangan yang sangat besar, mendorong pemotongan signifikan pada spesifikasi.
Namun, bagaimana jika AI generatif dapat mengotomatisasi sebagian besar pemrograman, dan lebih dari separuh stack sistem yang diusulkan sudah berpengalaman oleh seseorang di tim? Dan bagaimana jika tim memiliki rekam jejak berhasil meluncurkan stack sistem, platform, dan framework baru dari awal dengan bantuan AI generatif? Dan bagaimana jika Anda, sebagai insinyur omnidirectional, sudah memulai jalur ini dan berniat untuk melanjutkannya?
Dari perspektif itu, itu akan terlihat seperti proyek yang sangat menarik. Anda akan dapat bekerja dengan tim perencanaan yang membawa proposal ambisius dari manajemen puncak, dan tim pengembangan dengan potensi untuk tumbuh menjadi tim pengembangan perangkat lunak omnidirectional.
Ada juga jaminan sistem yang ada. Ini juga merupakan proyek yang dapat dikembangkan secara bertahap melalui proses pengembangan agile, dimulai dengan fitur-fitur yang cepat menang, berdampak tinggi, dan mengumpulkan umpan balik dari pengguna early adopter.
Mempertimbangkan semua ini, pengembangan perangkat lunak omnidirectional ini seharusnya terlihat seperti proyek yang sangat menarik.
Kesimpulan
Dengan pemrograman otomatis yang didorong oleh AI generatif, Liquidware dan pengembangan perangkat lunak omnidirectional sudah menjadi kenyataan saat ini.
Dalam konteks ini, insinyur IT semakin perlu melampaui full-stack dan bertujuan untuk menjadi insinyur omnidirectional.
Selain itu, cakupan mereka akan meluas lebih jauh lagi, bergerak melampaui ranah sistem IT untuk mencakup rekayasa bisnis omnidirectional—merekayasa aktivitas organisasi itu sendiri, dengan menghubungkan pelanggan, karyawan internal, dan AI—serta rekayasa komunitas omnidirectional.
Dan bahkan lebih jauh lagi, saya memperkirakan munculnya bidang yang disebut rekayasa sosial omnidirectional, yang bertujuan untuk meningkatkan masyarakat secara komprehensif.