Understanding AdHub Software Development

Jihad MJR
AdHub Team
Published in
5 min readFeb 24, 2019

Halo Sobat AdHub, kali ini saya ingin menceritakan teknik-tenik pengembangan yang diterapkan pada proyek AdHub. Kami menerapkan agile (scrum) dalam mengembangan proyek ini. Terdapat tahap-tahap dalam menerapkan scrum, yaitu Sprint Planning, Daily Meeting, Sprint Review, dan Sprint Retrospective. Disiplin adalah konsep dasaar dalam penerapan scrum, setiap individu diharapkan disiplin mengerjakan tugas-tugas yang mereka dapatkan dalam setiap sprint. Untuk memudahkan pengerjaan, kami menerapkan Git sebagai version control dan Gitlab sebagai Git Storage.

Git Storage

Introducing Git Flow

“Git Flow is a branching model for Git, it is very well suited to collaboration and scaling the development team”

Seperti yang dapat kita lihat diatas, salah satu definisi dari Git Flow. Vincent Driessen merupakan salah satu sosok yang mempopulerkan Git Flow di situs nvie. Git Flow merupakan bentuk percabangan yang dirancang sebelum memasuki tahap production. Pada kuliah PPL, Git Flow dirancang untuk membantu peserta melakukan collaborative dalam penggunaan version control GIT. Salah satu manfaat menerapkan Git Flow adalah membantu untuk melacak fitur, perbaikan terbaru, dan rilis dalam proyek.

Bentuk Pecabangan dalam Git Flow

Branches

Setiap branch memiliki peranannya masing-masing dalam suatu proyek. Secara umum terdapat 3 jenis branch utama dalam penerapan Git Flow yaitu master, staging, dan fitur. Branch master dapat dikatakan sebagai cabang utama, karena pada cabang ini hanya menyimpan kumpulan code yang siap deploy ke dalam production environment. Sehingga tidak ada yang dapat melakukan push secara langsung menuju cabang ini atau dapat dikatakan sebagai protected branch.

Cabang berikutnya adalah staging, cabang ini merupakan cabang yang terkait dalam fase pengembangan. Cabang staging merupakan tempat terkumpulnya code dari cabang-cabang fitur. Cabang ini diperuntukkan dalam tahap sprint review pada kuliah PPL. Cabang yang terakhir adalah cabang fitur. Pada tahap pengembangan aplikasi, developer dapat membuat cabang untuk setiap fitur yang dikerjakan. Setiap fitur yang dikerjakan akan dilakukan merge kedalam cabang staging untuk diulas pada sprint review.

Membuat cabang baru

Release Branches

Release Branch yang pada proyek ini kami namakan staging, staging merupakan suatu branch yang dibuat ketika produk yang sedang dikembangkan sudah siap segera rilis. Branch ini dibuat dari branch setiap fitur yang akan segera rilis. Jenis-jenis aktivitas pada cabang ini adalah coldfix bug, dokumen rilis, dan juga task lainnya yang mengacu pada kegiatan rilis.

Hotfix/Coldfix Branch

Cabang hotfix merupakan percabangan dari ​master yang dibuat apabila terdapat ​bug ​atau ​error pada cabang ​master.​ Cabang ​hotfix ​digunakan sebagai tempat untuk memperbaiki ​bug ​(​bug fixing)​ yang terjadi pada cabang ​master.​ Setelah ​bug tersebut diperbaiki dan siap untuk rilis,​ maka ​dilakukan merge pada cabang hotfix ke cabang master.

Cabang coldfix merupakan cabang yang dibuat untuk melakukan ​rollback ​(menghapus semua perubahan dari semua cabang ​user story​). Hal ini dapat terjadi apabila ketika melakukan ​sprint review​, product owner ​menolak salah satu atau semua ​user story ​yang sudah diimplementasikan untuk di-​release.​

Hotfix Branch

Contoh Penerapan Git Flow

Git Flow Dalam PPL 2019
Git Flow — Vincent Driessen

Sekian pengalaman dan informasi yang ingin saya sampaikan. Semoga tulisan ini dapat bermanfaat bagi kita semua, sampai jumpa di tulisan saya berikutnya

TDD AdHub

Software Testing is necessary because we all make mistakes.

Image result for tdd cycle
TDD Cycle

Test Driven Development adalah proses pengembangan perangkat lunak yang dilandasi oleh Test. Semua Penerapan TDD awalnya cukup membuat bingung tim, namun kami harus membiasakan diri. TDD memiliki konsep dimana pengembangan dilakukan berdasarkan test-test yang dibuat sebelum dimulainya proses pengembangan.

Why TDD?

Sejak pertama penulis mengenal TDD, penulis merasa bingung mengapa harus menerapkan TDD dalam proses pengembangan. Kenapa tim pengembang tidak langsung menuliskan baris kode yang mereka ingin implementasikan. Namun setelah mempelajari dan memahami apa itu TDD, ternyata proses ini memiliki manfaat, diantaranya sebagai berikut.

  1. Menghindari error atau bug pada tahap pengembangan kedepannya.
  2. Memperbaiki desain
  3. Improve Productivity
  4. Menghindari over-engineering

Setelah membuat test dan menerapkan implementasi dari test yang sudah dibuat. Maka hasil test coverage yang diberikan akan semakin tinggi.

Apa itu Coverage?

Coverage merupakan tolak ukur yang dapat digunakan tim pengembang untuk mengetahui kualitas setiap baris kode yang telah dibuat. Keuntungan yang diperoleh jika mengetahui coveragea adalah dapat melihat seberapa ter-cover baris kode yang telah dibuat. Dengan mendapatkan 100% coverage bukan berarti program yang dibuat bebas error. Berikut adalah implementasi yang kelompok kami terapkan

Penerapan TDD oleh A-Team

Referensi

--

--