Sudah diketahui bahwa AI generatif dapat membuat gambar, menghasilkan gambar, ilustrasi, dan lukisan fotorealistik hanya dengan mengikuti instruksi.
Sementara itu, di dunia bisnis, perhatian difokuskan pada kemampuan AI generatif untuk menghasilkan program.
AI berbasis obrolan diwujudkan melalui model bahasa besar fundamental, sehingga sangat mahir dalam bercakap-cakap dalam berbagai bahasa dan menerjemahkan di antaranya.
Bahasa pemrograman, yang digunakan untuk membuat program, juga merupakan jenis bahasa. Pemrogram manusia, dalam arti tertentu, menerjemahkan persyaratan perangkat lunak yang diterima secara verbal ke dalam bahasa pemrograman.
Karena alasan ini, AI generatif percakapan yang menggunakan model bahasa besar juga sangat terampil dalam pemrograman.
Selain itu, pemrograman adalah jenis pekerjaan intelektual di mana kebenaran output seringkali dapat diverifikasi secara otomatis dan instan. Hal ini karena menjalankan program yang dibuat memungkinkan penentuan otomatis apakah hasil yang diinginkan telah dihasilkan.
Faktanya, pemrogram manusia seringkali membuat program uji bersamaan dengan program utama untuk memverifikasi bahwa program utama berfungsi sebagaimana mestinya, memeriksa perilakunya seiring kemajuan pengembangan.
AI generatif juga dapat memajukan pemrograman sambil menguji, memungkinkan mekanisme di mana, jika manusia memberikan instruksi yang tepat, AI dapat secara otomatis mengulang dan menyelesaikan program hingga lulus uji.
Tentu saja, karena keterbatasan kemampuan pemrograman AI generatif dan ambiguitas instruksi manusia, ada banyak kasus di mana uji tidak dapat dilewati bahkan setelah beberapa kali iterasi. Juga, uji mungkin tidak cukup atau salah, seringkali menyebabkan bug atau masalah pada program yang selesai.
Namun, seiring kemampuan AI generatif meningkat, insinyur manusia menyempurnakan metode instruksi mereka, dan pengetahuan pemrograman AI generatif ditingkatkan melalui pencarian internet, ruang lingkup untuk secara otomatis menghasilkan program yang sesuai meningkat dari hari ke hari.
Selain itu, dengan perhatian dunia bisnis, perusahaan-perusahaan terkemuka yang melakukan penelitian dan pengembangan AI generatif juga berfokus pada peningkatan kemampuan pemrograman AI generatif.
Dalam keadaan seperti itu, perluasan area dan volume di mana pemrograman otomatis dapat dipercayakan kepada AI generatif diperkirakan akan dipercepat.
Ada banyak kasus di mana individu yang belum pernah mengembangkan program sebelumnya telah menyiapkan lingkungan pengembangan dasar berdasarkan informasi internet, kemudian membiarkan AI generatif menangani pemrograman, menyelesaikan program dalam upaya kolaboratif.
Saya sendiri, sebagai seorang pemrogram, menggunakan AI generatif untuk pemrograman. Setelah saya menguasainya, saya dapat menyelesaikan perangkat lunak tanpa mengedit program sama sekali, cukup dengan menyalin program ke dalam file atau memotong dan menempel sesuai dengan instruksi AI generatif.
Tentu saja, ada banyak kasus di mana saya menghadapi kesulitan. Ini sebagian besar disebabkan oleh pengaturan komputer atau alat pengembangan pemrograman saya yang sedikit berbeda dari konfigurasi tipikal, atau komponen perangkat lunak gratis yang lebih baru dari apa yang dipelajari AI generatif, yang menyebabkan kesenjangan pengetahuan, atau kadang-kadang konten yang saya minta sedikit tidak biasa.
Dalam kebanyakan kasus, jika tidak ada perbedaan kecil atau keadaan khusus seperti itu, dan saya menginstruksikannya untuk membuat fitur perangkat lunak yang sangat umum, program yang sesuai akan dihasilkan.
Menuju Era Liquidware
Sebagai pengembang perangkat lunak, saya dapat merilis perangkat lunak yang saya kembangkan. Dan perangkat lunak yang kami rilis sebagai insinyur digunakan oleh berbagai pengguna.
Masa depan di mana siapa pun dapat melakukan pengembangan perangkat lunak ini dengan AI generatif adalah perpanjangan dari diskusi sejauh ini.
Namun, ini bukan hanya perubahan di sisi pengembangan perangkat lunak. Perubahan signifikan juga akan terjadi di sisi pengguna.
Menginstruksikan AI generatif secara verbal untuk secara otomatis menambahkan atau mengubah fitur pada perangkat lunak dapat dilakukan tidak hanya selama fase pengembangan sebelum rilis perangkat lunak tetapi juga saat sedang digunakan. Terlebih lagi, ini dapat dilakukan oleh pengguna perangkat lunak itu sendiri.
Pengembang perangkat lunak hanya perlu menentukan rentang yang diizinkan dan tidak dapat diubah serta merilis perangkat lunak dengan fitur kustomisasi bertenaga AI generatif.
Ini akan memungkinkan pengguna untuk meminta AI generatif mengubah masalah kegunaan kecil atau preferensi desain layar.
Selanjutnya, akan dimungkinkan untuk menambahkan fitur-fitur praktis yang ditemukan di aplikasi lain, melakukan kombinasi beberapa operasi dengan satu klik, atau melihat layar yang sering diakses dalam satu tampilan.
Dari perspektif pengembang perangkat lunak, mengaktifkan kustomisasi pengguna semacam itu menawarkan keuntungan signifikan. Ini menghilangkan kebutuhan bagi mereka untuk menambahkan fitur berdasarkan permintaan pengguna, dan mengingat bahwa hal itu dapat meningkatkan popularitas perangkat lunak dengan menghindari umpan balik negatif dan ketidakpuasan mengenai kegunaan, ini adalah kemenangan besar.
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 tepat untuk menyebutnya "liquidware" untuk menandakan bahwa ia bahkan lebih cair dan mudah beradaptasi daripada perangkat lunak (yang fleksibel dibandingkan dengan perangkat keras), dan bahwa ia sangat sesuai dengan pengguna.
Dulu, fungsi direalisasikan semata-mata oleh perangkat keras, tetapi kemudian muncul perangkat lunak yang dapat diganti, memungkinkan fungsi direalisasikan oleh kombinasi perangkat keras + perangkat lunak.
Dari sana, kita dapat membayangkan munculnya liquidware, yang mengacu pada bagian-bagian yang dapat dimodifikasi oleh AI generatif. Dengan demikian, fungsi keseluruhan akan direalisasikan oleh perangkat keras + perangkat lunak (disediakan oleh pengembang) + liquidware (modifikasi pengguna).
Di era liquidware ini, ide-ide modifikasi sisi pengguna akan meledak.
Ide modifikasi inovatif yang ditemukan oleh satu pengguna mungkin menjadi topik hangat di media sosial, menyebabkan orang lain meniru dan memodifikasi berbagai liquidware.
Juga, liquidware yang dapat mengintegrasikan dan menangani berbagai jenis perangkat lunak pasti akan muncul. Ini akan memungkinkan pengguna untuk melihat timeline dari berbagai platform SNS dalam satu aplikasi, atau mengintegrasikan hasil pencarian dari berbagai platform.
Dengan cara ini, di dunia di mana liquidware lazim, berbagai perangkat, termasuk PC dan ponsel cerdas, akan menyediakan fungsi yang sangat sesuai dengan kehidupan dan aktivitas setiap individu.
Fenomena Saat Ini
Yang penting bagi insinyur perangkat lunak seperti saya adalah bahwa liquidware bukanlah konsep futuristik atau sesuatu yang baru akan terjadi beberapa tahun lagi.
Ini karena liquidware yang sangat sederhana sudah dapat dicapai.
Misalnya, katakanlah saya seorang insinyur yang mengembangkan aplikasi web untuk situs e-commerce perusahaan saya.
Aplikasi web semacam itu biasanya memiliki basis data, sistem manajemen penjualan, dan sistem pengiriman produk di server yang dikelola oleh perusahaan atau layanan cloud yang dikontrak. Ketika pengguna melakukan pembelian, sistem-sistem ini saling terhubung untuk mengumpulkan pembayaran dan mengirimkan produk.
Sistem inti dan basis data untuk operasi ini tidak dapat diubah secara sembarangan.
Namun, jika desain situs web e-commerce yang dilihat pengguna dimodifikasi untuk kenyamanan setiap pengguna, biasanya tidak menimbulkan banyak masalah. Tentu saja, jika perubahan satu pengguna memengaruhi layar pengguna lain, itu masalah, tetapi kustomisasi khusus pengguna individu tidak masalah.
Berbagai modifikasi dapat dibayangkan: membuat teks lebih besar, mengubah latar belakang menjadi warna gelap, memindahkan tombol yang sering ditekan ke posisi yang mudah diakses 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 file konfigurasi dan program seperti HTML, CSS, dan JavaScript yang menampilkan layar di peramban.
Dalam hal keamanan, file-file ini awalnya berjalan di peramban web, sehingga dapat dimodifikasi oleh insinyur yang akrab dengan aplikasi web. Oleh karena itu, mereka hanya menangani fungsi dan data yang aman untuk dimodifikasi.
Dengan demikian, di sisi server aplikasi web e-commerce, seseorang dapat menyimpan file-file ini secara terpisah untuk setiap pengguna yang masuk, menambahkan layar untuk percakapan dengan AI chat, dan membuat mekanisme untuk memodifikasi file HTML, CSS, dan JavaScript pengguna tersebut di server sesuai dengan permintaan mereka.
Jika Anda memberikan teks ini, bersama dengan informasi konfigurasi dan kode sumber aplikasi web e-commerce yang ada, 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 terkini; tidak akan mengejutkan jika itu menjadi fenomena yang sedang berlangsung.
Insinyur Omnidireksional
Meskipun cakupan pemrograman otomatis yang didukung AI meluas dan era liquidware telah dimulai, pengembangan perangkat lunak belum dapat sepenuhnya dilakukan hanya oleh AI generatif.
Namun, yang pasti adalah bahwa bobot pemrograman dalam pengembangan perangkat lunak akan berkurang secara signifikan.
Selain itu, untuk mengembangkan perangkat lunak dengan lancar, dibutuhkan berbagai pengetahuan dan keterampilan rekayasa, tidak hanya pemrograman umum, tetapi juga infrastruktur cloud, jaringan, keamanan, platform, kerangka kerja pengembangan, dan basis data—mencakup seluruh sistem dari atas ke bawah.
Personel dengan pengetahuan dan keterampilan tersebut disebut insinyur full-stack.
Sampai sekarang, beberapa insinyur full-stack menangani desain keseluruhan, sementara insinyur lainnya berfokus sepenuhnya pada pemrograman atau berspesialisasi dalam area non-pemrograman tertentu dalam stack sistem, berbagi peran dengan cara ini.
Namun, seiring AI generatif mengambil alih bagian pemrograman, biaya pengembangan perangkat lunak akan berkurang secara signifikan, yang mengarah pada perencanaan berbagai pengembangan perangkat lunak baru.
Akibatnya, setiap proyek pengembangan akan membutuhkan sangat sedikit insinyur yang hanya bisa menulis kode; sebaliknya, sejumlah besar insinyur full-stack akan dibutuhkan.
Selanjutnya, dalam situasi ini, hanya memiliki pengetahuan dan keterampilan full-stack tidak akan cukup. Hal ini karena berbagai proyek pengembangan perangkat lunak akan menuntut jenis perangkat lunak yang beragam, yang berarti bahwa pengembangan tidak akan selalu diminta dalam stack sistem yang sama. Juga, permintaan untuk sistem komposit yang membutuhkan banyak stack sistem pasti akan meningkat.
Misalnya, stack sistem untuk aplikasi web berbeda dengan stack untuk sistem bisnis atau inti. Oleh karena itu, insinyur aplikasi web full-stack tidak dapat dipercayakan dengan proyek pengembangan sistem inti.
Terlebih lagi, aplikasi web, aplikasi ponsel cerdas, dan aplikasi PC memiliki stack sistem yang berbeda. Dalam dunia perangkat lunak embedded, seperti IoT, stack sistem sepenuhnya berubah tergantung pada perangkat yang diintegrasikannya.
Namun, jika penekanan pada pemrograman berkurang dan biaya keseluruhan pengembangan perangkat lunak menurun, pengembangan sistem komposit yang menggabungkan perangkat lunak dengan stack sistem yang berbeda harus meningkat.
Meskipun ini akan membutuhkan perakitan beberapa insinyur full-stack terpisah untuk pengembangan, insinyur yang dapat mengawasi keseluruhan gambaran dan melakukan desain dasar akan memegang posisi krusial.
Ini berarti bahwa insinyur dengan pengetahuan dan keterampilan omnidireksional di berbagai stack sistem, melampaui batas-batas stack sistem individu, akan diminati.
Insinyur semacam itu kemungkinan akan disebut insinyur omnidireksional.
Dan sama seperti permintaan untuk insinyur yang hanya bisa memprogram akan berkurang karena AI generatif, era akhirnya akan datang ketika permintaan untuk insinyur full-stack yang terbatas pada satu stack sistem juga berkurang.
Jika Anda ingin tetap aktif sebagai insinyur IT di era itu, Anda harus mulai berusaha menjadi insinyur omnidireksional sekarang juga.
Peran Insinyur Omnidireksional
Bahasa pemrograman, platform, dan framework yang akan dikembangkan sangat beragam.
Namun, ini bukan berarti seseorang harus mempelajari semuanya. Ini karena insinyur omnidireksional juga dapat menerima bantuan dari AI generatif.
Jika dipercayakan kepada AI generatif, bahkan bahasa pemrograman, platform, atau framework yang belum pernah digunakan secara pribadi pun dapat dihasilkan hanya dengan memberikan instruksi secara verbal.
Tentu saja, ada risiko memperkenalkan bug atau celah keamanan, atau menumpuk hutang teknis yang dapat menyulitkan modifikasi di masa mendatang.
Untuk mengidentifikasi dan mengurangi risiko-risiko ini, diperlukan pengetahuan tentang bahasa atau library tertentu. Namun, pengetahuan tersebut juga dapat diperoleh dari AI generatif. Insinyur omnidireksional hanya perlu mampu membangun prosedur dan mekanisme secara menyeluruh untuk mendeteksi dan mencegah masalah-masalah ini, atau untuk menanganinya post-factum.
Prosedur dan mekanisme ini tidak banyak berubah dengan perbedaan dalam stack sistem. Jika seseorang dapat memformalkan prosedur dan mekanisme untuk menekan masuknya bug dan celah keamanan, serta untuk memastikan ekstensibilitas di masa mendatang selama pengembangan, maka sisanya dapat dipercayakan kepada AI generatif atau insinyur yang terampil di area-area tertentu tersebut.
Insinyur omnidireksional tidak perlu memiliki pengetahuan mendetail atau pengalaman jangka panjang dengan setiap stack sistem individu.
Selain itu, salah satu peran utama seorang insinyur omnidireksional adalah merancang bagaimana fungsi didistribusikan dan bagaimana mereka berinteroperasi dalam perangkat lunak kompleks yang beroperasi secara kolaboratif di berbagai stack sistem yang berbeda.
Di samping itu, mempertimbangkan bagaimana seluruh perangkat lunak harus dikembangkan dan dikelola juga menjadi peran penting bagi insinyur omnidireksional.
Perangkat Lunak Omnidireksional
Mari kita pertimbangkan jenis pengembangan perangkat lunak seperti apa yang membutuhkan insinyur omnidireksional.
Sebelumnya, saya memberikan contoh pengembangan aplikasi web e-commerce.
Di bawah arahan seorang eksekutif yang bertanggung jawab yang telah diperintahkan oleh manajemen puncak perusahaan untuk merombak aplikasi web e-commerce ini, tim perencanaan mungkin akan mengajukan persyaratan berikut:
Konversi Platform Komunitas Pengguna. Ini berarti tidak hanya aplikasi atau situs khusus e-commerce, tetapi menyediakan platform di mana pengguna produk dapat berinteraksi satu sama lain tentang produk itu sendiri dan penggunaannya. Tujuannya adalah retensi pengguna, efek word-of-mouth, pengayaan konten melalui kontribusi pengguna, dan integrasi umpan balik pengembangan produk (baik positif maupun negatif) dengan perencanaan produk baru dan pemasaran.
Kompatibilitas Omni-perangkat. Ini memungkinkan akses ke komunitas pengguna dan informasi produk tidak hanya dari aplikasi web tetapi juga aplikasi ponsel cerdas, asisten suara, perangkat wearable, peralatan rumah pintar, dan semua perangkat lainnya.
Kompatibilitas Omni-platform. Ini mencakup tidak hanya platform komunitas pengguna perusahaan sendiri tetapi juga, misalnya, daftar produk dan berbagi ulasan di situs e-commerce umum, integrasi dengan media sosial, serta keterkaitan fungsional dan informasi dengan berbagai alat AI.
Penyegaran Sistem Bisnis. Sambil sementara menghubungkan dengan sistem manajemen penjualan dan pengiriman produk yang ada, sistem-sistem ini juga akan disegarkan. Setelah penyegaran, agregasi data penjualan real-time, perkiraan permintaan, dan integrasi dengan sistem manajemen inventaris dipertimbangkan. Selanjutnya, seiring dengan kemajuan integrasi bertahap dengan sistem inventaris terdistribusi regional dan layanan pengiriman produk yang disediakan oleh perusahaan pengiriman, sistem informasi juga harus secara bertahap terintegrasi.
Kompatibilitas Liquidware. Tentu saja, semua antarmuka pengguna akan kompatibel dengan liquidware. Selain itu, semua antarmuka pengguna internal, seperti untuk agregasi informasi dan umpan balik untuk pengembangan dan perencanaan produk, departemen operasi sistem, dan laporan manajemen, juga akan dikonversi menjadi liquidware.
Jika rencana pengembangan untuk perangkat lunak kompleks semacam itu disajikan, tim pengembangan perangkat lunak tradisional kemungkinan tidak akan langsung menerimanya. Atau, selama proses penyempurnaan spesifikasi sistem, mereka akan secara logis menunjukkan kebutuhan akan biaya dan waktu pengembangan yang sangat besar, dan mendorong pengurangan spesifikasi yang signifikan.
Namun, bagaimana jika AI generatif dapat mengotomatiskan sebagian besar pemrograman, dan lebih dari separuh stack sistem yang disajikan sudah dikenal oleh seseorang di tim, dan tim memiliki pengalaman sebelumnya berhasil memperkenalkan stack sistem, platform, dan framework baru dari awal dengan bantuan AI generatif? Dan bagaimana jika Anda, sebagai insinyur omnidireksional, telah memulai jalur ini dan berniat untuk melanjutkannya?
Dari perspektif itu, itu seharusnya tampak sebagai proyek yang sangat menarik. Anda akan bekerja dengan tim perencanaan yang mengajukan proposal ambisius di bawah arahan kepemimpinan perencanaan, dan tim pengembangan dengan potensi untuk tumbuh menjadi tim pengembangan perangkat lunak omnidireksional.
Ada juga jaminan sistem yang ada. Ini juga merupakan proyek yang memungkinkan proses pengembangan agile, di mana fitur-fitur berdampak tinggi dapat dibangun dengan cepat, dan sistem dapat berkembang secara bertahap dengan umpan balik dari pengguna early adopter.
Mengingat hal ini, pengembangan perangkat lunak omnidireksional ini seharusnya tampak sebagai proyek yang menarik.
Penutup
Berkat pemrograman otomatis oleh AI generatif, pengembangan liquidware dan perangkat lunak omnidireksional sudah menjadi kenyataan saat ini.
Dalam situasi seperti itu, insinyur IT semakin perlu melampaui full-stack dan bertujuan untuk menjadi insinyur omnidireksional.
Selain itu, di luar itu, cakupan mereka akan meluas ke rekayasa bisnis omnidireksional, yang secara komprehensif merekayasa aktivitas organisasi dengan menghubungkan pelanggan, karyawan internal, dan AI di luar cakupan sistem IT, serta rekayasa komunitas omnidireksional.
Dan bahkan lebih jauh dari itu, saya percaya bidang yang disebut rekayasa sosial omnidireksional akan muncul, yang bertujuan untuk secara komprehensif meningkatkan masyarakat.