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 meluas adalah faktor utama dalam memunculkan agility. Menurutnya, insinyur perangkat lunak harus bisa cepat tanggap jika ingin mampu menyesuaikan diri dengan perubahan-perubahan yang cepat seperti yang dijelaskan oleh Jacobson.
Agility mencakup lebih dari sekadar tanggapan yang efektif terhadap perubahan. Menurut manifesto yang disebutkan di awal bab, ini adalah sebuah filosofi yang mempromosikan struktur dan sikap tim yang memungkinkan komunikasi yang lebih baik antara anggota tim, ahli teknologi, pelaku bisnis, insinyur perangkat lunak, dan manajer. Agility juga memprioritaskan pengiriman perangkat lunak yang beroperasi dengan cepat daripada produk kerja perantara yang tidak selalu dianggap baik. Hal ini juga melibatkan pelanggan sebagai bagian dari tim pengembangan dan berusaha untuk menghilangkan perasaan "kami dan mereka" yang sering muncul dalam proyek perangkat lunak. Manifesto ini juga mengakui bahwa perencanaan di lingkungan yang tidak pasti memiliki batas dan bahwa rencana proyek harus fleksibel.
Dapat diterapkan agility pada setiap proses perangkat lunak. Namun, untuk mencapai ini, penting bahwa proses didesain agar memungkinkan tim proyek menyesuaikan tugas dan mempermudahnya, melakukan perencanaan yang mengerti tentang pendekatan pengembangan yang fleksibel, menyingkirkan produk kerja yang tidak penting dan mempertahankan kekompakan, serta menekankan strategi pengiriman yang menghasilkan produk perangkat lunak yang dapat digunakan oleh pelanggan dengan cepat dan sesuai dengan jenis produk dan lingkungan operasional.
Source: Pressman, Roger S. 2010. Software engineering : A Practitioner’s Approach (7th. Edition). New York: McGraw-Hill Higher Education.
Comments
Post a Comment