Skip to main content

Posts

Showing posts from April, 2023

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...

Extreme Programming (XP) Menurut Roger S. Pressman

 Untuk memberikan gambaran yang lebih rinci tentang proses agile, saya akan memaparkan Extreme Programming (XP), suatu pendekatan yang banyak digunakan dalam pengembangan perangkat lunak agile. Meskipun ide dan metode yang terkait dengan XP telah muncul pada akhir 1980-an, Kent Beck telah menulis secara ekstensif mengenai topik ini. Baru-baru ini, sebuah varian XP yang disebut Industrial XP (IXP) telah diajukan. IXP telah menyempurnakan XP dan dirancang untuk digunakan khusus dalam organisasi besar dengan proses yang lebih fleksibel. 1.1 XP Values Sebuah seperangkat lima nilai yang menjadi dasar bagi seluruh pekerjaan yang dilakukan dalam XP telah didefinisikan oleh Beck. Nilai-nilai ini mencakup communication, simplicity, feedback, courage, dan respect, dan masing-masing nilai ini digunakan sebagai motivasi dalam aktivitas, tindakan, dan tugas XP yang spesifik. XP menekankan pada kolaborasi yang erat namun tidak formal secara verbal untuk mencapai komunikasi yang efektif anta...

What Is An Agile Process? (Apa Itu Agile Process) Menurut Roger S. Pressman

Kebanyakan proyek perangkat lunak yang efisien dicirikan oleh penggunaan beberapa asumsi utama dalam mempertimbangkan proses perangkat lunak: Memprediksi persyaratan perangkat lunak mana yang akan tetap dan yang akan berubah serta bagaimana prioritas pelanggan akan berubah selama proyek berlangsung merupakan tugas yang sulit dan tidak dapat diprediksi sebelumnya. Pada banyak jenis perangkat lunak, desain dan konstruksi harus dilakukan secara terpadu untuk memastikan keberhasilan model desain ketika diimplementasikan. Sulit untuk memperkirakan jumlah desain yang diperlukan sebelum tahap konstruksi dilakukan untuk menguji model desain tersebut. Tidak memungkinkan untuk memprediksi secara pasti analisis, desain, konstruksi, dan pengujian dari sudut pandang perencanaan seperti yang diharapkan. Dalam menghadapi ketiga asumsi tersebut, timbul pertanyaan yang krusial, yakni bagaimana cara mengelola ketidakpastian pada proses perangkat lunak. Seperti yang telah dicatat, kunci jawabannya terlet...

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...

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...

Agile Development Menurut Roger S. Pressman

Pada tahun 2001, terjadi penandatanganan "Manifesto for Agile Software Development" oleh Kent Beck dan 16 tokoh penting lainnya dalam pengembangan, penulisan, dan konsultasi perangkat lunak yang dikenal sebagai "Agile Alliance". Manifesto tersebut berisi pernyataan sebagai berikut:  Kami berhasil menemukan suatu metode yang lebih baik dalam pengembangan perangkat lunak, yakni dengan menerapkannya secara langsung dan membantu orang lain untuk menerapkannya juga. Melalui upaya ini, kami berhasil mencapai nilai-nilai sebagai berikut: Lebih diutamakan individu dan interaksi ketimbang proses dan alat. Dokumentasi yang komprehensif diperlukan agar perangkat lunak dapat beroperasi dengan baik. Pelanggan terlibat secara langsung dalam proses kolaborasi melalui negosiasi kontrak. Lebih diutamakan merespon perubahan ketimbang mengikuti rencana secara kaku. Hal ini berarti, meskipun terdapat nilai pada item yang terletak di sebelah kanan, kami memandang item yang terletak di s...

Product And Process (Produk Dan Proses) Menurut Roger S. Pressman

 Produk akhir yang dihasilkan akan terdampak buruk jika prosesnya tidak memadai. Namun, terlalu menggantungkan diri pada proses juga dapat membahayakan. Margaret Davis dalam esai pendek yang ditulis bertahun-tahun yang lalu telah mengungkapkan pandangan tentang pentingnya keseimbangan antara produk dan proses. Pandangan tersebut tetap relevan hingga saat ini: Dalam kurun waktu sekitar sepuluh tahun, dengan menambah atau mengurangi beberapa tahun, komunitas perangkat lunak mengalami perubahan "masalah" yang dihadapi dengan mengalihkan fokusnya dari masalah produk ke masalah proses. Sebagai contoh, kita telah mengadopsi bahasa pemrograman terstruktur sebagai solusi untuk masalah produk, kemudian diikuti oleh metode analisis terstruktur sebagai solusi untuk masalah proses. Enkapsulasi data juga dianggap sebagai solusi untuk masalah produk, sedangkan saat ini kita mengedepankan Model Kematangan Pengembangan Perangkat Lunak dari Institut Rekayasa Perangkat Lunak sebagai solusi unt...

Process Technology (Proses Teknologi) Menurut Roger S. Pressman

 Dalam bagian sebelumnya telah dibahas satu atau beberapa model proses yang perlu disesuaikan agar dapat diterapkan oleh tim perangkat lunak. Oleh karena itu, telah dikembangkan berbagai alat teknologi proses yang dapat membantu organisasi perangkat lunak dalam menganalisis proses yang sedang berjalan, mengatur tugas-tugas yang perlu dilakukan, mengontrol dan memantau kemajuan, serta mengelola kualitas teknis yang dihasilkan. Dengan bantuan alat teknologi proses, organisasi perangkat lunak dapat membuat model otomatis dari kerangka kerja proses, rangkaian tugas, dan aktivitas payung yang telah dibahas pada bagian sebelumnya. Model tersebut biasanya diwujudkan dalam bentuk jaringan, yang kemudian dapat dianalisis untuk mengidentifikasi alur kerja yang umum dan mencari struktur proses alternatif yang dapat mengurangi biaya atau waktu dalam pengembangan. Setelah berhasil membuat proses yang dapat diterima, organisasi perangkat lunak dapat menggunakan alat teknologi proses lainnya untu...

Personal And Team Process Models Menurut Roger S. Pressman

 Menurut penulis, sebuah proses perangkat lunak yang optimal adalah yang dapat disesuaikan dengan kebutuhan tim yang akan melaksanakan pekerjaan tersebut. Meskipun model proses perangkat lunak telah dibuat di tingkat perusahaan atau organisasi, namun untuk efektifitasnya hanya akan tercapai apabila dapat diadaptasi dengan signifikan untuk memenuhi kebutuhan tim proyek yang sebenarnya melaksanakan rekayasa perangkat lunak. Sebaiknya, proses yang dibuat haruslah yang paling cocok dengan kebutuhan tim dan organisasi secara menyeluruh. Atau, tim itu sendiri dapat membuat proses sesuai dengan kebutuhan individu mereka, namun tetap memenuhi kebutuhan organisasi secara keseluruhan. Watts Humphrey berpendapat bahwa membangun "personal software process" maupun "team software process" dapat dilakukan, meskipun memerlukan usaha, pelatihan, dan koordinasi yang sungguh-sungguh. 1.1 Personal Software Process (PSP) Semua pengembang perangkat lunak menggunakan suatu proses, meskipu...

The Unified Process Menurut Roger S. Pressman

 Dalam karyanya yang berjudul Proses Terpadu, Ivar Jacobson, Grady Booch, dan James Rumbaugh membahas pentingnya menggunakan proses pengembangan perangkat lunak yang "use case driven, architecture-centric, iterative and incremental" sesuai dengan pandangan mereka: Saat ini, ada kecenderungan pada pengembangan sistem perangkat lunak yang lebih besar dan kompleks. Hal ini terjadi karena komputer semakin kuat dari tahun ke tahun sehingga pengguna mengharapkan kemampuan yang lebih tinggi. Selain itu, penggunaan internet yang semakin luas turut memengaruhi tren ini karena memungkinkan pertukaran informasi yang lebih banyak. Setiap kali sebuah produk diluncurkan, kita belajar bagaimana produk tersebut dapat ditingkatkan sehingga keinginan kita untuk memiliki perangkat lunak yang semakin canggih semakin meningkat. Meskipun kita menginginkan perangkat lunak yang lebih baik sesuai dengan kebutuhan kita, keinginan ini justru membuat perangkat lunak semakin kompleks. Dengan kata lain, k...