10 prediksi pengembangan perangkat lunak untuk 2018

Siddhartha Agarwal adalah wakil presiden bidang manajemen produk dan strategi, untuk Oracle Cloud Platform. 

Pengembang harus bersemangat dengan peluang di depan pada tahun 2018, dengan produk dan alat seputar teknologi seperti blockchain, chatbots, fungsi tanpa server, dan pembelajaran mesin menjadi cukup matang untuk proyek dunia nyata. Pada saat yang sama, banyak pengembang akan khawatir tentang menahan tekanan untuk mengirimkan kode dan fungsionalitas lebih cepat tanpa mengorbankan keamanan atau kinerja. Tapi ada kabar baik di depan itu juga.

Bagi pengembang, 2018 akan ditentukan oleh ketegangan antara merebut peluang baru yang transformatif sambil mengatasi tekanan untuk berbuat lebih banyak, dengan kualitas yang lebih tinggi. Di bawah ini adalah 10 prediksi terkait bagaimana kekuatan tersebut akan bermain di tahun mendatang.

1. Transaksi B2B yang memanfaatkan blockchain masuk ke produksi

Bisnis mulai memahami keamanan, keandalan, dan efisiensi yang bisa diperoleh dari transaksi yang mendukung blockchain. Pengembang akan menerapkan banyak kasus penggunaan blockchain di seluruh layanan keuangan dan rantai pasokan manufaktur di tahun mendatang. Blockchain adalah teknologi yang memungkinkan transaksi yang efisien, aman, tidak dapat diubah, dan tepercaya di antara organisasi yang mungkin tidak sepenuhnya mempercayai satu sama lain, menghilangkan perantara.

Pertimbangkan perusahaan yang memesan produk dari pabrikan lepas pantai. Produk-produk ini dikirim melalui perusahaan pelayaran, melalui bea cukai, melalui perusahaan pelayaran lain, dan akhirnya ke pembeli. Saat ini, verifikasi dan rekonsiliasi setiap langkah sebagian besar dilakukan melalui email dan spreadsheet, dengan banyak orang dan proses yang terlibat. Blockchain menghilangkan proses manual dan rekonsiliasi dengan merekam pembaruan yang tidak dapat ditarik kembali ke buku besar blockchain ketika sejumlah minimum pihak mengatakan, "Ya, bagian dari transaksi ini terjadi."

Layanan cloud Blockchain akan menghadirkan skalabilitas, ketahanan, keamanan, dan integrasi pra-bangun dengan sistem perusahaan, sehingga lebih mudah bagi pengembang untuk fokus pada kasus penggunaan bisnis daripada implementasi fabric hyperledger yang mendasarinya.

2. Chatbots secara rutin melakukan percakapan nyata dengan pelanggan dan karyawan

Orang-orang mulai bosan membutuhkan beberapa aplikasi seluler untuk melakukan pekerjaan yang sama — seperti tiga aplikasi maskapai penerbangan yang berbeda dengan cara berbeda untuk check-in dan mendapatkan tiket pesawat. Cara yang lebih baik adalah menyediakan fungsi yang sama tetapi melalui aplikasi paling populer di ponsel Anda — perpesanan. Perpesanan memiliki tiga elemen menarik yang konsisten di seluruh medium: instan, ekspresif, dan percakapan - tidak perlu pelatihan. Berkat kemajuan kecerdasan buatan dan pemrosesan bahasa alami, orang-orang akan menggunakan Facebook Messenger, Slack, WeChat, WhatsApp, atau asisten suara seperti Amazon Alexa atau Google Home, untuk mengajukan pertanyaan dan mendapatkan jawaban dari bot cerdas.

Pengembang, yang menggunakan layanan cloud build-bot cerdas baru, dapat dengan cepat membuat bot yang memahami maksud pelanggan, mempertahankan status percakapan, dan merespons secara cerdas sambil memudahkan integrasi dengan sistem back-end. Bayangkan mengambil gambar gaun yang Anda lihat di film dan mengirimkan gambar tersebut ke bot toko pakaian favorit Anda, yang menggunakan pengenalan gambar dan AI untuk merekomendasikan gaun serupa. Karyawan juga bisa menjadi penerima manfaat besar dari bot untuk tugas-tugas seperti menanyakan berapa hari libur yang tersisa, mengajukan tiket meja bantuan, atau memesan laptop pengganti, di mana sistem bahkan mengetahui laptop mana yang memenuhi syarat untuk karyawan dan dapat memberikan pembaruan status dalam pesanan mereka. Mengingat jauh lebih memaafkan untuk bereksperimen dengan basis karyawan Anda sendiri,pengembang mungkin pertama-tama memanfaatkan kemampuan pembuatan bot mereka untuk membuat dan menguji bot yang dihadapi karyawan.

3. Tombol menghilang: AI menjadi antarmuka aplikasi

AI menjadi UI, artinya model respons permintaan yang sinkron dalam menggunakan aplikasi dan layanan secara bertahap menghilang. Ponsel pintar masih "ber-IQ rendah", karena Anda harus mengambilnya, meluncurkan aplikasi, meminta sesuatu untuk dikerjakan, dan akhirnya mendapat tanggapan. Di generasi baru aplikasi cerdas, aplikasi akan memulai interaksi melalui notifikasi push. Mari kita melangkah lebih jauh di mana aplikasi, bot, atau asisten pribadi virtual yang menggunakan kecerdasan buatan akan tahu apa yang harus dilakukan kapan, mengapa, di mana, dan bagaimana. Dan lakukan saja. Dua contoh:

  • Aplikasi persetujuan biaya mengawasi pola persetujuan laporan pengeluaran, mulai menyetujui 99 persen laporan pengeluaran secara otomatis dan hanya memberi perhatian pada laporan langka yang membutuhkan perhatian Anda.
  • Aplikasi Analytics memahami data yang mendasarinya, pertanyaan yang diajukan sejauh ini oleh pengguna bisnis, pertanyaan yang diajukan tentang kumpulan data yang sama oleh pengguna lain di perusahaan, dan setiap hari memberikan wawasan baru yang mungkin tidak terpikirkan oleh analis. Saat organisasi mengumpulkan lebih banyak data, AI dapat membantu kami mempelajari pertanyaan apa yang harus diajukan tentang data.

Pengembang perlu mencari tahu data apa yang benar-benar penting untuk aplikasi bisnis mereka, bagaimana mengamati dan belajar dari transaksi, keputusan bisnis apa yang paling diuntungkan dari jenis AI proaktif ini, dan mulai bereksperimen. AI yang disematkan dapat memprediksi apa yang Anda butuhkan, menyampaikan info dan fungsionalitas melalui media yang tepat pada waktu yang tepat, termasuk sebelum Anda membutuhkannya, dan mengotomatiskan banyak tugas yang Anda lakukan secara manual hari ini.

4. Pembelajaran mesin menggunakan penggunaan praktis dan spesifik domain

Pembelajaran mesin berpindah dari ranah ilmu data yang tidak jelas ke dalam pengembangan aplikasi arus utama, baik karena ketersediaan modul yang dibuat sebelumnya di platform populer, dan karena sangat berguna saat menangani analisis di seluruh kumpulan data historis yang besar. Dengan pembelajaran mesin, wawasan paling berharga hadir dengan konteks - apa yang telah Anda lakukan sebelumnya, pertanyaan apa yang Anda ajukan, apa yang dilakukan orang lain, aktivitas normal versus anomali.

Namun agar efektif, pembelajaran mesin harus disetel dan dilatih dalam lingkungan khusus domain yang mencakup kumpulan data yang akan dianalisis dan pertanyaan yang akan dijawabnya. Misalnya, aplikasi pembelajaran mesin yang dirancang untuk mengidentifikasi perilaku pengguna yang ganjil bagi seorang analis keamanan akan sangat berbeda dari aplikasi pembelajaran mesin yang dirancang untuk mengoptimalkan operasi robot pabrik, yang mungkin sangat berbeda dari yang dirancang untuk melakukan pemetaan ketergantungan aplikasi berbasis layanan mikro.

Pengembang harus lebih memahami kasus penggunaan khusus domain untuk memahami data apa yang harus dikumpulkan, jenis algoritme pembelajaran mesin apa yang akan diterapkan, dan pertanyaan apa yang harus diajukan. Pengembang juga perlu mengevaluasi apakah SaaS khusus domain atau aplikasi terpaket cocok untuk proyek tertentu, mengingat fakta bahwa diperlukan data pelatihan dalam jumlah besar.   

Dengan menggunakan pembelajaran mesin, pengembang dapat membuat aplikasi cerdas untuk menghasilkan rekomendasi, memprediksi hasil, atau membuat keputusan otomatis. 

5. DevOps bergerak menuju NoOps

Kami semua setuju bahwa pengembang sangat penting untuk membantu pengembang membangun aplikasi dan fitur baru dengan cepat, sambil mempertahankan kualitas dan kinerja tingkat tinggi. Masalah dengan pengembang adalah pengembang perlu menghabiskan 60 persen waktu mereka di sisi operasi persamaan, sehingga memotong waktu yang dikhususkan untuk pengembangan. Pengembang harus mengintegrasikan berbagai alat integrasi berkelanjutan dan pengiriman berkelanjutan (CICD), mempertahankan integrasi tersebut, dan terus memperbarui rantai alat CI / CD saat teknologi baru dirilis. Setiap orang melakukan CI, tetapi tidak terlalu banyak orang yang melakukan CD. Pengembang akan meminta layanan cloud untuk membantu pendulum berayun kembali ke sisi pengembang pada tahun 2018. Itu akan membutuhkan lebih banyak otomatisasi untuk CICD nyata.

Docker memberi Anda pengemasan, portabilitas, dan kemampuan untuk melakukan penerapan tangkas. Anda membutuhkan CD untuk menjadi bagian dari siklus Docker ini. Misalnya, jika Anda menggunakan container, segera setelah Anda melakukan perubahan kode ke Git, artefak default yang dibuat harus berupa image Docker dengan kode versi baru. Selanjutnya, image tersebut akan secara otomatis dimasukkan ke dalam registry Docker, dan sebuah container di-deploy dari image tersebut ke dalam lingkungan dev-test. Setelah pengujian QA dan penerapan ke dalam produksi, orkestrasi, keamanan, dan penskalaan container harus dilakukan untuk Anda. Pemimpin bisnis menekan pengembang untuk memberikan inovasi baru lebih cepat; model pengembang harus menyediakan lebih banyak waktu bagi pengembang untuk mewujudkannya.

6. Open source sebagai layanan mempercepat konsumsi inovasi open source 

Model open source tetap menjadi salah satu mesin inovasi terbaik, tetapi menerapkan dan mempertahankan inovasi tersebut seringkali terlalu rumit. Sebagai contoh:

  • Anda menginginkan platform pengelolaan data / acara streaming, jadi Anda beralih ke Kafka. Saat Anda mulai memanfaatkan Kafka dalam skala besar, Anda harus menyiapkan node Kafka tambahan dan menyeimbangkan muatan kluster Kafka yang besar, memperbarui kluster ini saat rilis baru Kafka keluar, lalu mengintegrasikan layanan ini dengan lingkungan Anda lainnya.
  • Anda ingin Kubernetes untuk orkestrasi container. Alih-alih menangani peningkatan, pencadangan, pemulihan, dan tambalan untuk klaster Kubernetes Anda, platform harus melakukan semua itu untuk Anda. Kubernetes dikirimkan setiap enam minggu, jadi platform tersebut harus memiliki penerapan bergulir dan pemulihan otomatis.
  • Anda menginginkan database Cassandra untuk NoSQL. Anda harus menginginkan backup (inkremental atau penuh sesuai jadwal), patching, clustering, scaling, dan ketersediaan cluster Cassandra yang tinggi untuk dikelola oleh platform.

Pengembang akan semakin mencari layanan cloud untuk menghadirkan semua inovasi berkecepatan tinggi dari open source sambil menjaga aspek operasional dan manajemen teknologi ini.

7. Arsitektur tanpa server menjadi besar dalam produksi

Daya tarik arsitektur tanpa server jelas: Ketika ada permintaan agar kode saya dieksekusi berdasarkan peristiwa tertentu, infrastruktur dibuat, kode saya diterapkan dan dijalankan, dan saya hanya dikenai biaya untuk saat kode saya berjalan. Katakanlah Anda ingin membuat fungsi pemesanan perjalanan untuk memesan / membatalkan penerbangan, hotel, dan mobil sewaan. Masing-masing tindakan ini dapat dibuat sebagai fungsi tanpa server yang ditulis dalam berbagai bahasa seperti Java, Ruby, JavaScript, dan Python. Tidak ada server aplikasi yang berjalan dengan kode saya di atasnya; alih-alih fungsi tersebut dibuat instance-nya dan dijalankan pada infrastruktur hanya bila diperlukan.

Bagi pengembang, merangkai fungsi tanpa server bersama-sama untuk menjalankan transaksi kompleks menciptakan tantangan baru: menjelaskan bagaimana fungsi-fungsi ini harus dirangkai bersama, men-debug transaksi terdistribusi, dan menentukan bagaimana, pada kegagalan satu fungsi dalam sebuah rantai, untuk membuat transaksi kompensasi untuk membatalkan perubahan yang tidak tepat. Cari layanan cloud dan alat sumber terbuka, seperti proyek FN, untuk berkembang dengan membantu pengembang mengelola pemrograman, komposisi, debugging, dan manajemen siklus hidup fungsi tanpa server dengan mudah, dan menerapkan serta mengujinya di laptop atau server di lokasi. atau cloud apa pun. Kuncinya adalah memilih platform tanpa server yang menyediakan portabilitas maksimum.

8. Satu-satunya pertanyaan tentang container menjadi "Mengapa tidak?"

Penampung akan menjadi default untuk pekerjaan pengembangan / pengujian dan umum untuk aplikasi produksi. Harapkan peningkatan berkelanjutan dalam keamanan, pengelolaan, orkestrasi, pemantauan, dan debugging, yang didorong oleh inovasi open source dan standar industri. Container menyediakan blok bangunan untuk banyak tren yang mendorong perkembangan modern termasuk arsitektur layanan mikro, aplikasi cloud-native, fungsi tanpa server, dan pengembang.

Penampung tidak masuk akal di mana-mana — misalnya, saat Anda membutuhkan platform awan yang lebih preskriptif, seperti PaaS integrasi atau PaaS seluler — tetapi layanan awan tingkat yang lebih tinggi ini akan berjalan dengan sendirinya pada penampung, dan akan menjadi pengecualian yang membuktikan aturan.

Selain itu, model lisensi perangkat lunak untuk perangkat lunak bernilai tinggi, komersial, di lokasi harus merangkul penyebaran adopsi kontainer. Model penetapan harga untuk perangkat lunak harus mendukung pemberian lisensi "aktifkan" dan "nonaktifkan" karena kontainer dibuat, ditingkatkan, dan diturunkan.

9. Software dan sistem menjadi self-healing, self-tuning, dan self-managing

Pengembang dan tim operasi produksi tenggelam dalam data dari log, pemantauan kinerja web / aplikasi / database dan pemantauan pengalaman pengguna, dan konfigurasi. Selain itu, berbagai jenis data ini disembunyikan, jadi Anda harus membawa banyak orang ke ruang untuk men-debug masalah. Lalu ada masalah transfer pengetahuan: Pengembang menghabiskan banyak waktu untuk memberi tahu operasi produksi seluk beluk aplikasi mereka, ambang batas apa yang harus ditetapkan, topologi server apa yang harus dipantau untuk suatu transaksi, dan sebagainya.