Masa depan pengembangan perangkat lunak: Masa depan komputer P2

KREDIT GAMBAR: lari kuantum

Masa depan pengembangan perangkat lunak: Masa depan komputer P2

    Pada tahun 1969, Neil Armstrong dan Buzz Aldrin menjadi pahlawan internasional setelah menjadi manusia pertama yang menginjakkan kaki di Bulan. Tetapi sementara para astronot ini adalah pahlawan di depan kamera, ada ribuan pahlawan tanpa tanda jasa yang tanpa keterlibatan mereka, pendaratan berawak pertama di Bulan bukanlah hal yang mustahil. Beberapa dari pahlawan ini adalah pengembang perangkat lunak yang mengkodekan penerbangan. Mengapa?

    Nah, komputer yang ada pada saat itu jauh lebih sederhana daripada yang ada sekarang. Faktanya, smartphone usang rata-rata orang beberapa kali lipat lebih kuat daripada apa pun yang ada di pesawat ruang angkasa Apollo 11 (dan semua NASA tahun 1960-an dalam hal ini). Selain itu, komputer pada waktu itu dikodekan oleh pengembang perangkat lunak khusus yang memprogram perangkat lunak dalam bahasa mesin yang paling dasar: Kode Perakitan AGC atau sederhananya, 1s dan 0s.

    Untuk konteksnya, salah satu pahlawan tanpa tanda jasa ini, Direktur Divisi Rekayasa Perangkat Lunak program luar angkasa Apollo, Margaret Hamilton, dan timnya harus menulis segunung kode (digambarkan di bawah) yang menggunakan bahasa pemrograman saat ini dapat ditulis dengan sedikit usaha.

    (Gambar di atas adalah Margaret Hamilton berdiri di samping setumpuk kertas yang berisi perangkat lunak Apollo 11.)

    Dan tidak seperti saat ini di mana pengembang perangkat lunak membuat kode sekitar 80-90 persen dari kemungkinan skenario, untuk misi Apollo, kode mereka harus memperhitungkan semuanya. Untuk menempatkan ini dalam perspektif, Margaret sendiri berkata:

    "Karena kesalahan dalam manual daftar periksa, sakelar radar pertemuan ditempatkan di posisi yang salah. Ini menyebabkannya mengirim sinyal yang salah ke komputer. Hasilnya adalah komputer diminta untuk melakukan semua fungsi normalnya untuk mendarat saat menerima beban ekstra data palsu yang menghabiskan 15% waktunya. Komputer (atau lebih tepatnya perangkat lunak di dalamnya) cukup pintar untuk mengenali bahwa ia diminta untuk melakukan lebih banyak tugas daripada yang seharusnya dilakukan. Kemudian dikirim mengeluarkan alarm, yang berarti bagi astronot, saya kelebihan beban dengan lebih banyak tugas daripada yang seharusnya saya lakukan saat ini, dan saya hanya akan menyimpan tugas yang lebih penting; yaitu, yang dibutuhkan untuk mendarat ... Sebenarnya , komputer diprogram untuk melakukan lebih dari sekadar mengenali kondisi kesalahan. Satu set lengkap program pemulihan dimasukkan ke dalam perangkat lunak. Tindakan perangkat lunak, dalam hal ini, adalah menghilangkan tugas dengan prioritas lebih rendah dan membangun kembali tugas yang lebih penting ... Jika komputer tidakmengenali masalah ini dan mengambil tindakan pemulihan, saya ragu apakah Apollo 11 akan menjadi pendaratan di bulan yang sukses."

    — Margaret Hamilton, Direktur Pemrograman Komputer Penerbangan Apollo MIT Draper Laboratory, Cambridge, Massachusetts, "Computer Got Loaded", Surat kepada Datamasi, 1 Maret, 1971

    Seperti yang telah disinggung sebelumnya, pengembangan perangkat lunak telah berevolusi sejak hari-hari awal Apollo. Bahasa pemrograman tingkat tinggi yang baru menggantikan proses pengkodean yang membosankan dengan 1 dan 0 menjadi pengkodean dengan kata-kata dan simbol. Fungsi seperti menghasilkan angka acak yang dulunya memerlukan pengkodean berhari-hari kini digantikan dengan menulis satu baris perintah.

    Dengan kata lain, pengkodean perangkat lunak menjadi semakin otomatis, intuitif, dan manusiawi setiap dekade. Kualitas ini hanya akan berlanjut ke masa depan, memandu evolusi pengembangan perangkat lunak dengan cara yang akan berdampak besar pada kehidupan kita sehari-hari. Inilah yang bab ini dari Masa Depan Komputer seri akan mengeksplorasi.

    Pengembangan perangkat lunak untuk massa

    Proses penggantian kebutuhan kode 1s dan 0s (bahasa mesin) dengan kata dan simbol (bahasa manusia) disebut sebagai proses penambahan lapisan abstraksi. Abstraksi ini telah datang dalam bentuk bahasa pemrograman baru yang mengotomatisasi fungsi kompleks atau umum untuk bidang yang mereka rancang. Namun selama awal 2000-an, perusahaan baru muncul (seperti Caspio, QuickBase, dan Mendi) yang mulai menawarkan apa yang disebut platform tanpa kode atau kode rendah.

    Ini adalah dasbor online yang mudah digunakan yang memungkinkan profesional non-teknis untuk membuat aplikasi khusus yang disesuaikan dengan kebutuhan bisnis mereka dengan cara menggabungkan blok kode visual (simbol/grafik). Dengan kata lain, alih-alih menebang pohon dan membuatnya menjadi lemari rias, Anda membangunnya menggunakan suku cadang yang dibuat sebelumnya dari Ikea.

    Meskipun menggunakan layanan ini masih memerlukan tingkat kecerdasan komputer tertentu, Anda tidak perlu lagi memiliki gelar ilmu komputer untuk menggunakannya. Akibatnya, bentuk abstraksi ini memungkinkan munculnya jutaan "pengembang perangkat lunak" baru di dunia korporat, dan memungkinkan banyak anak belajar cara membuat kode sejak usia dini.

    Mendefinisikan ulang apa artinya menjadi pengembang perangkat lunak

    Ada masanya pemandangan atau wajah seseorang hanya bisa diabadikan di atas kanvas. Seorang pelukis harus belajar dan berlatih selama bertahun-tahun sebagai murid magang, mempelajari seni lukis—bagaimana memadukan warna, alat apa yang terbaik, teknik yang benar untuk mengeksekusi visual tertentu. Biaya perdagangan dan pengalaman bertahun-tahun yang diperlukan untuk melakukannya dengan baik juga berarti bahwa pelukis sedikit dan jarang.

    Kemudian kamera ditemukan. Dan dengan mengklik tombol, lanskap dan potret ditangkap dalam hitungan detik yang jika tidak membutuhkan waktu berhari-hari hingga berminggu-minggu untuk dilukis. Dan saat kamera meningkat, menjadi lebih murah, dan menjadi berlimpah hingga ke titik di mana mereka sekarang disertakan bahkan di smartphone paling dasar sekalipun, memotret dunia di sekitar kita menjadi aktivitas umum dan kasual yang sekarang dilakukan semua orang.

    Seiring kemajuan abstraksi dan bahasa perangkat lunak baru mengotomatiskan pekerjaan pengembangan perangkat lunak yang semakin rutin, apa artinya menjadi pengembang perangkat lunak dalam waktu 10 hingga 20 tahun? Untuk menjawab pertanyaan ini, mari kita telusuri bagaimana pengembang perangkat lunak masa depan kemungkinan akan membangun aplikasi masa depan:

    *Pertama, semua pekerjaan pengkodean berulang yang terstandarisasi akan hilang. Sebagai gantinya akan ada perpustakaan besar perilaku komponen yang telah ditentukan sebelumnya, UI, dan manipulasi aliran data (bagian Ikea).

    *Seperti hari ini, pemberi kerja atau pengusaha akan menentukan tujuan dan hasil spesifik untuk dijalankan oleh pengembang perangkat lunak melalui aplikasi atau platform perangkat lunak khusus.

    *Pengembang ini kemudian akan memetakan strategi eksekusi mereka dan mulai membuat prototipe draf awal perangkat lunak mereka dengan mengakses pustaka komponen mereka dan menggunakan antarmuka visual untuk menghubungkannya bersama—antarmuka visual yang diakses melalui augmented reality (AR) atau virtual reality (VR).

    *Sistem kecerdasan buatan (AI) khusus yang dirancang untuk memahami tujuan dan hasil yang tersirat oleh draf awal pengembang mereka, kemudian akan menyempurnakan desain perangkat lunak yang dirancang dan mengotomatiskan semua pengujian jaminan kualitas.

    *Berdasarkan hasil, AI kemudian akan mengajukan banyak pertanyaan kepada pengembang (kemungkinan melalui komunikasi verbal, seperti Alexa), berusaha untuk lebih memahami dan menentukan tujuan dan hasil proyek serta mendiskusikan bagaimana perangkat lunak harus bertindak dalam berbagai skenario dan lingkungan.

    *Berdasarkan umpan balik pengembang, AI secara bertahap akan mempelajari niatnya dan menghasilkan kode untuk mencerminkan tujuan proyek.

    *Kolaborasi manusia-mesin bolak-balik ini akan mengulangi versi demi versi perangkat lunak hingga versi yang sudah jadi dan dapat dipasarkan siap untuk implementasi internal atau untuk dijual ke publik.

    *Bahkan, kolaborasi ini akan berlanjut setelah perangkat lunak tersebut digunakan di dunia nyata. Saat bug sederhana dilaporkan, AI akan memperbaikinya secara otomatis dengan cara yang mencerminkan tujuan asli yang diinginkan yang diuraikan selama proses pengembangan perangkat lunak. Sementara itu, bug yang lebih serius akan membutuhkan kolaborasi manusia-AI untuk menyelesaikan masalah tersebut.

    Secara keseluruhan, pengembang perangkat lunak masa depan akan kurang fokus pada 'bagaimana' dan lebih pada 'apa' dan 'mengapa.' Mereka akan menjadi pengrajin yang lebih sedikit dan lebih banyak arsitek. Pemrograman akan menjadi latihan intelektual yang akan membutuhkan orang-orang yang secara metodis dapat mengomunikasikan maksud dan hasil dengan cara yang dapat dipahami oleh AI dan kemudian mengkodekan aplikasi atau platform digital yang telah selesai secara otomatis.

    Pengembangan perangkat lunak berbasis kecerdasan buatan

    Mengingat bagian di atas, jelas bahwa kami merasa AI akan memainkan peran yang semakin sentral di bidang pengembangan perangkat lunak, tetapi adopsinya tidak semata-mata untuk tujuan membuat pengembang perangkat lunak lebih efektif, ada kekuatan bisnis di balik tren ini juga.

    Persaingan antara perusahaan pengembang perangkat lunak semakin ketat dari tahun ke tahun. Beberapa perusahaan bersaing dengan membeli pesaing mereka. Yang lain bersaing dalam diferensiasi perangkat lunak. Tantangan dengan strategi terakhir adalah tidak mudah dipertahankan. Setiap fitur perangkat lunak atau peningkatan yang ditawarkan satu perusahaan kepada kliennya, pesaingnya dapat menyalin dengan relatif mudah.

    Untuk alasan ini, tidak ada lagi hari-hari ketika perusahaan merilis perangkat lunak baru setiap satu hingga tiga tahun. Saat ini, perusahaan yang berfokus pada diferensiasi memiliki insentif finansial untuk merilis perangkat lunak baru, perbaikan perangkat lunak, dan fitur perangkat lunak secara rutin. Semakin cepat perusahaan berinovasi, semakin mereka mendorong loyalitas klien dan meningkatkan biaya beralih ke pesaing. Pergeseran menuju pengiriman reguler pembaruan perangkat lunak tambahan ini adalah tren yang disebut "pengiriman berkelanjutan."

    Sayangnya, pengiriman terus menerus tidak mudah. Hampir seperempat dari perusahaan perangkat lunak saat ini dapat melaksanakan jadwal rilis yang diminta dari tren ini. Dan inilah mengapa ada begitu banyak minat dalam menggunakan AI untuk mempercepat segalanya.

    Seperti diuraikan sebelumnya, AI pada akhirnya akan memainkan peran yang semakin kolaboratif dalam penyusunan dan pengembangan perangkat lunak. Namun dalam jangka pendek, perusahaan menggunakannya untuk semakin mengotomatisasi proses penjaminan kualitas (pengujian) perangkat lunak. Dan perusahaan lain sedang bereksperimen dengan menggunakan AI untuk mengotomatisasi dokumentasi perangkat lunak—proses pelacakan rilis fitur dan komponen baru dan bagaimana mereka diproduksi hingga ke tingkat kode.

    Secara keseluruhan, AI akan semakin memainkan peran sentral dalam pengembangan perangkat lunak. Perusahaan perangkat lunak yang menguasai penggunaannya lebih awal pada akhirnya akan menikmati pertumbuhan eksponensial atas pesaing mereka. Tetapi untuk mewujudkan keuntungan AI ini, industri juga perlu melihat kemajuan di sisi perangkat keras — bagian selanjutnya akan menguraikan poin ini.

    Perangkat lunak sebagai layanan

    Segala macam profesional kreatif menggunakan perangkat lunak Adobe saat membuat karya seni atau desain digital. Selama hampir tiga dekade, Anda membeli perangkat lunak Adobe sebagai CD dan memiliki penggunaannya untuk selama-lamanya, membeli versi yang ditingkatkan di masa mendatang sesuai kebutuhan. Namun pada pertengahan 2010-an, Adobe mengubah strateginya.

    Alih-alih membeli CD perangkat lunak dengan kunci kepemilikan yang rumit dan mengganggu, pelanggan Adobe sekarang harus membayar langganan bulanan untuk mendapatkan hak mengunduh perangkat lunak Adobe di perangkat komputasi mereka, perangkat lunak yang hanya akan berfungsi bersama koneksi Internet reguler hingga konstan ke server Adobe. .

    Dengan perubahan ini, pelanggan tidak lagi memiliki perangkat lunak Adobe; mereka menyewanya sesuai kebutuhan. Sebagai imbalannya, pelanggan tidak lagi harus terus-menerus membeli versi perangkat lunak Adobe yang ditingkatkan; selama mereka berlangganan layanan Adobe, mereka akan selalu memiliki pembaruan terbaru yang diunggah ke perangkat mereka segera setelah dirilis (seringkali beberapa kali dalam setahun).

    Ini hanyalah salah satu contoh dari salah satu tren perangkat lunak terbesar yang kami lihat dalam beberapa tahun terakhir: bagaimana perangkat lunak bertransisi menjadi layanan alih-alih produk mandiri. Dan tidak hanya perangkat lunak khusus yang lebih kecil, tetapi seluruh sistem operasi, seperti yang telah kita lihat dengan rilis pembaruan Microsoft Windows 10. Dengan kata lain, perangkat lunak sebagai layanan (SaaS).

    Perangkat lunak belajar mandiri (SLS)

    Membangun pergeseran industri menuju SaaS, tren baru di ruang perangkat lunak muncul yang menggabungkan SaaS dan AI. Perusahaan terkemuka dari Amazon, Google, Microsoft, dan IBM telah mulai menawarkan infrastruktur AI mereka sebagai layanan kepada klien mereka.

    Dengan kata lain, AI dan pembelajaran mesin tidak lagi hanya dapat diakses oleh raksasa perangkat lunak, sekarang setiap perusahaan dan pengembang dapat mengakses sumber daya AI online untuk membangun perangkat lunak pembelajaran mandiri (SLS).

    Kami akan membahas potensi AI secara rinci dalam seri Future of Artificial Intelligence kami, tetapi untuk konteks bab ini, kami akan mengatakan bahwa pengembang perangkat lunak saat ini dan masa depan akan membuat SLS untuk membuat sistem baru yang mengantisipasi tugas yang perlu dilakukan dan cukup lengkapi secara otomatis untuk Anda.

    Ini berarti asisten AI masa depan akan mempelajari gaya kerja Anda di kantor dan mulai menyelesaikan tugas-tugas dasar untuk Anda, seperti memformat dokumen sesuka Anda, menyusun email sesuai nada suara Anda, mengelola kalender kerja, dan banyak lagi.

    Di rumah, ini bisa berarti memiliki sistem SLS yang mengelola rumah pintar masa depan Anda, termasuk tugas-tugas seperti memanaskan rumah sebelum Anda tiba atau melacak bahan makanan yang perlu Anda beli.

    Pada tahun 2020-an dan 2030-an, sistem SLS ini akan memainkan peran penting di pasar perusahaan, pemerintah, militer, dan konsumen, secara bertahap membantu masing-masing meningkatkan produktivitas dan mengurangi segala jenis pemborosan. Kami akan membahas teknologi SLS secara lebih rinci nanti dalam seri ini.

    Namun, ada tangkapan untuk semua ini.

    Satu-satunya cara kerja model SaaS dan SLS adalah jika Internet (atau infrastruktur di belakangnya) terus tumbuh dan berkembang, di samping perangkat keras komputasi dan penyimpanan yang menjalankan 'cloud' tempat sistem SaaS/SLS ini beroperasi. Untungnya, tren yang kami lacak terlihat menjanjikan.

    Untuk mempelajari tentang bagaimana Internet akan tumbuh dan berkembang, baca kami Masa Depan Internet seri. Untuk mempelajari lebih lanjut tentang bagaimana perangkat keras komputer akan maju, baca terus menggunakan tautan di bawah ini!

    Seri Masa Depan Komputer

    Antarmuka pengguna yang muncul untuk mendefinisikan kembali kemanusiaan: Masa depan komputer P1

    Revolusi penyimpanan digital: Masa Depan Komputer P3

    Hukum Moore yang memudar untuk memicu pemikiran ulang mendasar tentang microchip: Masa Depan Komputer P4

    Komputasi awan menjadi terdesentralisasi: Masa Depan Komputer P5

    Mengapa negara-negara berlomba-lomba membangun superkomputer terbesar? Masa Depan Komputer P6

    Bagaimana komputer Quantum akan mengubah dunia: Masa Depan Komputer P7    

    Pembaruan terjadwal berikutnya untuk perkiraan ini

    2023-02-08

    Referensi perkiraan

    Tautan populer dan institusional berikut dirujuk untuk perkiraan ini:

    ProPublica

    Tautan Quantumrun berikut direferensikan untuk perkiraan ini: