• Tidak ada hasil yang ditemukan

LATAR BELAKANG PRINSIP AGILE SOFTWARE DEVELOPMENT

N/A
N/A
Protected

Academic year: 2021

Membagikan "LATAR BELAKANG PRINSIP AGILE SOFTWARE DEVELOPMENT"

Copied!
17
0
0

Teks penuh

(1)

LATAR BELAKANG

Agile Software development adalah salah satu metodologi dalam pengembangan sebuah perangkat lunak. 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 proses saling mempengaruhi dalam hubungan timbal balik (interaksi) lebih penting dari pada proses yg memebutuhkan banyak 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.

PRINSIP AGILE SOFTWARE DEVELOPMENT

Salah satu ciri dari Agile Software Development adalah tim yang tanggap terhadap perubahan. 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

(2)

adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development :

1. Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus.

2. Menerima perubahan kebutuhan, sekalipun diakhir pengembangan 3. Penyerahan hasil/software dalam hitungan waktu dua minggi sampai

dua bulan

4. Bagian bisnis dan pembangun kerja sama tiap hari selama proyek berlangsung

5. Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukung dan yang dipercaya untuk dapat menyelesaikan proyek.

6. Komunikasi dengan berhadapan langsung adalah komunikasi yang efektis dan efisien

7. Software yang berfungsi adalah ukuran utama dari kemajuan proyek 8. Dukungan yang stabil dari sponsor, pembangun, dan pengguna

diperlukan untuk menjaga perkembangan yang berkesinambungan. 9. Perhatian kepada kehebatan teknis dan desain yang bagus

meningkatkan sifat agile 10. Kesederhanaan penting

11. Arsitek. Kebutuhan dan desain yang bagus muncul dari tim yang mengatur dirinya sendiri

12.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 tiga asumsi penting tentang proyek software pada umumnya :

(3)

1. Kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berjalannya proyek.

2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan

3. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

FAKTOR MANUSIA PADA AGILE PROCESS MODEL

Kunci faktor manusia pada model ini adalah proses didasari pada kebutuhan orang dan tim bukan sebaliknya, Untuk dapat sukses menerapkan model proses ini, pada faktor manusia ada beberapa kunci penting:

a. Kompetensi: ketrampilan dalam membangun dan pengetahuan tentang proses membangun

b. Fokus: memiliki fokus yang sama sekalipun peran dalam tim berbeda c. Kolaborasi : kerja sama dengan klien, anggota tim dan manajer.

d. Kemampuan ambil keputusan : tim pembangun memiliki otonomi dalam pengambilan keputusan terkait teknis dan proyek

e. Kemampuan fuzzy problem-solving: mampu menyelesaikan memilah masalah yang penting untuk dipecahkan segera atau nanti.

f. Saling percaya dan hormat: kekompakan tim yang didukung oleh rasa percaya dan saling menghargai satu sama lain.

g. Manajemen diri: tim mengatur diri untuk selesaikan proyek, mengatur proses untuk disesuaikan dengan lingkungannya, tim menjadwal dirinya untuk menyerahkan hasil

METODE KERJA AGILE

Dalam proses pengembangan agile kita mengenal dengan iterasi atau perulangan. Singkatnya jika suatu proyek pengembangan software dikerjakan dengan menggunakan metode Agile, maka selama waktu

(4)

pengerjaannya akan selalu dijumpai proses pengembangan yang dilakukan berulang. Setiap perulangan (iterasi) meliputi berbagai kegiatan yang wajib dilakukan dalam proyek pengembangan software itu sendiri yaitu :

1. Perencanaan

2. Requirements Analysis : Langkah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini bisa malakukan sebuah penelitian, wawancara atau study literatur. Seorang sistem analis akan menggali informasi sebanyak-banyaknya dari user sehingga akan tercipta sebuah sistem komputer yang bisa melakukan tugas-tugas yang diinginkan oleh user tersebut. Tahapan ini akan menghasilkan dokumen user requirment atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan sistem. Dokumen ini lah yang akan menjadi acuan sistem analis untuk menterjemahkan ke dalam bahasa pemprogram.

3. Desain : Proses desain akan menerjemahkan syarat kebutuhan ke sebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada : struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirment. Dokumen inilah yang akan digunakan

proggrammer untuk melakukan aktivitas pembuatan sistemnya.

4. Coding : Coding merupan penerjemahan design dalam bahasa yang bisa dikenali oleh komputer. Dilakukan oleh programmer yang akan meterjemahkan transaksi yang diminta oleh user. Tahapan ini lah yang merupakan tahapan secara nyata dalam mengerjakan suatu sistem. Dalam artian penggunaan komputer akan dimaksimalkan dalam tahapan ini.

5. Testing : testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut dan kemudian bisa diperbaiki.

(5)

6. Dokumentasi

SYARAT DAN CARA ITERASI

Skema Aktivitas Per Tahapan dan Iterasi

(6)

o scope concurrence

o initial requirement definition o plan conarrence

o risk acceptance o project feasibility o project plan

o portokolio compliance

2. Life cyle architecture (LCA) o vision stability o architecture stability o risc acceptance o project feasibility o project plan o enterprise compliance 3. Initial operational capability (LOC)

o system stability

o prepared stakeholders o risk acceptance

o cost and estmate

4. Product release (PR)

o business aceeptance o operation acceptance o support acceptance

o coast and estimate acceptance

Detail Aktivitas Per Tahapan dan Iterasi Pada bagian ini akan dipaparkan penjelasan per aktifitas yang terdapat dalam setiap tahapan dan iterasi AUP.

(7)

1. Inception

Banyak Iterasi : 1 iterasi Tujuan :

a. Mendefinisikan batasan-batasan lingkup proyek,

b. Memperoleh estimasi kasar terhadap biaya dan waktu, c. Mendefinisikan resiko yang mungkin terjadi,

d. Menentukan kemampuan Perusahaan terhadap pengerjaan proyek (project feasiblility),

e. Mempersiapkan lingkungan pengerjaan proyek (tim, tempat kerja, instalasi, dsb)

2. Elaboration

Banyak Iterasi : 1 – 2 iterasi Tujuan :

a. Mengidentifikasikan arsitektur sistem yang akan diimplementasikan,

b. Memvalidasi arsitektur yang hendak diimplementasikan 3. Construction

Banyak Iterasi : 2 – 8 iterasi Tujuan :

a. Memodelkan, membangun dan mengujis sistem. b. Membuat dokumentasi yang mendukung.

4. Transition

Banyak Iterasi : 1 - 2 iterasi Tujuan :

a. Menguji sistem secara keseluruhan.

(8)

Maka jelas bahwa satu kali iterasi bertujuan menghasilkan modul atau fungsionalitas yang deliverable pada client. Setiap iterasi umumnya berlangsung dalam jangka waktu 1 sampai 4 minggu.

Langkah-langkah pengembangan perangkat lunak Agile adalah suatu filosofi yang mendorong kepuasaan pelanggan, penyerahan hasil perangkat lunak secara bertahap, tim proyek yang kecil, metoda informal, dan proses pengembangan perangkat lunak dengan perancangan minimal namun tetap efektif. Agile membantu mempermudah para pengembang perangkat lunak untuk melakukan penyerahan produk tepat waktu dari suatu tahap operasional perangkat lunak yaitu analisa dan desain.

AGILE PROCESS MODEL

Berikut ini adalah model-model proses yang termasuk agile process model :

1. XP (Extreme Programming)

a) Dipublikasikan oleh Kent Beck tahun 1999 b) Menggunakan pendekatan berorientasi objek

c) Aktifitas Perencanaan : pengumpulan user stories dari klien yang klien tetapkan

prioritasnya. Setiap story ditetapkan harga dan lama pembangunan, jika terlalu besar, story dapat dipecah menjadi beberapa story yang lebih kecil. Periksa dan pertimbangkan resiko

d) Aktifitas Desain: berprinsip: sederhana. Memanfaatkan CRC (Class-Responsibility-Collaborator) untuk identifikasi dan mengatur class-class di konsep OO. Jika menemui kesulitan, lakukan refactoring, yaitu mengembangkan desain dari program setelah ditulis

(9)

e) Aktifitas Pengkodean: siapkan unit test sebelum pengkodean dipakai sebagai focus pemrogram untuk membuat program. Pair programming dilakukan untuk real time program solving dan real time quality assurance

f) Aktifitas Pengujian: menggunakan unit test yang dipersiapkan sebelum pengkodean.

g) Metode extreme programming termasuk ke dalam metode agile karna Metodologi ini mengedepankan proses pengembangan yang lebih responsive terhadap kebutuhan customer seperti pada metode agile dibandingkan dengan metode-metode tradisional sambil membangun suatu software dengan kualitas yang lebih baik. 2. Scrum

a) Diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an b) Pengembangan berikutnya dilakukan oleh Schwaber dan Beedle.

c) Metode scrum termasuk ke dalam metode agile. Karena metode Agile menggunakan prinsip perulangan, maka selama waktu pengerjaannya akan selalu dijumpai proses pengembangan yang dilakukan berulang. Setiap perulangan (iterasi) meliputi berbagai

(10)

kegiatan yang wajib dilakukan dalam proyek pengembangan sofware itu sendiri, yaitu perencanaan, requirements analysis, desain, coding, testing, dan dokumentasi. Maka jelas bahwa satu kali iterasi bertujuan menghasilkan modul atau fungsionalitas yang deliverable pada client. Setiap iterasi umumnya berlangsung dalam jangka waktu 1 sampai 4 minggu. Sedangkan pada scrum dikenal istilah sprint duration yaitu rentang waktu satu kali iterasi, jadi jika suatu tugas atau masalah tidak di temukan solusi sampai sprint selesai maka tugas tersebut akan di kembalikan dalam proses backlog dan akan di sertakan pada proses sprint berikutnya.

d) Scrum memiliki prinsip:

o ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan

memberdayakan satu sama lain

o proses dapat beradaptasi terhadap perubahan teknis dan bisnis

o proses menghasilkan beberapa software increment

o pembangunan dan orang yang membangun dibagi dalam tim yang kecil

o dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun

o proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan

(11)

e) Aktifitas Scrum : Backlog, Sprints, Scrum Meetings, Demo

f) Aktifitas Backlog : Backlog adalah daftar kebutuhan yang jadi prioritas klien. Daftar dapat bertambah.

g) Aktifitas Sprints: unit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-box (biasanya 30hari). Selama proses ini berlangsung backlog tidak ada penambahan.

h) Aktifitas Scrum Meeting: pertemuan 15 menit perhari untuk evaluasi apa yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selanjutnya.

i) Aktifitas Demo:penyerahan software increment ke klien didemonstrasikan dan dievaluasi oleh klien

Perbedaan Scrum dan XP

1. Scrum adalah sebuah proses manajemen proyek, XP adalah sebuah praktek pemrograman. Keduanya adalah "gesit" teknik dan sering digunakan bersama-sama.

2. Scrum menguraikan proses untuk mengidentifikasi dan katalogisasi pekerjaan yang perlu dilakukan, memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan atau wakil pelanggan, dan pelaksanaan yang bekerja menggunakan rilis iteratif.

(12)

3. Scrum tujuan utama adalah untuk mendapatkan perkiraan berapa lama akan pembangunan. XP lebih lanjut tentang pengembang membantu menyelesaikan pekerjaan secepat dan maintainably mungkin.

4. Beberapa perbedaan utama adalah bahwa scrum berfokus pada sprint pendek lebih terstruktur, dan log kembali memprioritaskan item. Beberapa XP fokus lebih pada pemrograman dipasangkan, memprioritaskan tugas, dan lebih pembangunan berbasis tes. Keduanya bekerja di iterasi dan keduanya cukup fleksibel untuk menangani proyek yang mudah menguap berubah.

5. Scrum merupakan salah satu komponen dari metodologi pengembangan Agile mengenai pertemuan harian untuk membahas kemajuan dan XP adalah menekankan metodologi yang berbeda sepasang ujian dulu pemrograman dan pembangunan.

Selain Scrum dan XP ada juga beberapa model process yang oleh beberapa sumber, dikategorikan masuk kedalam bagian dari Agile Model Process, diantaranya :

ADAPTIVE SOFTWARE DEVELOPMENT (ASD)

a) Diajukan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks.

b) Filosofi yang mendasari adalah kolaborasi manusia dan tim yang mengatur diri sendiri.

c) Aktifitas: Speculation, Collaboration dan Learning

d) Aktifitas Speculation : Adaptive cycle planning yaitu menggunakan informasi awal seperti misi dari klien, batasan proyek dan kebutuhan dasar untuk definisikan rangkaian software increment (produk software yang secara berkala diserahkan)

e) Aktifitas Collaboration : orang-orang yang bermotivasi tinggi bekerja sama: saling melengkapi, rela membantu, kerja keras, trampil di

(13)

bidangnya, dan komunikasikan masalah untuk hasilkan penyelesaian yang efektif.

f) Aktifitas Learning: tim pembangun sering merasa sudah tahu semua hal tentang proyek, padahal tidak selamanya begitu. Karena itu proses ini membuat mereka belajar lebih tentang proyek melalui 3 cara:

o Focus group: klien dan pengguna memberi masukan terhadap software

o Formal Technique Reviews: Tim ASD lengkap melakukan review

o Postmortems: Tim ASD lakukan instrospeksi pada kinerja dan

proses

DYNAMIC SYSTEMS DEVELOPMENT METHOD

a) menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan.

b) Membangun software dengan cepat: 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.

c) Aktifitas: feasibility study : siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM

d) Aktifitas: Business Study: susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi

e) Aktifitas: Functional model iteration : hasilkan incremental prototype yang perlihatkan fungsi software ke klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi

f) Aktifitas: Design and Build Iteration : cek ulang prototype yang dibangun untuk pastikan bahwa prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja

g) Aktifitas: Implementation: menempatkan software pada lingkungan sebenar sekalipun belum lengkap, atau masih ada perubahan.

(14)

h) DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP

KELEBIHAN DAN KEKURANGAN AGILE

Kelebihan Agile :

1. Meningkatkan rasio kepuasan pelanggan

2. Bisa melakukan review pelanggan mengenai software yang di buat lebih awal.

Kekurangan agile:

1. Total lama pengembangan menjadi lebih lama 2. Meningkatkan resiko kesalahan teknis

3. Proses pengembangan menjadi agak kurang terorganisir

IMPLEMENTASI

Metodologi agile project management dalam beberapa tahun terakhir telah banyak digunakan untuk mengembangkan, mengimplementasikan sistem teknologi informasi, seiring dengan mulai banyak diadopsinya konsep agile pada proses manufaktur dan produksi.

Konsep agile project management itu sendiri mengikuti life cycle diatas dengan menggabungkan konsep agility dalam prosesnya. Agility itu sendiri adalah kemampuan untuk membuat dan merespon perubahan (Highsmith, 2009). Dengan kata lain agility adalah kemampuan untuk mengkombinasikan flexibilitas dan stabilitas (Highsmith,2002). Dari

(15)

pengertian diatas bisa diambil titik temu bahwa agile project management adalah metodologi manajemen proyek yang mempunyai adaptabilitas yang tinggi terhadap perubahan yang terjadi di setiap elemen-elemennya. Salah satu ciri dari sebuah agility adalah adanya proses iterasi yang terus menerus dan evaluasi yang terus berjalan pada setiap proses yang dilewatinya.

Berikut contoh kasus Agile :

Pelaku industri mulai sadar bahwa untuk menyediakan produk yang murah, berkualitas dan cepat, perbaikan di internal perusahaan manufaktur adalah tidak cukup.

Peran serta supplier, perusahaan transportasi dan jaringan distributor adalah dibutuhkan.

Pada bagian produksi

o Bagian ini bertugas secara fisik melakukan transformasi dari bahan baku, bahan setengan jadi atau komponen menjadi produk jadi.

o Kegiatan produksi dalam konteks SCM tidak harus dilakukan dalam perusahaan.

o Banyak perusahaan melakukan outsourcing yaitu memindahkan kegiatan produksi ke pihak subkontraktor, sementara perusahaan konsentrasi ke kegiatan yang menjadi core competency mereka. Contoh perusahaan sepatu Nike.

o Dalam kegiatan produksi, konsep lean manufakturing yang

mementingkan efisiensi dan agile manufacturing yang menekankan pada fleksibilitas dan ketangkasan merespon perubahan adalah dua hal yang penting

KESIMPULAN

Dari model-model proses di atas dapat diambil beberapa poin penting:

(16)

2. Kebutuhan software tidak mudah untuk diidentifikasikan secara lengkap

3. Kerja sama dalam tim menentukan kelancaran pembangunan software Aktifitas yang terjadi di dalam Agile Model Process tetap mengandung aktifitas-aktifitas yang ada pada model proses generasi sebelumnya seperti waterfall, incremental, spiral dan RAD. Selain itu, model-model proses di atas tetaplah bukan model proses yang cocok untuk setiap jenis software. Dengan menerapkan metode agile ini diharapkan pembangunan atau pengembangan perangkat lunak bisa terkontrol dengan baik dan selesai tepat pada waktu yang telah ditetapkan.

Referensi

[1] Agile Software Development,

http://en.wikipedia.org/wiki/Agile_software_development, Sabtu 12 maret 2011

[2] Umi Proboyekti, Agile Model,

http://lecturer.ukdw.ac.id/othie/agile_model.pdf, Sabtu 5 maret 2011

[3] Metode Scrum, http://frenchfrieska.wordpress.com/2007/10/12/scrum/, 12 maret 16.05

[4] Ambler, Scott W. "An Introducation to Agile Modeling." Agile Modeling Home Page. 2001-2008.

Diakses di http://www.agilemodeling.com/essays/introductionToAM.htm. 07/09/08.

(17)

[5] Pressman, Roger S. Software Engineering : A Practitioner's Approach. 6th Ed. McGraw-Hall. NY.2005.

Referensi

Dokumen terkait

Berdasarkan inspeksi sanitasi yang dilakukan dengan lembar observasi di Pemandian Umum Pengging, nilai yang didapatkan telah memenuhi syarat berdasarkan Peraturan Menteri

Sistem pengendalian manajemen berpengaruh positif dan signifikan terhadap kinerja perusahaan. Pengendalian internal tidak berpengaruh terhadap kinerja

Hal ini sama seperti yang dikatakan Fauz dan Rosidi (2008) bahwa tingginya collateral assets yang dimiliki perusahaan akan mengurangi konflik kepentingan antara

Hipotesis dari penelitian ini yang pertama ketersediaan pangan rumah tangga miskin di desa Sumber Melati Diski Kecamatan Sunggal Kabupaten Deli Serdang dalam kategori

Analisis Yang Mempengaruhi Pilihan Mahasiswa dalam Memilih Jurusan Akuntansi. Faktor yang memepengaruhi mahasiswa memilih

Hasil penelitian adalah klasifikasi dan visualisasi data penyakit ISPA di wilayah Kecamatan Kaliwungu dengan metode Naïve Bayes yang didasarkan pada jenis ISPA,

Perpustakaan dengan koleksinya yang lengkap merupakan sumber utama dalam pelayanan informasi. Sebagai sumber informasi, koleksi perpustakaan tidak hanya dalam bentuk tercetak

Berdasarkan latar belakang dan fenomena di atas, serta uraian-uraian dari beberapa peneliti maka penulis tertarik untuk melakukan penelitian skripsi dengan judul “Pengaruh Sanksi