Suatu hasil karya atau produk yang berkaitan dengan perangkat lunak pasti memiliki kumpulan fitur. Fitur adalah sebuah kumpulan mekanisme yang berjalan sehingga produk dapat tampil secara utuh dan memberikan manfaat sepenuhnya bagi pengguna.
Secara singkat, produk adalah kumpulan beberapa macam fitur dan menjadi satu kesatuan (menurut penulis). Semakin banyak sebuah fitur dalam produk, maka semakin kaya pula kompleksitas bahkan fungsionalitas sebuah produk.
Namun kekayaan fitur tersebut tak dapat secara langsung berguna bagi kelangsungan siklus produk bahkan dalam kaitan kebermanfaatan bagi pengguna. Hal inilah dalam sebuah pengembangan perangkat lunak yang penulis sebut sebagai Dosa atau Hutang pada pengembangan produk perangkat lunak. Dimana pengembang secara langsung masuk dalam Perguruan Tengkorak Hitam. 😀
Setiap kali kita memikirkan sebuah fitur baru dalam sebuah produk yang sedang kita bangun hingga fitur tersebut berhasil terimplementasi secara utuh, maka secara tidak langsung kita akan menambahkan hutang dan dosa pada produk tersebut.
Semakin banyak kita mengimplementasikan produk dengan fitur yang bermacam-macam, semakin banyak pula hutang-hutang dan dosa yang nantinya akan kita temukan dalam siklus pengembangan perangkat lunak. Baik langsung, maupun tidak langsung.
Rumusnya adalah
nD = nF x 1
nD = Jumlah Dosa
nF = Jumlah Fitur
Semakin banyak fitur, akan semakin banyak dosa yang didapat.
Apa maksudnya dosa tersebut? Kenapa kita tidak menyebutnya saja dengan bugs atau error atau semacamnya? Apakah penulis mulai edan? Mboten pemirsa! 😀
Yuk, mari kita telisik lebih jauh mengenai apa saja dosa-dosa pengembangan perangkat lunak ini mengambil dari beberapa sumber yang terpercaya tentunya. Semoga pembaca yang budiman mendapatkan sedikit pencerahan.
Dosa dalam Fitur
Sebelum melangkah agak menjauh, penulis akan memberikan sebuah kisi-kisi tentang sebuah fitur. Memikirkan sebuah fitur dalam pengembangan perangkat lunak, maka kita pasti dan pasti akan memikirkan 4 hal dibawah ini:
- Fungsionalitas Fitur
- User Interface (UI) Fitur
- Kualitas dari sebuah Fitur
- Teknis Fitur
Dari keempat poin diatas yang merupakan satu kesatuan disaat pengembangan fitur, maka kita akan menemukan dosa-dosa didalam masing-masing poin tersebut.
Bagaimana dan seperti apa sebuah fitur bekerja dalam sebuah produk perangkat lunak menyesuaikan kebutuhan pengguna merupakan arti definisi dari fungsionalitas. Setiap saat pengguna menjalankan fitur tertentu dalam produk, bagaimana pengguna tersebut memakai adalah berkaitan dengan fungsionalitas.
Fungsionalitas adalah nyawa dari sebuah fitur produk. Fungsionalitas disusun sedemikian rupa oleh pengembang perangkat dengan sangat detail, terperinci, dan masuk akal agar produk dapat berjalan sebagaimana mestinya.
Semakin banyak fitur maka akan banyak nyawa-nyawa yang berjalan pada produk tentulah semakin banyak. Setiap kali fitur dibuat, dapat dipastikan fungsionalitas sebuah produk secara keseluruhan dapat berubah sedikit demi sedikit atau mungkin berubah total. Sehingga pengguna harus menyesuaikan penggunaan sebuah produk tersebut.
Inilah yang penulis sebut sebagai Dosa dan Hutang Fungsionalitas. Terjadi karena menambah runtutan alur kerja produk berimbas pada lamanya pengembangan produk itu sendiri, meskipun fitur tersebut sangat berguna bagi pengguna. Dan disisi lain, jika fitur tersebut ternyata tidak begitu disukai pengguna, maka dosa fungsionalitas juga bertambah disisi pengguna.
Konsistensi, keserasian, kekompakan dan kerapian adalah 4 kata kunci dari dosa yang terjadi pada sebuah antarmuka fitur. Sebagaimana penambahan fitur baru, pengembang harus merancang pula antarmuka fitur tersebut. Antarmuka yang tidak sesuai dengan keseluruhan antarmuka produk, akan menjadi dosa dan hutang pada produk.
Kasus sederhana, suatu waktu dalam sebuah web kita akan menambahkan fitur baru, fitur chat atau obrolan misalnya. Tidak peduli apakah fitur chat itu berasal dari pihak ketiga atau dengan membangun sendiri, fitur ini umumnya membutuhkan tempat tertentu pada bagian web.
Ketika kita meletakkan shortcut chat pada tempat yang salah atau tidak disukai kebanyakan pengguna, maka satu dosa bagi kita. Ketika shortcut elemen icon chat ternyata terlalu besar dan mengganggu bagian lain web, dosa bertambah lagi. Dan lagi dan lagi.
Ini adalah dosa yang menurut hemat penulis terjadi pada banyak fitur yang bahkan penulis sendiri sering mengalami. Kualitas berkaitan erat dengan dua poin diatas, yakni antarmuka juga fungsionalitas.
Dan ketika kita bersinggungan langsung dengan dosa kualitas, maka kita akan menemukan sebuah petualangan baru bernama bugs, error, kesalahan kode, atau crash dalam sebuah produk bahkan kematian produk.
Apakah kualitas sebuah fitur dapat menentukan kualitas secara menyeluruh dari sebuah produk? Jawabannya adalah bisa dan tidak bisa, bergantung pada bagaimana fitur itu berkaitan dengan fitur lain dalam sebuah produk perangkat lunak.
Dosa dalam kualitas ini dapat mengakibatkan menurunnya performa sebuah produk perangkat lunak secara keseluruhan.
Disaat pengembang menambahkan fitur baru dalam perangkat lunak, tentu saja fikiran harus tertuju pada implementasi arsitektural keseluruhan sistem. Apakah teknis tersebut akan merubah bentuk arsitektur keseluruhan sistem atau mungkin dapat mengubah keseluruhan sistem, hal ini akan diikuti dengan dosa-dosa teknis pengembangan perangkat lunak.
Taruhlah kita menambahkan sebuah fitur baru dimana kualitas kode yang dibuat dan arsitektur yang dirancang tidak sesuai dengan keseluruhan sistem produk. Kesalahan tersebut adalah dosa yang harus dibayar dengan semakin lamanya waktu pengembangan dan pengoreksian yang melibatkan sebagian maupun keseluruhan tim pengembang.
Jadi, Kita Berdosa???Â
Sumber:Â https://medium.com/@mdubakov/every-feature-considered-harmful-debts-in-software-development-2a922d846151