Inilah Masa Depan Seorang Software Development - CRUDPRO

Inilah Masa Depan Seorang Software Development

Inilah Masa Depan Seorang Software Development

Pendahuluan

Baru-baru ini saya mendapatkan peluang untuk berpartisipasi dalam lokakarya bernama Arch9, yang diselenggarakan oleh Levi9, perusahaan tempat saya bekerja. Lokakarya diselenggarakan di Amsterdam dan menghadapkan satu kelompok kecil pribadi dengan ketrampilan teknis yang kuat, pemikiran strategis, dan bermacam pendapat.

Lokakarya ini berfokus pada masa depan pengembangan perangkat lunak dan teknologi. Kami mengulas beragam topik, terhitung pengembangan yang dibantu oleh AI, pengaruh perusahaan teknologi besar, teknologi hijau yang ramah lingkungan, nilai waktu, peningkatan komposit, API sebagai layanan, masa depan cloud, tantangan keamanan blockchain, dan AI, pada umumnya.

Kami mengeksplorasi potensi peretas untuk manfaatkan AI dan masa depan pemrosesan gambar. Itu adalah diskusi yang memikat dan mengunggah pemikiran, dan saya banyak belajar dari kolega dan fasilitator lokakarya.

Inilah Masa Depan Seorang Software Development

Pada artikel ini, saya akan mengulas beberapa topik yang kami pilih dalam lokakarya, dengan fokus pada AI dan pengembangan yang dibantu oleh AI.

Pengembangan Berbantuan AI

Ikhtisar: Pengembangan dengan bantuan AI (kecerdasan buatan) menggunakan kecerdasan buatan untuk membantu membuat dan memelihara perangkat lunak. Ini dapat mencakup pengujian dan debugging otomatis, menyarankan perubahan atau peningkatan kode, dan membantu dengan dokumentasi.

Pemikiran saya: Akhir-akhir ini, ada hype besar atas AI (OpenAI, ChatGPT, GitHub copilot, DALL-E), tapi ini bukan kebetulan. Alat AI lebih baik dan lebih baik dan juga lebih murah. Ini berarti alat-alat ini dapat tersebar di banyak bidang seperti video, pemrosesan gambar, mesin pencari, dan otomatisasi, termasuk mobil tanpa pengemudi, pengenalan emosi berbasis suara, obat-obatan, pengenalan rantai DNK, dll.

Saya menggunakan beberapa alat AI saat menulis artikel ini. Mereka membantu menyusun kalimat, tata bahasa, SEO, dan membuat foto sampul. Bahasa Inggris bukan bahasa ibu saya, jadi terkadang sulit untuk mengekspresikan diri saya dengan jelas saat menulis tentang topik teknis. AI sangat membantu dalam hal ini. Ini juga membantu saya mempelajari cara menghosting situs saya di AWS dan menghubungkan berbagai teknologi dan layanan. Sebagai non-desainer, AI bahkan memberi saya panduan tentang branding.

Inilah Masa Depan Seorang Software Development

Beberapa alat populer yang saya pakai untuk proyek ini adalah sebagai berikut:

ChatGPT adalah variasi dari model bahasa GPT yang diperkembangkan oleh OpenAI, direncanakan khusus untuk dipakai dalam program chatbot, dan memiliki sifat umum. Meskipun ini adalah AI tujuan umum, kami melihat banyak bukti ide (PoC) mengenai bagaimana orang bisa percepat penulisan kode. Pikirkan saat itu akan mempunyai partner peningkatan perangkat lunak khusus.

GitHub Copilot adalah alat yang dikembangkan oleh GitHub yang menolong pengembang mengarahkan dan pahami pangkalan kode lebih gampang. Ini memakai teknik pembelajaran mesin dan kecerdasan buatan untuk secara otomatis hasilkan dokumentasi dan keterangan untuk kode, yang mempermudah pengembang untuk pahami dan bekerja dengan kode yang tidak dikenali. Secara simpel, ini menolong hasilkan kode berdasar gaya penulisan proyek, seperti pendampingan otomatis cerdas, alat saran refaktor cerdas.

Inilah Masa Depan Seorang Software Development

Ada lebih banyak alat, tapi ini, katakanlah, menjadi sorotan. Saya pikir dengan kekuatan besar datanglah tanggung jawab yang besar. Saya sudah mencoba di sejumlah project sampingan yang lain dan memakai GitHub Copilot dari fase pengetesan beta.

Tetapi saya menyaksikan Anda harus ketahui tepat apa yang Anda harapkan supaya efisien di bagian teknis. Benar-benar mudah untuk minta alat untuk tuliskan beberapa kode untuk Anda, tapi kita sebagai manusia cenderung tidak tentukan semua, menduga semuanya orang tahu apakah yang kita bicarakan, dan lupa menjelaskan konteksnya.

Ini tidak ada apa-apa bila Anda sudah lama bersama tim. Anda bisa mengambil jalan singkat saat penamaan "Layar merah" (dan di mana itu menunjuk) diketahui semuanya orang, atau saat tiap pengakuan if dan else perlu memiliki log pada kasus yang tidak diharapkan.

AI tidak mengetahui gaya kami dan tidak masukkan semua secara otomatis, seperti menggunakan multithreading, hingga tidak menggunakan heap untuk meminimalkan tapak jejak memori. Kita perlu ketahui secara iteratif bagaimana kita ingin tingkatkan kode. Ini berbahaya untuk pengembang junior. Dengan bantuan AI, mereka bisa menulis kode secara cepat, bahkan juga dalam teknologi yang tidak mereka ketahui, dan itu akan sukses.

Tetapi bahaya tiba dalam produksi saat Anda menyadari 10% pengguna mempunyai permasalahan berdasar kode ini, dan ini adalah proses yang tidak bisa dibatalkan. AI dilatih mengenai input dan data manusia. Ini berarti AI bisa membuat kesalahan, terlebih bila AI memiliki sifat umum.

Saya memperkirakan alat AI akan membantu dalam beberapa waktu ke depan, kemungkinan sekian tahun, untuk membuat ide yang bisa lebih cepat. Ini akan membantu pengembang senior menggunakan "pelengkapan otomatis pintar" dan berkonsentrasi di tingkat konstruksi dan komunikasi mekanisme yang semakin tinggi, tidak pada code boilerplate. Saya akan merekomendasikan junior pikirkan gambaran besar dan belajar dan gagal kecil. Masih tetap ada kebutuhan untuk memahami tiap ide kecil dalam pemrograman, dan pengetahuan ini sebagian besar bisa diarahkan ke tehnologi lain.

Inilah Masa Depan Seorang Software Development
Inilah Masa Depan Seorang Software Development
Inilah Masa Depan Seorang Software Development

Tapi juga, prediksi saya adalah alat ini semakin lebih cerdas secara eksponensial. Secara mental kami tidak siap untuk perkembangan yang cepat ini. Saat ini, kami meminta alat untuk melakukan suatu hal yang khusus untuk kami, tapi itu bukan percakapan. Ini adalah output berdasar input tekstual kami secara iteratif. Ini adalah fase 1.5.

Saat alat ini mulai menyarankan opsi iterasi berikutnya dan bahkan menyadari langkah-langkah awalnya jika mereka tidak memahami instruksi kami dan akan menyarankan pembaruan, ini bisa menjadi fase 2.

Nantinya, AI dapat memasukkan lebih banyak konteks percakapan dan menilai sebagai masukan berdasarkan kepentingan dan garis waktu. Itu segera dapat memberi tahu kami mengenai bahaya kode seperti, "Ini tidak aman untuk thread. Bila Anda membuat aman untuk thread, itu semakin lebih lambat. Aplikasikan?", "Bila kode digunakan untuk keamanan, kemungkinan terlalu maksimal tidak untuk menggunakan heap kebanyakan. Terapkan perubahannya?" Ini bisa menjadi Fase 3.

Pada fase paling akhir ini, dia akan bertindak selaku konsultan TI dengan menyarankan perubahan dan memprediksi keperluan kita untuk membuat mekanisme. , kita dapat mengharap ini bahkan akan mengambil langkah lebih jauh. Pertanyaan berbasis text atau suara kami bisa diselesaikan dengan semakin banyak wawasan, dan grafik akan logis untuk AI. Saya akan mengatakan Fase 4.

Kami sudah mempunyai layanan AI pemrosesan gambar yang baik. Mereka bisa mengenal objek, membuat klasifikasi metadata yang bagus, atau bahkan juga membuat gambar dan video dengan gaya tertentu. Tetapi AI masih jauh dari membuat kesimpulan logis berdasar ide gambar kita dan menghubungkannya dengan permintaan text, khususnya gambar tangan.

Secara pribadi, saya berpikir ketakutan jika AI akan menggantikan pengembang tidak dibenarkan. Bila Anda siap menyesuaikan dan memperluas pengetahuan Anda dengan bidang baru, Anda aman. Akan selalu ada keperluan seseorang untuk mengatur mekanisme, melatih model data AI, membuat keputusan kreatif, dan lain-lain. AI belajar berdasarkan input manusia, dan pengetahuan yang didalami tetap dan bertambah dari hari ke hari lewat pelatihan.

Berikut salah satunya keunggulan AI, pelajari satu dan bentuklah. Kami, manusia, mewariskan pengetahuan dari generasi ke generasi dengan menulis buku, membaca e-platform, melihat video, dan mengajarkan. Proses ini memerlukan waktu.

AI menyelesaikan tugas berulang, jadi kami tak perlu menulis peranan yang sama sewaktu-waktu, membuat layanan yang sama, dan menyambungkan layanan seperti lem logika jadi lebih gampang. Tetapi saya tidak yakin AI dapat lakukan beberapa hal inovatif tanpa hubungan manusia — setidaknya, kita jauh dari itu.

Stack Overflow populer untuk tiap pengembang. Terkadang, orang pilih jawaban yang betul, tidak pahami bahwa jalan keluarnya lebih dalam dan terlalu sulit. Bahkan juga bila pada tingkat tinggi, sepertinya menyelesaikan permasalahan. Bila ini adalah sumber pelatihan model AI, karena itu AI akan membuat kesalahan.

Bidang di mana saya menyaksikan alat AI akan berkembang adalah seperti berikut:

  • AI Etika, kepribadian, emosi
  • Analitis Akustik (seperti mengenal kekeliruan mesin berdasar suara dan getaran — ini ialah tesis Master saya)
  • Keamanan Cyber AI
  • Berkendara Sendiri
  • Analitis Prediktif

Pengaruh Perusahaan Teknologi Besar

Rangkuman: Perusahaan teknologi besar seperti Google, Microsoft, dan Amazon secara berarti mempengaruhi industri peningkatan perangkat lunak. Mereka memutuskan tren dan standar, dan pengembang sering menggunakan produk dan platform mereka.

Pikiran saya: Kita tahu permasalahan lintas platform. Semua orang coba menyelesaikan ini. React Native (Facebook — Meta), Xamarin (Microsoft), PhoneGap (Adobe), Ionic, Flutter (Google), dan lain-lain.

Saya akan menjelaskan ini bukanlah proyek yang tidak berhasil, bahkan juga jika ada yang mengalami penurunan. Mereka adalah transisi, dan Penelitian dan Pengembangan akan membantu kami pikirkan dan meningkatkan ide kami mengenai penggunaan lintasi platform. Tetapi yang jelas ini cuma akan bertahan cukup lama dengan support beberapa Teknologi Besar.

Big Tech akan maju dalam beberapa teknologi ini. Kita menyaksikan kejatuhannya. Kami akan menyaksikan apa yang hendak dibuat Flutter dan berapakah lama itu akan bertahan. Kemungkinan dengan bantuan alat AI, kita bisa dengan mudah mengonversi kode dari satu teknologi ke tehnologi lain atau bahkan juga kode mesin yang akan membuat bahasa pemrograman tingkat tinggi jadi usang. Siapa tahu apa yang akan terjadi di masa depan?

Teknologi Hijau Ramah Lingkungan

Gambaran Umum: Industri pengembangan perangkat lunak mempunyai jejak karbon yang besar, dan ada gerakan yang berkembang untuk membuat teknologi yang lebih ramah lingkungan. Ini terhitung menggunakan energi terbarukan, mengurangi konsumsi energi, dan menggunakan bahan yang ramah lingkungan.

Pikiran saya: Di sini, saya akan memisahkan dua hal.

Pertama adalah aliran teknologi dan komunikasi yang mengkonsumsi lebih sedikit energi. Karena semakin banyak perangkat seluler, perangkat IoT, sensor, jam tangan pintar, atau perangkat pintar yang lain dibuat, mengkonsumsi semakin sedikit energi adalah satu kewajiban untuk perangkat yang memakai baterai. Di sini saya tidak memikirkan bahasa pemrograman tapi OS dan infrastruktur, karena hal tersebut bisa benar-benar mempengaruhi konsumsi energi dan baterai. Nah, kita dapat pikirkan bagaimana sisi cloud dimaksimalkan dengan perusahaan Teknologi Besar.

Apa contoh teknologi hijau?

  • Bluetooth Low Energy (BLE). Ini adalah protokol komunikasi nirkabel yang dirancang untuk konsumsi daya rendah. Ini umumnya digunakan untuk menghubungkan perangkat seperti smartphone, tablet, dan perangkat rumah pintar.
  • Zigbee. Prosedur komunikasi nirkabel ini direncanakan untuk konsumsi daya rendah dan komunikasi jarak jauh. Ini umumnya dipakai dalam mekanisme otomasi rumah dan perangkat Internet of Things (IoT).
  • Z-Wave. Prosedur komunikasi nirkabel ini direncanakan untuk konsumsi daya rendah dan komunikasi yang handal dalam jarak pendek. Ini umumnya dipakai dalam mekanisme otomasi rumah dan perangkat rumah pintar.
  • MQTT (Message Queuing Telemetry Transport). Ini adalah prosedur perpesanan terbitkan-berlangganan ringan yang direncanakan untuk perangkat dengan sumber daya terbatas dan jaringan bandwidth rendah. Ini biasanya dipakai dalam program Internet of Things (IoT) dan mesin-ke-mesin (M2M), di mana dia memungkinkan komunikasi di antara perangkat dan server secara handal dan efektif.

Yang kedua adalah teknologi yang mempromosikan teknologi hijau, seperti panel surya, kendaraan listrik, optimalisasi sumber daya terbarukan, daur ulang, proses pengelolaan limbah, bahan ramah lingkungan, dan lain-lain.

Saya akan mengatakan kita ada dalam fase peralihan sama ini. Semuanya sudah dimulai, tapi kami masih dalam tahapan pengoptimalan untuk tumpukan teknologi sekarang ini. Mobil yang menggunakan bahan bakar masih jadi mayoritas. Masa datang akan mempromosikan transportasi publik yang cerdas, semaphore yang dimaksimalkan untuk sepeda, berbagi perjalanan dengan mobil sampai kendaraan listrik tersebar luas, dan lain-lain. Tetapi ini akan bawa masalah lain.

Baterai belum mencapai puncaknya. Dan siapa tahu apa yang akan terjadi di masa depan? Kemungkinan pengisian gratis bila berkendara di jalan raya dengan induksi dengan jalan tertentu. Semakin banyak mobil pintar listrik kecil di pusat perkotaan untuk disewa. Ini benar-benar tergantung pada infrastruktur dan peluang jalan keluar untuk kota sama ukuran tertentu. Atau jaringan energi terdesentralisasi.

Waktu untuk Menghargai

Rangkuman: Waktu untuk menghargai mengacu pada waktu yang diperlukan produk atau layanan untuk memberi nilai ke penggunanya. Dalam industri pengembangan perangkat lunak, ini bisa memiliki arti waktu pemasaran yang lebih cepat atau kekuatan untuk menerapkan fitur atau penyempurnaan baru secara cepat.

Pertimbangan saya: Ini adalah masalah untuk kapitalisme modern. Bila seseorang lebih cepat, ini memberi tekanan pada persaingan untuk hasilkan nilai lebih cepat, atau mereka akan membutuhkan lebih banyak investasi untuk tetap bertahan hidup. Ini membuat perlunya langkah yang bisa lebih cepat untuk tidak berhasil bisa lebih cepat dan belajar darinya. Untuk membuat pembuktian ide dan pengujian A/B yang kecil tetapi cepat lebih cerdas dan cepat. Langkah awal adalah memiliki alat yang lebih bagus seperti solusi tanpa kode dan kode rendah. Anda tak perlu mendapati roda; Anda perlu sesuaikan faktor-faktor yang membuat produk lebih bagus dengan jatah kecil dari lainnya.

Kode rendah dan tanpa kode adalah pendekatan peningkatan piranti lunak yang mempunyai tujuan untuk memudahkan dan mempercepat pembuatan program dan jalan keluar. Pendekatan ini memungkinkannya pengguna non-teknis, seperti analis usaha atau ahli proses, untuk membikin dan sesuaikan program tanpa pengetahuan pengkodean yang luas.

Kita telah ada di fase ini. Ini adalah komponen yang dibikin awalnya, dan seperti Lego, kami bisa lewat cara intuitif membuat jalan keluar kami dengan menarik dan melepas. Atau kita dapat memakai kode minimum. Karena latar belakangnya seperti kotak hitam, kami mengetahui masalah apa yang mereka tuntaskan dan keluaran apa yang diharap.

Ini bisa juga berbahaya karena pengguna non-teknis bisa menggunakannya untuk menyelesaikan masalah dengan jalan keluar yang salah.

Ada semakin banyak status sekitar otomatisasi, keperluan akan beberapa orang yang paling terspesialisasi dalam sektor ini, serta lebih banyak pengetahuan domain.

Inilah Masa Depan Seorang Software Development

Alat perancang Fitur terpadu Figma yang hasilkan kode dalam beragam bahasa berdasar komponen yang dipilih. Ini bagus, tapi menurut pengalaman saya, pendesain tidak selamanya bisa membuat desain sempurna yang mewakili program dan cara pembuatannya . Jadi kode ini kemungkinan jadi titik awal, tapi dibutuhkan banyak pembaruan.

Masa Depan Pengembang

Dalam dunia pengembangan yang dibantu AI, peranan pengembang kemungkinan akan berkembang. Alat AI bisa membantu pengembang membuat otomatis pekerjaan tertentu dan memberi rekomendasi untuk perubahan atau peningkatan kode, melepaskan waktu untuk tugas yang lebih kompleks dan strategis.

Tetapi, pengembang harus mempunyai pengetahuan yang kuat mengenai bahasa dan prinsip pemrograman dan kemampuan untuk bekerja dengan dan mengelola alat AI. Karena AI menjadi lebih umum di industri pengembangan perangkat lunak, pengembang yang bisa beradaptasi dan menggunakan alat ini secara efektif kemungkinan besar akan mempunyai keunggulan kompetitif.

Hal ini penting untuk pengembang untuk selalu terbaru pada tren dan teknologi terkini di lapangan supaya masih tetap berkaitan dalam industri yang makin cepat dan terus berkembang.

Kemungkinan perbedaan di antara pembuat kode dan insinyur perangkat lunak semakin lebih besar, atau semakin banyak peran akan ada berdasar kebutuhan. Bagaimana juga, beberapa pemantauan teknis akan dibutuhkan untuk menghindar kesalahan yang tidak diharapkan.

Pengetahuan teknologi dan domain bisa menjadi penting untuk pengembang di masa datang. Dalam soal teknologi, pengembang perlu mempunyai dasar yang kuat dengan bahasa dan konsep pemrograman dan kemampuan untuk menggunakan dan mengelola alat AI dan teknologi baru yang lain.

Di saat yang serupa, pengetahuan domain penting untuk pengembang untuk pahami kebutuhan dan persyaratan khusus dari proyek yang mereka lakukan. Ini termasuk memahami industri atau sektor tempat mereka bekerja dan tujuan dan sasaran usaha dari organisasi tempat mereka bekerja.

Pada akhirannya, pengembang yang paling sukses kemungkinan besar ialah mereka yang bisa secara efektif menyamakan keterampilan teknis mereka dengan pemahaman mereka tentang domain tempat mereka bekerja.