Monday, March 28, 2011

Software Release Life Cycle & Semantic Versioning

Software Release Life Cycle adalah tahapan-tahapan dalam developmen software hingga software tersebut rilis, dapat berupa software yang baru dibuat, perbaikan bug/error atau pengembangan software. 

Tahapan-tahapan ini menggambarkan seberapa stabil dan seberapa selesai software tersebut. Berikut ini adalah tahapan-tahapan Software Release Life Cycle yang disusun secara beurutan

1.Alpha

Alpha adalah status Developmen pada software yang mungkin belum terdapat seluruh fitur yang direncanakan dan belum stabil, tetapi dapat menunjukan atau memberikan gambaran dari hasil akhir sebuah software.

Versi Alpha dapat di katakan sebuah versi review yang akan di-test secara intensif oleh internal penguji/tester tetapi dapat diberikan juga pada penguji eksternal, misalkan user yang ingin mencoba versi Alpha tersebut.

Tahapan Alpha bisa berkembang dari Alpha 1, Alpha 2 dan seterusnya tergantung dari hasil pengujian dan tindakan dari hasil pengujian tersebut seperti perbaikan bug atau error, penambahan, penyesuaian dsb-nya dari software tersebut

2.Beta

Beta adalah sebuah status Developmen pada software setelah Status Alpha telah dinyatakan selesai. Beta dapat dikatakan sebuah versi software yang telah lulus test/pengujian oleh tim tester/penguji internal.

Pada versi Beta software ditujukan kepada pengguna atau calon pengguna untuk mencoba software tersebut dengan tujuan untuk mendapatkan feedback yang dialamin penggunan saat menggunakan software tersebut (seperti apakah terjadi bug, error, ribet dsb nya).

Jadi pada tahap ini proses perbaikan bug dan error masih terus dilakukan oleh pihak pembuat software dan masih dapat terjadi penambahan, penggantian, penyesuaian feature dalam skala kecil.

Tahap Beta dapat berkembang dari beta1, beta2 dan seterusnya tergantung dari hasil feedback pengguna yang berperan sebagai penguji dan Software Versi Beta tidak direkomendasikan untuk digunakan keperlukan production. Sebagai contoh Software versi beta dapat berupa Download Gratis Software Beta.

Pada umumnya Versi Beta terbagi menjadi Open Beta yang berarti secara umum siapa saja dapat mencoba versi software tersebut dan Close Beta yang artinya adalah sofware tersebut hanya dirilis untuk sekolompok individu saja yang bertujuan untuk mencoba software tersebut.

3.RC (Release Candidate)

Pada tahap ini software sudah dinyatakan stabil dan kualitasnya sudah mendekati versi final yang siap untuk di-rilis dan jual secara massal (apabila prodak massal) jadi RC semacam preview dari final release. 

RC (Release Candidate) biasanya`dikeluarkan untuk untuk pengujian tambahan untuk memastikan bahwa prodak telah siap. Biasanya software pada tahapan ini sudah bisa dipakai, karena relatif lebih stabil daripada versi beta dan pada tahap RC hanya dilakukan stabilisasi saja.

Pada tahap ini dapat berfungsi sebagai persiapan sebuah software untuk menyambut versi final atau versi stabil software, Tahapan RC biasanya jarang dilakukan oleh pembuat software melainkan langsung merilis versi final setelah tahap Beta.

4. Final / Gold / Stable Release

Ini adalah tahap terakhir dari Life Cycle Software Di tahap ini software sudah dinyatakan stabil dan layak untuk digunakan secara luas. Apabila software ini adalah prodak masal maka pihak pembuat software akan mempromosikan software.

Versi final atau stable ditandai dengan penulisan versi dengan nomor tanpa ada tambahan kata Alpha, Beta maupun RC, Sebagai Contoh adalah Browser Firefox yang stable ditulis.
  • Version 3.0.13
  • Version 3.6.16
Apabila Software Release Life Cycle digambarkan dalam bentuk diagram maka akan tampak seperti gambar dibawah ini.



Semantic Versioning

Pada umumnya sebuah software yang rilis memiliki versi. Versi Software adalah sebuah pemberian nomor atau angka yang bersifat unik kepada sebuah software untuk menerangkan status software tersebut. 

Nomor versi software diberikan secara berurut dan meningkat mengikuti Rilis (melepaskan/mengeluarkan) software tersebut.

Dengan memberikan versi pada sebuah software akan memudahkan dalam meng-organisir source code sebuah software yang bermanfaat bagi developer maupun pengguna sofware. Dan dapat berfungsi sebagai history perkembangan sebuah software.

Misalkan sebuah sofware akutansi bernama AKSES memiliki beberapa versi 1 hingga 4 yang setiap versinya memilki kelengkapan fitur berbeda, performance berbeda, keperluan spesifik dan tentunya harga yang berbeda, dengan pemberian versi sofware tersebut akan menjadi lebih mudah di-kelolah oleh developer dan di inggat oleh pengguna software tersebut.

Versi pada sebuah Software diwakili dengan sederetan angka yang pada umum-nya terkelompokan menjadi tiga bagian, setiap bagian kelompok memiliki pengertian yang berbeda dan dipisahkan dengan simbol titik (.)


Berikut ini adalah aturan dalam membuat versi software berdasarkan Semantik versioning (SemVer)

1. Aturan Pertama 

Sebuah nomor versi software berpola X.Y.Z di mana X, Y, dan Z adalah bilangan bulat.
  • X adalah versi mayor
  • Y adalah versi minor
  • Z versi patch
Setiap rilis maka elemen versi sofware HARUS meningkat, Sebagai contoh seperti dibawah ini
  • Rilis ke 1 >> 1.0.0
  • Rilis ke 2 >> 1.0.1
  • Rilis ke 3 >> 1.1.1
  • Rilis ke 4 >> 2.0.0
2. Aturan ke-dua

Untuk versi software dalam fase Release Life Cycle Software dapat ditambahkan dengan AlphaNumerics [0-9A-Za-z] & simbol strip dan serta diawali karakter alpha [A-Za-z], Sebagai contoh adalah sebagai berikut.
  • Versi 1.0.0 Alpha ke 1 >> 1.0.0alpha1
  • Versi 1.0.0 Alpha ke 2 >> 1.0.0alpha2
  • Versi 1.0.0 Beta ke 1 >> 1.0.0beta1
  • Versi 1.0.0 Beta ke 2 >> 1.0.0beta2
3. Aturan ke-tiga

Setelah sebuah versi software rilis maka setiap ada modifikasi dari source code software tersebut akan melahirkan rilis versi yang baru.

4. Aturan ke-empat

Angka pada versi patch harus bertambah apabila terjadi perbaikan bug/error dari sebuah versi software, sebagai contoh.
  • Perbaikan bug/error di Versi 1.0 ke 1 >> 1.0.1
  • Perbaikan bug/error di Versi 1.0 ke 2 >> 1.0.2
  • Perbaikan bug/error di Versi 1.0 ke 3 >> 1.0.3
  • Perbaikan bug/error di Versi 1.0 ke 4 >> 1.0.4
5. Aturan ke-lima

Versi minor pada versi software harus bertambah jika terdapat modul/fungsional baru yang kompatibel dengan versi mayor atau terjadi perbaikan yang besar pada versi software tersebut.
  • Penambahan fungsional di Versi 1 ke 1 >> 1.1.0
  • Penambahan fungsional di Versi 1 ke 2 >> 1.2.0
  • Penambahan fungsional di Versi 1 ke 3 >> 1.3.0
  • Penambahan fungsional di Versi 1 ke 4 >> 1.4.0
6. Aturan ke-enam

Versi mayor pada versi software harus bertambah apabila terjadi perubahan yang menyebabkan modul/fungsional yang telah ada sebelumnya menjadi tidak kompatibel, hal ini biasa terjadi apabila ada  perubahan pada kode program yang bersifat core/inti atau fundamental dari sofware tersebut.
  • Perubahan core software ke 1 >> 2.0.0
  • Perubahan core software ke 2 >> 3.0.0
  • Perubahan core software ke 3 >> 4.0.0

5 comments:

  1. oh begitu ya,, ane suka bingung kadang ada suka rc2 rc3 :D

    ReplyDelete
  2. siplah.. sepertinya agan dvd player skrg udah lebih mengerti.. sip lah gan

    ReplyDelete
  3. wah jadi merasa tambah cerdas, tulisan yang mantap

    ReplyDelete