Mengatur Workflow Pengembangan Project Aplikasi dengan Metode Microsoft Release Flow untuk Pemula

Haekal
8 min readSep 4, 2022

Mengembangkan sebuah aplikasi tidak hanya tentang programming atau pun problem solving. Sebagai pengembang yang baik anda sudah haru memikirkan bagaiamana cara anda dalam mengatur pengembangan project aplikasi anda, sudah kah anda lakukan? Dengan metode Microsoft Release Flow project aplikasi anda akan menjadi lebih tertata dan keren!

Photo by Max Duzij on Unsplash

Jika anda sudah mulai mengatur project aplikasi anda dengan Git, itu merupakan hal yang bagus dan tentu sangat membantu dengan berbagai fitur yang disediakan oleh Git. Tetapi, mungkin kita hanya asal-asalan dalam melakukan commit atau pun branching dan lainnya. Hal tersebut pada akhirnya akan membuat kita pusing sendiri dalam mengatur pengembangan project kita dengan menggunakan Git.

Sebelum membahas lebih jauh saya berasumsi bahwa anda seharusnya sudah familiar dengan Git dan Visual Studio/ Visual Studio Code. Karena kita akan mengerjakan contoh project dengan Visual Studio/ Visual Studio Code.

Lalu apakah memang ada caranya untuk mengatur workflow dari project aplikasi kita dengan Git supaya lebih tertata? Tentu saja ada!

Salah satu workflow yang populer saat ini adalah Microsoft Release Flow. Apa itu Microsoft Release Flow? Okey, sebelum membahas hal tersebut dalam artikel kali ini juga kita akan mengkombinasikan Microsoft Release Flow dengan Azure DevOps dan juga Git.

Apa itu Microsoft Release Flow?

Microsoft Release Flow merupakan workflow yang digunakan oleh Microsoft dalam membangun dan men-deploy semua produk Microsoft dengan menggunakan proses DevOps terpusat pada Git branching dan metode release flow itu sendiri. Wow! Keren bukan? Kita akan melakukan hal yang sama dalam mengembangkan project aplikasi kita dengan para engineer di Microsoft.

Tentunya perusahan sebesar Microsoft memerlukan sebuah standarisasi dalam melakukan pengembangan berbagai produk-produknya. Microsoft menggunakan trunk-based branching strategy untuk membantu mengembangkan produk dengan cepat, menyebarkannya secara teratur, dan mengirimkan perubahan dengan aman ke tahap produksi.

Sebentar! Makin banyak istilah yang kita gunakan nih, saya rasa itu akan membuat kita pusing. Tapi tenang setelah ini kita akan mempraktikkannya langsung dan sebelum itu saya akan memberitahu terlebih dahulu cara mainnya:

  1. Melakukan branching dengan sederhana. Dalam melakukan branching aturannya adalah kita tidak bisa langsung push ke main branch. Lalu bagaimana caranya? Jika ingin mengembangkan suatu fitur baru, maka kita harus membuat branch baru juga sehingga kita bisa bebas mengembangkan fitur baru tersebut di branch baru tersebut tanpa merusak atau mengganggu main branch kita. Dengan kata lain main branch kita digunakan untuk fase release aplikasi dan sebagai backup jika memang pada akhirnya kita tidak jadi menggunakan fitur yang dikembangkan pada branch tersebut.
  2. Memberi penamaan standar pada branch. Pada akhirnya ketika mengembangkan aplikasi kita akan berkolaborasi dengan developer yang lain sehingga masing-masing akan mengembangkan aplikasi sesuai task masing-masing pula. Untuk mudah dalam membedakan pemilik branch kita akan menggunakan naming convention sebagai berikut: nama/nama-fitur. Branch ini biasanya disebut juga sebagai feature branch.
  3. Melakukan pull request dan merge ke main branch. Nah jika tadi kita tidak boleh melakukan push langusng ke main branch, lalu bagaimana mekanismenya agar main branch kita up-to-date? Caranya adalah jika kita sudah selesai mengembangkan fitur pada feature branch, kita dapat melakukan pull request ke main branch sehingga pada akhirnya fitur yang telah kita kembangkan akan terimplementasi juga di main branch dan developer yang lain dapat melakukan pull ke main branch agar program yang dimiliki selalu up-to-date.
  4. Memberikan policies pada main branch. Dengan memberikan policies maka kita dapat dengan paksa melarang untuk melakukan push ke main branch. Dengan Azure DevOps kita bisa memberikan policies dengan mudah.

Bagaimana sudah paham? Baik, selanjutnya kita akan mempraktikkannya secara langsug. Let’s go!

Langkah-langkah Mengimplementasikan Microsoft Release Workflow

  1. Masuk ke laman aex.dev.azure.com dan silahkan login dengan akun Microsoft milik pribadi. Maka akan masuk ke laman web kurang lebih seperti berikut:

2. Sebelum bisa membuat project, kita terlebih dahulu harus membuat organization terlebih dahulu. Klik tombol Create new organization lalu masukkan nama organisasi yang diingin kan dan host project yang diinginkan.

3. Selanjutnya masukkan nama project dan kita bisa memilih apakah project ini bersifat publik atau private dan klik Advanced lalu pilih Work item process nya adalah Agile, terakhir tekan Create project.

Maka akan tampil halaman utama project dari Azure DevOps seperti berikut:

Kita akan banyak berinteraksi dengan menu Boards dan Repos.

4. Pilih menu Repos dan scroll ke bawah menu dan pada menu Initialize main branch with a README or gitignore pilih add gitignore untuk Visual Studion dan pilih tombol Initialize.

Maka kita akan masuk ke tampilan awal dari repo yang kita buat.

5. Lalu pilih menu Branches dan pada repo kita pilih More options dan pilih Policies. Policies ini digunakan agar kita tidak bisa melakukan push langsung ke main branch kecuali dengan pull request.

Selanjutnya pada menu Branch Policies aktifkan dua options berikut:

Options yang pertama digunakan untuk menghubungkan feature branch kita dengan work item yang akan kita buat di menu Boards. Sedangakan yang kedua jika masih ada comment yang belum resolved pada proses review saat pull request maka aksi pull request tidak dapata diselesaikan.

Lalu scroll lagi ke bawah dan pada options Automatically included reviewers tambahkan akun anda sendiri sebagai reviewers. Options ini digunakan ketika jika nantinya anda sudah bekerja dengan tim maka anda dapat menambahkan rekan tim anda untuk mereview pull request yang dibuat.

6. Lalu masuk ke menu Boards dan pilih menu Sprints lalu ke Settings dan lakukan seperti pada gambar di bawah berikut:

Hal tersebut akan membuat Work item kita akan memiliki tiga buah state yaitu New, Active, dan Closed.

7. Lalu tambahkan Work item baru dengan memilih tombol New work item.

Lalu masukkan User Story baru, kita akan membuat program sederhana yaitu program untuk menampilkan nama pada console. Jangan lupa assign user story pada akun kita sendiri karena kita masih mengerjakannya sendiri.

8. Selanjutnya tambahkan juga item baru seperti berikut dan pindahkan (drag) ke bagian Active.

9. Sekarang klik More options pada item dan pilih New branch, sehingga sekarang kita memiliki feature branch untuk mengembangkan fitur “menampilkan nama” kita.

Lalu masukkan nama feature branch sesuai yang sudah kita sepakati tadi: nama/nama-fitur dan klik Create branch.

Maka sekarang kita akan berada pada feature branch yang sudah kita buat:

10. Sekarang saatnya kita mengembangkan fitur baru kita! Klik tombol Clone dan copy url repo kita. Silakan untuk mebuat folder baru untuk project ini di local komputer kalian dan lakukan clone.

11. Lalu buka project tersebut di Code Editor kesayangan kalian, di sini saya akan membukanya dengan Visual Studio.

12. Tambahkan sebuah file bernama Program.cs dan tambahkan juga program untuk menampilkan nama kalian. Seperti berikut:

Kita sudah menambahkan fitur yang ingin kita implementasikan, sekarang kita bisa coba untuk push hasil coding kita.

Wah! Ternyata kita gagal push, sebentar… ternyata kita mencoba untuk melakukan push ke main branch. Seperti yang kita inginkan sekarang kita tidak bisa push langsung ke main branch, sehingga main branch kita terhindar dari program yang belum “sempurna”. Baik mari kita coba untuk checkout ke feature branch kita dan lakukan push kembali.

Sekarang kita sudah berhasil melakukan push ke repo kita, mari kita lihat perubahannya di feature branch kita.

Ternyata file Program.cs yang kita buat sudah berada di branch yang kita buat.

13. Karena kita yakin bahwa program yang kita buat sudah benar, maka saatnya kita merge ke main branch kita. Bagaimana caranya? Kita harus melakukan pull request ke main branch. Caranya pilih tombol Create a pull request lalu akan muncul tampilan seperti gambar berikut dan pilih tombol Create.

Maka akan muncul menu untuk menyetujui pull request yang dilakukan, karena sebelumnya kita mewajibkan untuk direview terlebih dahulu maka kita dapat approve dan complete pull request. Tentu kita bisa menambahkan reviewer lain jika sudah bekerja dalam tim.

Maka sekarang branch kita akan bersih dan hanya tersisa main branch saja:

Menarik bukan! Kita juga bisa lihat commit secara visual untuk mudah memahami apa yang sudah kita lakukan pada menu Repos -> Commits.

14. Jika kita kembali ke menu Boards -> Sprints, maka sekarang tasks kita secara otomatis akan pindah ke bagian Closed.

Wow! Memdudahkan sekali ya… Sekarang kita bisa mengatur workflow pengembangan project kita dengan mudah. Kita bisa membuat task yang lain dan mengatur statusnya lalu mengerjakannya lagi seperti yanga sudah kita lakukan, sehingga kita bisa merencanakan dan mengetahui apa saja yang harus kita lakukan. Hal ini juga akan sangat membantu jika kita sudah bekerja secara kolaborasi dalam suatu tim. Masing-masing anggota tim sekarang akan memiliki task dan feature branch masing-masing untuk dikerjakan dan tidak bisa sembarangan dalam melakukan push atau pull request.

Simpulan

Microsoft Release Flow memanfaatkan trunk-based branching strategy dalam membantu pengembangan produk-produknya. Langkah-langkah dalam melakukan workflow nya pun mudah karena menggunakan perintah dan fitur dasar pada git seperti branch, push, pull request, dan merge.

Sumber referensi:

How Microsoft develops with DevOps — Azure DevOps | Microsoft Docs

Introduction (trunkbaseddevelopment.com)

Release Flow: How We Do Branching on the VSTS Team — Azure DevOps Blog (microsoft.com)

Release Flow: How We Do Branching on the VSTS Team — Azure DevOps Blog (microsoft.com)

--

--