- 1
- 2
- Source: Extreme programming
- Extreme programming
- Industrial XP
- YAGNI
- Proses pengembangan perangkat lunak
- Test-driven development
- Adaptive software development
- Spesifikasi kebutuhan perangkat lunak
- Dynamic Systems Development Method
- Agile modeling
- Steam
- Extreme programming
- Extreme programming practices
- Pair programming
- Agile software development
- Team programming
- Interactive programming
- Extreme project management
- You aren't gonna need it
- Spike (software development)
- J (programming language)
3-D Sex and Zen: Extreme Ecstasy (2011)
Wifelike (2022)
M3GAN (2022)
Beaten to Death (2023)
Marriage Story (2019)
Fargo (1996)
The X-Treme Riders (2023)
The Yearning Of Maria D. (2018)
Battle Royale (2000)
Eastern Bandits (2012)
Silent Hill (2006)
Crakk: Jeetega… Toh Jiyegaa (2024)
Lara Croft: Tomb Raider (2001)
Twisters (2024)
Artikel: Extreme programming GudangMovies21 Rebahinxxi
Extreme Programming adalah salah satu dari pendekatan agile software development yang paling sering digunakan. Meskipun pekerjaan awal pada ide-ide dan metode yang terkait dengan XP terjadi pada akhir 1980-an, pekerjaan seminal pada subjek ini telah ditulis oleh Kent Beck. Extreme Programming diciptakan oleh Kent Beck selama pekerjaannya di proyek Chrysler Comprehensive Compensation System (C3). Beck menjadi pemimpin proyek C3 pada bulan Maret 1996 dan mulai memperbaiki metodologi pengembangan yang digunakan dalam proyek dan menulis buku tentang metodologi (pada bulan Oktober 1999, Extreme Programming Explained diterbitkan). Chrysler membatalkan proyek C3 pada Februari 2000, setelah tujuh tahun, ketika perusahaan diakuisisi oleh Daimler-Benz .
XP values
Beck mendefinisikan seperangkat nilai yang membentuk fondasi untuk semua pekerjaan yang dilakukan sebagai bagian dari XP — komunikasi (communication), kesederhanaan (simplicity), umpan balik (feedback), keberanian (courage), dan rasa hormat (respect). Masing-masing nilai ini digunakan sebagai penggerak untuk aktivitas, tindakan, dan tugas XP tertentu.
Untuk mencapai komunikasi yang efektif antara praktisi perangkat lunak dan pemangku kepentingan lain (misalnya, untuk membangun fitur dan fungsi yang diperlukan untuk perangkat lunak), XP menekankan kolaborasi yang erat, tetapi informal (verbal) antara pelanggan dan pengembang, pembentukan metafora yang efektif untuk mengkomunikasikan konsep-konsep penting, memberikan umpan balik yang berkelanjutan, dan menghindari dokumentasi yang banyak sebagai media komunikasi.
Untuk mencapai kesederhanaan , XP membatasi pengembang untuk merancang hanya kebutuhan mendesak, daripada mempertimbangkan kebutuhan masa depan. Tujuannya adalah untuk membuat desain sederhana yang dapat dengan mudah diimplementasikan dalam kode. Jika desain harus diperbaiki, itu dapat di-refactored di lain waktu.
Umpan balik berasal dari tiga sumber: perangkat lunak yang diimplementasikan itu sendiri, pelanggan, dan anggota tim perangkat lunak lainnya. Dengan merancang dan menerapkan strategi pengujian yang efektif, perangkat lunak (melalui hasil tes) memberikan umpan balik bagi agile team. XP menggunakan pengujian unit sebagai taktik pengujian utamanya. Ketika setiap kelas dikembangkan, tim mengembangkan pengujian unit untuk melaksanakan setiap operasi sesuai dengan fungsionalitas yang ditentukan. Ketika sebuah increment disampaikan ke pelanggan, user stories atau use case yang diterapkan oleh increment tersebut digunakan sebagai dasar untuk acceptance testing. Sejauh mana perangkat lunak mengimplementasikan luaran, fungsi, dan perilaku use case adalah bentuk umpan balik. Akhirnya, ketika kebutuhan baru diturunkan sebagai bagian dari perencanaan berulang, tim memberikan pelanggan umpan balik cepat mengenai dampak biaya dan jadwal.
Beck berpendapat bahwa kepatuhan yang ketat terhadap praktik XP tertentu menuntut keberanian. Kata yang lebih baik mungkin disiplin. Sebagai contoh, sering ada tekanan yang signifikan untuk merancang kebutuhan pada masa depan. Sebagian besar tim perangkat lunak menyerah, dengan alasan bahwa "merancang untuk besok" akan menghemat waktu dan upaya dalam jangka panjang. Tim agile XP harus memiliki disiplin (keberanian) mendesain untuk hari ini, mengakui bahwa kebutuhan pada masa depan dapat berubah secara dramatis, sehingga menuntut pengerjaan ulang yang substansial dari desain dan kode yang diimplementasikan.
Dengan mengikuti masing-masing nilai-nilai ini, tim agile menanamkan rasa hormat (respect) di antara anggotanya, antara pemangku kepentingan lain dan anggota tim, dan secara tidak langsung, untuk perangkat lunak itu sendiri. Ketika mereka berhasil mencapai pengiriman increment perangkat lunak, tim mengembangkan rasa hormat yang semakin besar terhadap proses XP.
Proses XP
Extreme Programming menggunakan pendekatan berorientasi objek sebagai paradigma pengembangan yang disyaratkan dan mencakup seperangkat aturan dan praktik yang terjadi dalam konteks empat kegiatan kerangka kerja: perencanaan (planning), desain (design), pengkodean (coding), dan pengujian (testing).
= Perencanaan (planning)
=Kegiatan perencanaan dimulai dengan mendengarkan — kegiatan pengumpulan kebutuhan yang memungkinkan anggota teknis tim XP untuk memahami konteks bisnis perangkat lunak dan untuk mendapatkan perkiraan yang luas untuk luaran yang dibutuhkan dan fitur serta fungsionalitas utama. Mendengarkan mengarah pada penciptaan serangkaian "stories" yang menggambarkan luaran, fitur, dan fungsionalitas yang diperlukan untuk perangkat lunak yang akan dibangun. Setiap stories ditulis oleh pelanggan dan ditempatkan pada kartu indeks (index card). Pelanggan memberikan nilai (yaitu prioritas) ke stories berdasarkan nilai bisnis keseluruhan dari fitur atau fungsi. Anggota tim XP kemudian menilai setiap stories dan menetapkan biaya (cost) — diukur dalam minggu pengembangan — untuk stories tersebut. Jika stories diperkirakan membutuhkan lebih dari tiga minggu pengembangan, pelanggan diminta untuk membagi stories menjadi stories yang lebih kecil dan penugasan nilai dan biaya terjadi lagi. Penting untuk dicatat bahwa stories baru dapat ditulis kapan saja.
Pelanggan dan pengembang bekerja sama untuk memutuskan bagaimana mengelompokkan stories ke dalam rilis berikutnya (software increment berikutnya) untuk dikembangkan oleh tim XP. Setelah komitmen dasar (kesepakatan tentang stories untuk dimasukkan, tanggal pengiriman, dan masalah proyek lainnya) dibuat untuk rilis, tim XP mengurutkan stories yang akan dikembangkan dalam salah satu dari tiga cara: (1) semua stories akan segera diimplementasikan (dalam beberapa minggu), (2) stories dengan nilai tertinggi akan dipindahkan ke jadwal paling atas dan diterapkan terlebih dahulu, atau (3) stories paling berisiko akan dipindahkan ke jadwal paling atas dan diimplementasikan terlebih dahulu.
Setelah rilis proyek pertama (juga disebut software increment) telah disampaikan, tim XP menghitung project velocity. Secara sederhana, project velocity adalah sejumlah stories pelanggan yang diimplementasikan selama rilis pertama. Project velocity kemudian dapat digunakan untuk membantu memperkirakan tanggal pengiriman dan jadwal untuk rilis berikutnya dan menentukan apakah overcommitment telah dibuat untuk semua stories di seluruh proyek pengembangan. Jika terjadi overcommitment , konten rilis diubah atau tanggal pengiriman akhir diubah.
Ketika pekerjaan pengembangan berlangsung, pelanggan dapat menambahkan stories, mengubah nilai stories yang ada, membagi stories, atau menghilangkannya. Tim XP kemudian mempertimbangkan kembali semua rilis yang tersisa dan memodifikasi rencananya.
= Desain
=Desain XP dengan ketat mengikuti prinsip KIS (Keep It Simple). Desain yang sederhana selalu lebih disukai daripada representasi yang lebih kompleks. Selain itu, desain tersebut memberikan panduan implementasi untuk sebuah stories seperti yang ditulis — tidak kurang, tidak lebih. Desain fungsi tambahan (karena pengembang menganggapnya akan diperlukan nanti) tidak disarankan. XP mendorong penggunaan kartu CRC sebagai mekanisme yang efektif untuk berpikir tentang perangkat lunak dalam konteks orientasi objek. Kartu CRC (class-responsibility-collaborator) mengidentifikasi dan mengatur kelas berorientasi objek yang relevan dengan software increment saat ini. Kartu CRC adalah satu-satunya work product desain yang diproduksi sebagai bagian dari proses XP. Jika masalah desain yang sulit ditemui sebagai bagian dari desain sebuah stories, XP merekomendasikan pembuatan prototipe operasional dari bagian desain tersebut. Disebut spike solution, prototipe desain diimplementasikan dan dievaluasi. Tujuannya adalah untuk menurunkan risiko ketika implementasi yang sebenarnya dimulai dan untuk memvalidasi perkiraan awal untuk stories yang berisi masalah desain.
Pada bagian sebelumnya, kami mencatat bahwa XP mendorong refactoring — teknik konstruksi yang juga merupakan metode untuk optimasi desain. Fowler menjelaskan refactoring adalah proses mengubah sistem perangkat lunak sedemikian rupa sehingga tidak mengubah perilaku eksternal kode namun meningkatkan struktur internal. Ini adalah cara yang terdisiplin untuk membersihkan kode [dan memodifikasi / menyederhanakan desain internal] yang meminimalkan kemungkinan bug. Karena desain XP hampir tidak menggunakan notasi dan menghasilkan sedikit, jika ada, work product selain dari kartu CRC dan spike solution, desain dipandang sebagai fakta sementara yang dapat dan harus terus dimodifikasi ketika konstruksi berlanjut. Maksud refactoring adalah untuk mengontrol modifikasi ini dengan menyarankan perubahan desain kecil bahwa "secara radikal dapat meningkatkan desain". Perlu dicatat, bahwa upaya yang diperlukan untuk refactoring dapat tumbuh secara dramatis seiring dengan meningkatnya ukuran aplikasi. Gagasan sentral dalam XP adalah bahwa desain muncul sebelum dan sesudah koding. Refactoring berarti bahwa desain terjadi terus-menerus ketika sistem dibangun. Bahkan, kegiatan konstruksi itu sendiri akan memberikan tim XP panduan tentang cara meningkatkan desain.
= Pengkodean (Coding)
=Setelah stories dikembangkan dan pekerjaan desain awal dilakukan, tim tidak pindah ke kode, melainkan mengembangkan serangkaian pengujian unit yang akan melatih setiap stories yang akan dimasukkan dalam rilis saat ini (software increment) .Sekali pengujian unit telah dibuat, pengembang lebih mampu fokus pada apa yang harus diterapkan untuk lulus pengujian. Tidak ada hal ekstra yang ditambahkan (KIS). Setelah kode selesai, kode dapat segera diuji, dengan demikian memberikan umpan balik instan kepada pengembang.
Konsep kunci selama aktivitas pengkodean (dan salah satu aspek XP yang paling banyak dibicarakan) adalah pemrograman berpasangan (pair programming). XP merekomendasikan agar dua orang bekerja bersama di satu komputer untuk membuat kode sebuah stories. Ini memberikan mekanisme untuk pemecahan masalah waktu-nyata (dua kepala seringnya lebih baik dari satu) dan jaminan kualitas waktu nyata (kode ditinjau saat dibuat). Itu juga membuat pengembang fokus pada masalah yang dihadapi. Dalam praktiknya, setiap orang mengambil peran yang sedikit berbeda. Sebagai contoh, satu orang mungkin berpikir tentang detail pengkodean dari bagian tertentu dari desain sementara yang lain memastikan bahwa standar pengkodean (bagian yang diperlukan dari XP) sedang diikuti atau bahwa kode untuk stories akan memenuhi pengujian unit yang telah dikembangkan untuk memvalidasi kode terhadap stories.
Ketika pemrogram berpasangan menyelesaikan pekerjaan mereka, kode yang mereka kembangkan terintegrasi dengan pekerjaan orang lain. Dalam beberapa kasus ini dilakukan setiap hari oleh tim integrasi. Dalam kasus lain, programmer berpasangan memiliki tanggung jawab integrasi. Strategi "integrasi berkesinambungan" ini membantu menghindari masalah kompatibilitas dan antarmuka dan menyediakan lingkungan "smoke testing" yang membantu mengungkap kesalahan lebih awal.
= Pengujian (testing)
=Pembuatan pengujian unit sebelum pengkodean adalah elemen kunci dari pendekatan XP. Pengujian unit yang dibuat harus diimplementasikan menggunakan kerangka kerja yang memungkinkan mereka untuk diotomatisasi (karenanya, mereka dapat dieksekusi dengan mudah dan berulang kali). Ini mendorong strategi pengujian regresi setiap kali kode diubah. Ketika pengujian unit individual diorganisasikan ke dalam "universal testing suite", pengujian integrasi dan validasi sistem dapat terjadi setiap hari. Ini memberikan tim XP indikasi kemajuan yang berkesinambungan dan juga dapat menaikkan bendera peringatan lebih awal jika semuanya serba salah. Wells menyatakan: "Memperbaiki masalah kecil setiap beberapa jam membutuhkan waktu lebih sedikit daripada memperbaiki masalah besar sebelum batas waktu." Acceptance test , juga disebut customer test, ditentukan oleh pelanggan dan fokus pada keseluruhan fitur sistem dan fungsionalitas yang dapat dilihat dan ditinjau oleh pelanggan. Acceptance test berasal dari user stories yang telah diterapkan sebagai bagian dari rilis perangkat lunak.
Kata Kunci Pencarian:
Artikel Terkait "extreme programming"
Extreme programming - Wikipedia
Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements.
What is Extreme Programming (XP)? - GeeksforGeeks
29 Mei 2024 · Extreme Programming (XP) is a Software Development Methodology, known for its flexibility, collaboration and rapid feedback using techniques like continuous testing, frequent releases, and pair programming, in which two programmers collaborate on the same code.
Extreme Programming: A Gentle Introduction
08 Okt 2013 · Extreme Programming improves a software project in five essential ways; communication, simplicity, feedback, respect, and courage. Extreme Programmers constantly communicate with their customers and fellow programmers.
What is Extreme Programming (XP)? [2024] • Asana
13 Feb 2024 · Extreme programming (XP) is an Agile project management methodology that targets speed and simplicity with short development cycles. Learn about XP and its structure, with five guiding values, five rules, and 12 practices for programming.
What is Extreme Programming (XP)? | Agile Alliance
Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development.
What is Extreme Programming: Principles, Process, and Best ...
Extreme programming or XP is a typical agile development framework based on discovering the simplest thing that works without putting too much effort into long-term product view. It provides principles and values to guide the team's behavior.
What is the extreme programming methodology? - Lucidchart
Extreme programming (XP) is an agile project management methodology that involves frequent releases and allows team members to quickly respond to changing customer requirements. Before you commit to XP, read all the rules and values here.
All About Extreme Programming (XP): Values, Principles, and ...
Extreme Programming (XP) is one of the many agile software development methodology emphasizing customer satisfaction, teamwork, and continuous improvement. XP aims to deliver high-quality software quickly and efficiently by fostering …
Extreme Programming (XP): Principles, Practices & Values in ...
23 Okt 2024 · Extreme programming principles were introduced in the late 1990s by Kent Beck while he was working on the Chrysler Comprehensive Compensation System (C3) project. Beck sought to enhance the processes involved in software development due to inefficiencies in the project and late delivery that were apparent at the time.
Extreme Programming (XP) Explained: A Guide for Agile ...
10 Mar 2024 · Extreme Programming (XP) is an Agile methodology that prioritises collaboration, adaptability, and rapid delivery in software development. It emphasises customer satisfaction and embraces change as a natural part of the process.