• Tidak ada hasil yang ditemukan

Mengembangkan Software yang Lebih Sederh

N/A
N/A
Protected

Academic year: 2018

Membagikan "Mengembangkan Software yang Lebih Sederh"

Copied!
10
0
0

Teks penuh

(1)

Mengembangkan Software yang Lebih Sederhana dengan

Extreme Programming (XP)

Dalam pengembangannya, sebuah software atau perangkat lunak seperti halnya sebuah rumah, efisiensinya terletak pada terpenuhinya semua kebutuhan - kebutuhan yang dibutuhkan oleh pemiliknya baik itu dilihat dari segi fungsinya maupun kenyamanan pemiliknya dalam penggunaan semua sumber atau resources yang ada di dalamnya. Sebuah software atau perangkat lunak tidaklah hanya dilihat berdasarkan tingkat kepuasan penggunanya, tetapi bagaimana tingkatan pencapaian kebutuhan penggunanya dalam menyelesaikan berbagai permasalahan yang dihadapi. Dan untuk mendapatkan hal tersebut, maka sebuah perangkat lunak dalam pengembangannya membutuhkan metode atau cara dan juga proses yang tepat. Software process model adalah proses rangkaian penanganan sebuah perangkat lunak yang didasari atas standar pertimbangan-pertimbangan tertentu yang memungkinkan sebuah perangkat lunak dapat mencapai kesempurnaan untuk memenuhi kebutuhan - kebutuhan pengguna dalam menyelesaikan permasalahan - permasalahan yang dihadapi.

“Mengapa dalam pembuatan software atau perangkat lunak membutuhkan proses?”.

Tentu saja untuk mendapatkan software atau perangkat lunak yang berkualitas tinggi dan handal (reliable) dalam pengembangannya membutuhkan metode dan proses untuk mendapatkan hasil yang sesuai kebutuhan. Misalnya saja dalam pembuatan produk office tentunya sebuah produk tersebut tidak langsung jadi dengan sendirinya, dalam pembuatannyapun membutuhkan proses yang sangat panjang dan rumit serta memerlukan beberapa tahapan yang terencana, dari mulai spesifikasi kebutuhan, perencanaan, pemodelan atau design, kontruksi dan pengujian, serta pemeliharaan.

(2)

menggambarkan tahapan-tahapan yang sering disebut sebagai pendekatan System Development Life Cycle (SDLC).

Untuk membangun sistem perangkat lunak yang handal (reliable) tentunya dihadapkan pada kondisi terkini, perancangan sebuah perangkat lunak ditentukan berdasarkan jenis perangkat lunak yang akan dibangun. Perbedaan tahapan pembangunan perangkat lunak itu sendiri biasanya disebut dengan Software Process Model.

Setiap software engineer harus memahami dan mengikuti tahapan-tahapan yang telah ditetapkan di dalam software engginering, sebagaimana definisi yang dikeluarkan oleh IEEE Standard 610.12.

Software engineering is "(1) the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software," and "(2) thestudy of approaches as in (1)."

Oleh karena itu dalam pengembangan sebuah sistem perangkat lunak, setiap software engineer harus memilih model proses perangkat lunak yang paling tepat sehingga seorang software engineer mendapatkan kemudahan dalam mengelola dan mengendalikan proses pembangunan sistem, tahap demi tahap yang akan dilakukan. Walaupun pada dasarnya pembangunan sistem adalah pekerjaan tim, namun setiap anggota tim yang lain juga harus paham bagaimana sebuah proses pembangunan sistem tersebut berjalan sehingga dapat menempatkan posisinya sesuai dengan tahapan yang sedang berjalan agar hasil yang dicapai juga maksimal.

Dalam membangun sebuah perangkat lunak atau software, Software Process Model memberikan suatu standarisasi bagi seorang developer atau pengembang bagaimana proses pembuatan perangkat lunak atau software itu dimulai dan bagaimana pembuatan perangkat lunak itu harus diproses.

(3)

perangkat lunak mengantar developer pada tahap-tahap proses selanjutnya, setiap informasi - informasi yang didapatkan pada tahap - tahap sebelumnya akan menentukan informasi - infromasi yang akan diperoleh developer pada tahap-tahap selanjutnya, hal ini membuktikan bahwa keterkaitan setiap tahap proses dalam membuat sebuah perangkat lunak itu memiliki hubungan yang sangat erat.

Model proses pengembangan perangkat lunak berawal dengan model waterfall yang sangat linear dan sekuensial, hingga unified process yang merupakan model pengembangan untuk sistem berorientasi objek. Semua model tersebut masih memiliki kelemahan mendasar yaitu masih kurang bisa mengatasai perubahan requirement atau kebutuhan yang begitu cepat dari pihak client.

Software process model merupakan hal terpenting atau salah satu aspek utama dalam proses pembuatan perangkat lunak yaitu pemodelan sistem, tanpa adanya pemodelan sistem maka suatu sistem akan bisa jadi gagal untuk di kembangkan karena tahap - tahapnya yang kurang terjadwal, terencana, dan terkonsep atau terorganisir dengan baik dari segi biaya, sumber daya, tenaga, maupun estimasi waktu proses pembuatan sistem sehingga akan menimbulkan permasalahan.

Permasalahan utama yang sering muncul dalam sebuah pengembangan proyek perangkat lunak adalah perubahan requirement atau kebutuhan yang begitu cepat. Hal ini terjadi sebagai akibat perubahan -perubahan yang muncul baik pada aspek bisnis maupun teknologi yang berlangsung lebih cepat daripada proses pengembangan perangkat lunak itu sendiri.

Untuk mengatasi masalah yang dipaparkan di atas muncullah yaitu model proses pengembangan perangkat lunak yaitu Extreme Programming (XP).

“Apa itu Extreme Progamming (XP)?”

(4)

Extreme Programming (XP) ini digunakan untuk mengatasi masalah requirement atau kebutuhan yang tidak jelas dan sering berubah-ubah dari pihak pengguna. Extreme Programming dimunculkan untuk menangani perubahan - perubahan yang biasanya sering terjadi pada saat pengembangan berlangsung bahkan pada saat proses pengembangan sudah hampir berakhir dan berhasil.

“Kapan model Extreme Programming ini tepat digunakan?”

Penggunaan sebuah model pengembangan perangkat lunak atau sistem tidaklah sembarangan. Extreme Progamming itu sendiri tepat digunakan jika: keperluan berubah sangat cepat hal ini biasanya dari pihak pengguna, tingginya resiko terhadap perubahan, terdapat proyek dengan tantangan baru, memiiki sedikit tim programmer yang hanya sekitar 2-10 orang saja, mampu mengotomasikan tes, dan adanya peran serta pelanggan secara langsung.

Menyinggung masalah Agile, terdapat suatu istilah yang disebut Agility. Apa yang dimaksud dengan Agility itu?

Menurut Ivar Jacabson, agility mengandung pengertian bahwa perubahan (change) merupakan “hati” dan “jiwa” dari perangkat lunak. Maksudnya adalah bahwa perubahan terhadap requirement pelanggan, silih bergantinya anggota tim dan perubahan kebutuhan teknologi yang berimplikasi terhadap produk yang dihasilkan merupakan suatu hal yang sangat wajar terjadi. Hampir semua proyek pengembangan perangkat lunak pasti mengalami hal tersebut. Agile proses menekankan pada aktifitas kontruksi (desain dan koding). Agile Process mengeliminasi sebagian besar waktu untuk melakukan perencanaan sistem dan berusaha sebisa mungkin mematuhi jadwal deliver sistem yang telah dijanjikan. Requirements yang dibutuhkan secara langsung di-drive oleh pelanggan itu sendiri, dan apabila terjadi perubahan terhadap requirements tersebut, pengembang dituntut mampu beradaptasi dengan perubahan yang terjadi.

(5)

Extreme Programming adalah sebuah model pengembangan sistem yang menyederhanakan berbagai tahapan proses pengembangan tersebut agar tercapainya peningkatan efisiensi dan fleksibilitas sebuah proyek pengembangan perangkat lunak. Bahkan, menurut Shahriar Mohammadi, Bahman Nikkhahan, dan Sahar Sohrabi (2009) dalam jurnalnya yang berjudul Challenges of user Involvement in Extreme Programming projects, Extreme Programming merupakan model yang tangkas dan banyak dipakai dalam perusahaan karena praktik Extreme Programming semuanya dilakukan untuk kepuasan pelanggan. Extreme Programming tidak hanya berfokus pada source code atau coding, tetapi meliputi seluruh area pengembangan.

Fleksibilitas merupakan tuntutan pasar yang senantiasa menghendaki perusahaan mampu menghasilkan produk dan jasa yang memenuhi kebutuhan konsumen yang selalu mengalami perubahan dan perbaikan. Kemampuan perusahaan untuk melakukan penyesuaian dengan cepat setiap perubahan kebutuhan konsumen tersebut menjadi kunci yang menentukan keberhasilan dalam menempatkan diri setapak lebih maju dari perusahaan lain atau perusahaan pesaing.

(6)

relevan lagi. Extreme Programming (XP) mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut, sehingga perangkat lunak yang dikembangkan menjadi lebih adaptif dan juga fleksibel. Dalam hal ini juga tim Extreme Progamming harus secara intensif berhubungan dengan client sehingga apa yang diinginkan oleh client untuk sistem atau perangkat lunak yang sedang dikembangkan sesuai dengan apa yang diinginkan atau ditentukan oleh client. Sehingga tujuan pengembangan sistem atau perangkat lunak dapat diselesaikan dengan cepat.

Model Extreme Programming ini mengedepankan proses pengembangan yang lebih responsive terhadap kebutuhan client (“agile”) dibandingkan dengan model – model tradisional lainnya sambil membangun suatu perangkat lunakdengan kualitas yang lebih baik.

Tujuan utama dari Extreme Programming (XP) adalah menurunkan biaya dari adanya perubahan perangkat lunak. Dalam model pengembangan tradisional, kebutuhan sistem ditentukan pada tahap awal pengembangan proyek dan bersifat fixed. Hal ini berarti biaya terhadap adanya perubahan kebutuhan yang terjadi pada tahap selanjutnya akan menjadi sangat mahal. Extreme Programming (XP) diarahkan untuk menurunkan biaya dari adanya perubahan dengan memperkenalkan nilai-nilai basis dasar, prinsip dan praktis. Dengan menerapkan XP, pengembangan suatu sistem haruslah lebih fleksibel terhadap perubahan.

Extreme Programming (XP) muncul menawarkan sebuah disiplin baru dalam pengembangan perangkat lunak secara agile. Nilai dasar yang terkandung di dalam Extreme Programming adalah : Komunikasi (Communication), kesederhanaan (Simplicity), umpan balik (Feedback), keberanian (Courage) dan Quality Work.

(7)

informasi perangkat lunak yang dibangun semuanya hilang, maka masih ada data yang lain pada pihak developer yang masih utuh. Modal utama pair progamming adalah adanya kekompakan yang erat antar developer.

Kesederhanaan (Simplicity), Dengan menggunakan Extreme Programming, artinya tim developer harus tetap melakukan semuanya dengan sederhana, karena salah satu nilai dasar dari Extreme Programming adalah mencoba untuk selalu mencari solusi yang paling sederhana dan paling praktis. Gunakanlah method yang mudah, pendek atau tidak terlalu rumit dalam pembuatan desain serta hilangkanlah fitur-fitur yang tidak berguna. Inilah yang membedakan Extreme Programming dengan metodologi pengembangan sistem konvensional lainnya. Extreme Programming berfokus pada kebutuhan saat ini dibandingkan kebutuhan besok

Umpan balik (Feedback), yaitu memberikan umpan balik kepada sesama anggota tim maupun pihak-pihak lain yang terlibat dalam pengembangan perangkat lunak. Dalam hal ini seharusnya mengutarakan selalu pikiran dan mendiskusikan kesalahan-kesalahan yang muncul selama proses pengembangan serta mendengarkan selalu pendapat rekan yang lain, dengan adanya umpan balik inilah akan disadari bagian mana yang salah atau bisa ditingkatkan lagi dari perangkat lunak yang dikembangkan.

(8)

masalah yang kompleks untuk satu hari, lalu memcahkan masalah dengan cepat pada hari berikutnya, jika hanya mereka gigih.

Menghormati (Respect), Pentingnya respect terhadap anggota team lainnya karena dengan siklus pendek dan integrasi continue, programmer tidak boleh melakukan perubahan yang dapat merusak kompilasi dan menyebabkan keberadaan unit uji gagal atau memperlambat kerja team. Respects tiap individu akan selalu menghasilkan kualitas tinggi.

Penerapan Extreame Programming bisa dilakukan di banyak perusahaan atau organisasi. Sebuah organisasi misalnya seperti software house atau pengembangan sebuah software atau perangkat lunak dapat menerapkan Extreme Programming karena Extreme Programming mengedepankan Extreme Programming life cycle.

Extreme Programming sangat menghemat waktu untuk membangun atau membuat sebuah sistem perangkat lunak. Dalam software house¸ penerapan Extreme Programming dapat dilakukan karena stuktur kerja dan struktur organisasi yang menyerupai Extreme Programming. Pada organisasi software house terdapat analis, desainer, programmer, dan tester. Oleh karena itu Extreme Programming sangat tepat dan cocok di implementasikan untuk software house.

Menurut Presman dalam bukunya yang berjudul Software Engineering, edisi keenam, proses Extreme Programming memiliki kerangka kerja yang terbagi menjadi empat konteks aktivitas utama. Empat konteks tersebut adalah lanning, design, coding, dan testing. Keempat aktivitas inilah yang akan menghasilkan sebuah perangkat lunak yang didasari dengan konsep model Extreme Programming.

1Planning, berfokus untuk mendapatkan gambaran fitur dan fungsi

(9)

merupakan kelemahan bagi model ini. Terlepas dari semua hal tersebut, Extreme Programming menjadi sebuah model

2Tahap Design pada model proses Extreme Programming merupakan

panduan dalam membangun perangkat lunak yang didasari dari cerita klien sebelumnya yang telah dikumpulkan pada tahap planning. Dalam XP, proses design terjadi sebelum dan sesudah aktivitas coding berlangsung. Artinya, aktivitas design terjadi secara terus-menerus selama proses pengembangan aplikasi berlangsung.

3Coding, Setelah menyelesaikan gambaran dasar perangkat lunak dan

menyelesaikan design untuk aplikasi secara keseluruhan, XP lebih merekomendasikan tim untuk membuat modul unit tes terlebih dahulu yang bertujuan untuk melakukan uji coba setiap cerita dan gambaran yang diberikan oleh klien. Setelah berbagai unit tes selesai dibangun, tim barulah melanjutkan aktivitasnya ke penulisan coding aplikasi. XP menerapkan konsep Pair Programming dimana setiap tugas sebuah modul dikembangkan oleh dua orang programmer. XP beranggapan, 2 orang akan lebih cepat dan baik dalam menyelesaikan sebuah masalah. Selanjutnya, modul aplikasi yang sudah selesai dibangun akan digabungkan dengan aplikasi utama.

4Testing, Setelah semua modul selesai dan dikumpulkan ke dalam

sebuah sistem yang sempurna, maka tim XP akan melakukan pengujian penerimaan atau acceptance test. Pada tahap ini, aplikasi akan langsung diuji coba oleh user dan client agar mendapat tanggapan langsung mengenai penerapan gambaran dan cerita yang telah dilakukan sebelumnya.

(10)

sederhana. Semua ini karena XP mengacu pada proses pengembangan agile mo=ethods yang memiliki prinsipprinsip kesederhanaan.

Extreme Programming mempermudah jembatan komunikasi antara pihak user atau client dan pihak pengembang. Pihak user dapat langsung memonitor proses pengembangan dengan onsite customer tanpa kekakuan, dan pihak pengembang dapat lebih sering berkomunikasi langsung dengan representasi dari pihak bisnis. selain itu Extreme Programming ini membuat seorang developer tidak bekerja secara berlebihan. Sehingga Extreme Progamming ini mempermudah pengembangan perangkat lunak dengan lebih sederhana.

Sumber:

Mohammadi, S., B. Nikkahan, S. Sohrabi. 2009. Challenges of user Involvement in Extreme Programming projects. International Journal of Software Engineering and Its Applications. 3(1): 20.

R. Pressman, “Software Engineering: A Practitioner’s Approach”, 6th edition,

McGraw-Hill, 2005.

Referensi

Dokumen terkait

Hasil analisis data atas Kesimpulannya adalah ada pengaruh positif antara variabel X1 kesiapan belajar dan variabel X2 pemanfaatan sumber belajar terhadap variabel Y

Tabel 33 merupakan hasil penghitungan berdasarkan penjadwalan yang dilakukan oleh perusahaan, dapat dilihat bahwa jika dibandingkan dengan hasil penjadwalan dengan

11 terpengaruh oleh struktur modal dengan asumsi bahwa tidak ada pajak, biaya kebangkrutan, individu dan perusahaan dapat meminjam atau meminjamkan pada tingkat bunga pasar

Muncul no pemesanan dengan proses pengiriman penukaran pada menu Pengaturan Pengiriman status

Berdasarkan pada penelitian yang telah dilakukan, dapat disimpulkan bahwa: (1) Latihan jalan tandem dapat meningkatkan keseimbangan pada lansia, (2) Latihan balance

Untuk mengatasi masalah sering terjadinya kebuntuan saringan pasir lambat akibat kekeruhan air baku yang tinggi, dapat ditanggulangi dengan cara modifikasi disain

Layanan Perkantoran Layanan Internal (Overhead) Layanan Dukungan Manajemen Eselon I Jumlah Badan Swasta yang Terkendali Penggunaan Bahasanya Jumlah Badan Publik yang

Tujuan penelitian ini adalah untuk mengetahui kuantitas penggunaan antibiotik dan perubahan pola penggunaannya dilihat dari DU90%, kesesuaian penggunaan antibiotik untuk