Shift Left dalam Software Development

Beberapa saat yang lalu saya sedang membuat proyek SAST (Static Application Security Testing) menggunakan CI/CD pipeline, dalam proses riset menemukan istilah “shift left”. Jadi penasaran, sebenernya maksud dari shift left itu apa gitu ya?

Saya cari-cari dikit, akhirnya nemu nih, (nanti sumber akan dilampirkan dibawah juga, tenang aja).

Jadi apa artinya “shift left” dalam software development?

Shift left (bakal saya panggil geser kiri aja biar lebih mudah), kurang lebih semacam usaha untuk menemukan permasalahan yang ada pada kode, lebih awal. Semakin awal permasalahan ditemukan, semakin murah dan mudah memperbaikinya.

Maksudnya gimana?

Bilang aja alur software dev biasa kaya gini:

Requirement analysis > Design Aplikasi > Dev Planning > Development > Testing > Release > Maintenance

  • Requirement dijabarkan oleh project manager, lalu dianalisis oleh analis bisnis.
  • Aplikasi didesain oleh desainer, lalu dapat masuk ke tahap planning oleh developer.
  • Developer bekerja membuat masing-masing fitur, sambil dites oleh tester.
  • Projek rilis ke preproduction, kemudian sampai ke production.
  • Sudah sampai prod, proyek di-maintain sambil diawasi performanya.

Mungkin kalau mau digeser ke kiri, contoh yang bisa dilakuin adalah:

  • Requirement juga dibahas bersama tim teknis, agar mereka juga bisa memberi masukan apakah waktu yang diberi cukup untuk menyelesaikan tugas yang ada.
  • Desainer bisa membuat prototype yang sederhana agar tim lain juga bisa mendapat gambaran seperti apa hasilnya nanti.
  • Developer juga bisa membuat diagram yang dibutuhkan agar semua jelas, dan dibahas kedalam rapat.
  • Tester bisa melakukan tes otomatis sambil tes langsung, sambil dev sedang mengembangkan softwarenya.

Dan dalem proses ini,

  • Tim teknis bisa ngasi masukan dan nemuin masalah edge case pada requirement, jadi bisa diubah duluan sebelum ngelanjutin perencanaan.
  • Tim teknis juga bisa diskusi sama desainer tentang desain yang akan makan waktu kelamaan jika dibuat sesuai keinginan.
  • Developer dapat diskusi dengan anggota tim lain yang dalam rapat agar semua jelas.
  • Bug dan masalah lain dapat ditemuin di setiap tahap pengembangan, bahkan mulai dari perencanaan, sampai ke development, sampai ke testing.

Semakin awal bug atau masalah lain ditemukan dalam tahap-tahap pengembangan, semakin murah penyelesaiannya.

Penerapannya gimana?

Sebenernya ada video ini yang memperkenalkan saya ke konsep geser kiri.

Dalam videonya, Richard menjelaskan AppSec pipeline yang dia gunakan, dalam AppSec (Application Security atau keamanan aplikasi), konsep utama shift left yang dia gunakan adalah semakin cepat bug atau vulnerability (kerentanan pada aplikasi) ditemukan, semakin murah biaya atau usaha mengatasi permasalahannya, dibandingkan dengan jika masalah ditemukan di akhir tahap-tahap.

Sebagai usaha menggeser prosesnya ke kiri, dia juga menerapkan beberapa aplikasi seperti SonarQube, DefectDojo, OWASP ZAP, dan lain-lain.

Penutup dan Sumber

Ini sumber dan juga inspirasi dari post ini, mungkin saya mau sharing aja menggunakan bahasa saya sendiri, karena menurut saya konsep ini dan topiknya menarik, sekalian membuat catatan aja.

What Does “Shift Left” Mean in Software Development? (freecodecamp.org)

Terimakasih dan selamat ketemu lagi di artikel selanjutnya!

Leave a Reply

Your email address will not be published. Required fields are marked *

Collaborative Insights from an Aspiring Engineer