Selasa, 17 September 2013

AGILE SOFWARE DEVELOPMENT

 ON DECEMBER 25, 2009
Akhir-akhir ini perkembangan perangkat lunak semakin hari semakin pesat, permintaan akan pengadaan perangkat lunak di setiap organisasi perusahaan maupun instansi-instansi pemerintahan semakin meningkat. Hal tersebut dikarenakan tumbuhnya kesadaran dari para pihak pengelola perusaaan atau pejabat tinggi di suatu instansi akan pentingnya penerapan perangkat lunak dalam membantu proses bisnis yang ada. Dengan adanya perangkat lunak ini, maka akan semakin meningkatkan kinerja, mempercepat proses bisnis serta dapat mengurangi biaya (cost) yang harus dikeluarkan oleh pihak perusahaan atau sebuah instansi.
Untuk pembuatan atau pengembangan suatu perangkat lunak terdapat beberapa hal yang harus di perhatikan, mulai dari sumber daya manusia (resources) yang menangani proyek tersebut, sampai dengan metode apa yang harus diterapkan dalam proses pengembangan perangkat lunaknya. Terdapat banyak metode dalam proses pengembangan perangkat lunak salah satunya yaitu metode Agile Sofware Development.
Agile Software development adalah salah satu metodelogi dalam pengembangan sebuah perangkat lunak (software). Kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Kata ini digunakan sebagai kata yang menggambarkan konsep model proses yang berbeda dari konsep model-model proses yang sudah ada. Konsep Agile software development dicetuskan oleh Kent Beck dan 16 rekannya dengan menyatakan bahwa Agile Software Development adalah cara membangun software dengan melakukannya dan membantu orang lain membangunnya sekaligus.
Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klient lebih penting daripada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana. Namun demikian, sama seperti model proses yang lain, agile software development memiliki kelebihan dan tidak cocok untuk semua jenis proyek, produk, orang dan situasi. Agile Software Development memungkinkan model proses yang toleransi terhadap perubahan kebutuhan sehingga perubahan dapat cepat ditanggapi. Namun di sisi lain menyebabkan produktiitas menurun.
Salah satu cirri dari Agile Software Development adalah tim yang tanggap terhadap perubahan. Mengapa? Karena perubahan adalah hal yang utama dalam membangun software: perubahan kebutuhan software, perubahan anggota tim, perubahan teknologi dll. Selain itu Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, anatara developer dan managernya. Cirri lain adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang diterapkan oleh Agile Alliance. Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development :
-          Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus
-          Menerima perubahan kebutuhan, sekalipun diakhir pengembangan
-          Penyerahan hasil/software dalam hitungan waktu dua minggi sampai dua bulan
-          Bagian bisnis dan pembangun kerja sama tiap hari selama proyek berlangsung
-          Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukung dan yang dipercaya untuk dapat menyelesaikan proyek.
-          Komunikasi dengan berhadapan langsung adalah komunikasi yang efektis dan efisien
-          Software yang berfungsi adalah ukuran utama dari kemajuan proyek
-          Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan.
-          Perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile
-          Kesederhanaan penting
-          Arsitek. Kebutuhan dan desain yang bagus muncul dari tim yang mengatur dirinya sendiri
-          Secara periodic tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.
Kedua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat agile. Dengan prinsip-prinsip tersebut agile process model berusaha untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya :
-          Kebutuhann software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berjalannya proyek.
-          Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan
-          Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.
Beberapa jenis proses peomodelan yang termasuk kedalam metode Agile Software Development : Extreme Programming (XP), Adaptif Software Development (ASD), Dynamic System Development Method (DSDM), Scrum, Crystal, Feature Driven Development (FDD), Agile Modeling (AM).
SCRUM
memiliki prinsip:
-          Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain
-          Proses dapat beradaptasi terhadap perubahan dan bisnis
-          Proses menghasilkan beberapa software increment
-          Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
-          Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
-          Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
Aktifitas Scrum : Backlog, Sprint, Scrum Meetings, Demo
Aktifitas Backlog : Backlog adalah daftar kebutuhan yang jadi priorias klien. Daftar dapat bertambah.
Aktifitas Sprints : unit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang diterapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-box (biasanya 30hari). Selama proses ini berlangsung backlog tidak ada penambahan.
Aktifitas Scrum Meeting : Pertemuan 15 menit perhari untuk evaluasi apa yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selanjutnya.
Aktifitas Demo : penyerahan software increment ke klien didemonstrasikan dan dievaluasi oleh klien.
Dengan menerapkan metode agile ini diharapkan pembangunan atau pengembangan perangkat lunak bisa terkontrol dengan baik dan selesai tepat pada waktu yang telah ditetapkan.

Sumber : http://ilmukuilmumu.wordpress.com

Penerimaan Mahasiswa IKATAN KERJA PLN

  KABAR GEMBIRA UNTUK PUTRA PUTRI TERBAIK INDONESIA! “The Future of Energy is Electricity”  Be a Global Energy and Industry’s Expert Leaders...