Continuous Integration

Lagi pengen ngeblog masalah software engginering, dulu waktu kuliah, pemahaman mengenai SE hanya sekitar coding dan coding. karena mnurut gw waktu itu, coding merupakan jantung pembuatan produk di bisnis ini, terlepas dari adanya sistem analis atau project manager, tetep aja ujung ujungnya harus ngoding, supaya produk yang dipesen jadi.

setaun jadi developer gw menyadari, harus ada integrasi dengan programmer lain. gw menyadari pentingnya ini ilmu di kantor ke tiga gw. yang notebene harus bekerja sama dengan programmer dalam dan luar negeri (kantor pusatnya di US). continuous integration adalah praktek dalam software development dimana team member diwajibkan untuk sesering mungkin mengintegrasikan kerjaannya dengan developer yang lain. Biasanya ritmenya per hari atau sering disebut daily build. Nah ini sering banget gw lakukan, tiap pagi sebelum ngoding, kita diwajibkan update source dari svn yang telah diintegrasikan dengan progremmer lain.

kalo kata si om martin fowler seperti ini

Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day.

Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.

Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.

Jujur ini ga mudah, kenapa? karena setiap hari ada beberapa bagian yang bentrok dengan function yang dibuat programmer lain, walaupun wilayah pengerjaan nya berbeda. dan sedikit memakan waktu. tapi apakah hal itu merupakan cost yang merugikan karena memakan waktu? menurut gw kgak, pertama, kita jadi lebih bisa menemukan bug yang harus segera di patch, sebelum produk itu sampai ke user. Kita juga ada proses pengujian internal, sebelum pngujian secara live.

Trus sama aja dung? kenapa integrasi nya tidak dilakukan belakangan ketika semua function dibuat? ibaratnya deffect diperbaikin belakangan, yang penting kelar.

bisa juga, tapi ga efisien karena deffect yang ditemukan bisa jadi lolos, tanpa diketahui tester dan programmer. sehingga ujung ujungnya ke user, image produk kita ke user akan semakin turun.

deteksi bug sedini mungkin dalam sebuah produksi software, merupakan elemen penting,. dan continuous integration lah solusinya,

Berikut adalah ilustrasi mengenai Continuous Integration (diambil dari IBM.com).

  • Developer check-in/memasukkan codenya ke dalam Software Configuration Management (SCM) atau dikenal juga dengan nama Version Control
  • Integration Build Server akan memonitor perubahan2 pada SCM (setiap kali developer melakukan [1] )
  • Eksekusi build yang biasanya terdiri dari berbagai jenis testing, unit testing, coverage testing, dan integration testing
  • Kirimkan hasil build ke team member project
  • Deploy aplikasi yang sukses di build ke development application yang selanjutnya bisa digunakan untuk melakukan functional testing oleh tester.
Jadi ego setiap programmer bisa diakomodir dan diintegrasi secara optimal. kapan kapan akan gw ulas lagi beberpa teori yang mendukung dalam software engginering
happy Software Engginering
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s