Skip to main content

Agility And The Cost Of Change (Agility Dan Biaya Perubahan) Menurut Roger S. Pressman

 Pandangan konvensional dalam pengembangan perangkat lunak selama beberapa dekade adalah bahwa biaya perubahan cenderung meningkat secara tidak linear seiring dengan kemajuan proyek (seperti yang ditunjukkan oleh kurva hitam solid pada Gambar 1). Meskipun mudah untuk mengakomodasi perubahan di awal proyek ketika tim perangkat lunak mengumpulkan persyaratan, biaya untuk melakukan pekerjaan ini relatif kecil dan tidak akan berdampak pada hasil proyek. Namun, jika ada permintaan perubahan signifikan ketika tim berada di tengah-tengah pengujian dan validasi, biaya perubahan akan meningkat secara signifikan. Perubahan tersebut dapat memerlukan modifikasi pada desain arsitektur perangkat lunak, pembuatan beberapa komponen baru, modifikasi beberapa komponen lainnya, pengembangan pengujian baru, dan sebagainya. Biaya untuk melakukan perubahan semakin meningkat dengan cepat, dan waktu dan biaya yang dibutuhkan untuk memastikan bahwa perubahan tersebut dilakukan tanpa efek samping yang tidak diinginkan sangatlah signifikan.

Gambar 1

Menurut para pendukung metode agility, proses agility yang didesain dengan baik dapat mengurangi biaya perubahan secara signifikan (Gambar 1, bayangan kurva padat), sehingga memungkinkan tim pengembang perangkat lunak untuk melakukan perubahan pada tahap akhir proyek tanpa mempengaruhi biaya dan waktu secara dramatis. Konsep agility melibatkan pengiriman bertahap, yang dapat mengurangi biaya perubahan dengan mengombinasikan praktik agility lain seperti pengujian unit berkelanjutan dan pemrograman berpasangan. Walaupun perdebatan tentang sejauh mana kurva biaya merata sedang berlangsung, namun bukti menunjukkan bahwa pengurangan biaya perubahan yang signifikan memang bisa dicapai.



Source: Pressman, Roger S. 2010. Software engineering : A Practitioner’s Approach (7th. Edition). New York: McGraw-Hill Higher Education.

Comments

Popular posts from this blog

Proses Perangkat Lunak Menurut Roger S. Pressman

Suatu proses adalah gabungan dari beberapa kegiatan, aksi, dan pekerjaan yang dikerjakan saat akan membuat beberapa produk. Setiap kegiatan memiliki tujuan yang luas (seperti komunikasi dengan pemangku kepentingan) dan diterapkan secara universal, tidak peduli pada domain aplikasi, ukuran proyek, kompleksitas usaha, atau tingkat ketelitian rekayasa perangkat lunak yang digunakan. Aksi (contohnya, desain arsitektur) mencakup rangkaian tugas yang menghasilkan produk utama (sebagai contoh, model desain arsitektural). Sebuah tugas berfokus pada tujuan yang kecil namun terdefinisi dengan baik (seperti melakukan pengujian unit) yang menghasilkan hasil yang konkret. Dalam dunia rekayasa perangkat lunak, suatu proses tidaklah berarti resep yang kaku untuk membuat perangkat lunak. Sebaliknya, proses ini merupakan pendekatan yang dapat disesuaikan yang memungkinkan tim pengembang perangkat lunak untuk memilih dan mengeksekusi serangkaian tindakan dan tugas yang sesuai. Tujuannya adalah untuk sel...

Other Agile Process Models (Model Process Agile Lainnya) Menurut Roger S. Pressman

 Sejarah pengembangan perangkat lunak telah dicatat dengan banyak deskripsi dan metodologi proses yang telah usang, alat-alat, dan teknologi, serta notasi pemodelan. Semua hal tersebut telah mencapai popularitasnya masing-masing sebelum akhirnya digantikan oleh yang baru dan lebih baik. Dalam upaya mencapai penerimaan di komunitas pengembangan perangkat lunak, berbagai agile process model telah diperkenalkan dan bersaing satu sama lain, mengikuti pola yang sama dengan gerakan sebelumnya. Sudah saya sampaikan pada bagian terakhir bahwa Extreme Programming (XP) merupakan agile process models yang paling sering digunakan. Meskipun demikian, terdapat banyak agile process models lain yang telah diusulkan dan diterapkan dalam berbagai industri. Beberapa model yang paling umum meliputi: Adaptive Software Development (ASD) Scrum Dynamic Systems Development Method (DSDM) Crystal Feature Drive Development (FDD) Lean Software Development (LSD) Agile Modeling (AM) Agile Unified Process (AUP) P...

What Is Agility? Menurut Roger S. Pressman

 Dalam konteks rekayasa perangkat lunak, apa yang dimaksud dengan agility? Ivar Jacobson membahas topik ini secara mendalam: Berbicara tentang pengembangan perangkat lunak modern, istilah "agility" telah menjadi sangat penting. Semua orang sekarang mencari untuk menjadi lebih tangkas. Tim yang tangkas dianggap mampu merespon perubahan dengan cepat dan tepat. Perubahan adalah hal yang sangat penting dalam pengembangan perangkat lunak, yang dapat terjadi pada produk yang dibangun, anggota tim, atau bahkan teknologi yang digunakan. Oleh karena itu, setiap aspek dari pengembangan perangkat lunak harus mendukung perubahan dan dianggap sebagai hal yang sangat penting karena merupakan jiwa dari perangkat lunak itu sendiri. Dalam hal ini, tim yang tangkas harus mengakui bahwa pengembangan perangkat lunak melibatkan individu yang bekerja dalam tim dan keterampilan serta kemampuan mereka untuk berkolaborasi menjadi inti dari kesuksesan proyek. Jacobson percaya bahwa perubahan yang melu...