Perjuangan Mewujudkan Keunggulan Teknis

Diposting pada

Technical excellence (keunggulan teknis) dapat diartikan sebagai tingkat kecakapan teknis yang tinggi pada setiap individu yang terlibat dalam suatu pekerjaan. Dalam hal pengembangan perangkat lunak, keunggulan teknis berlaku untuk semua pihak yang bertanggung jawab mewujudkan perangkat lunak yang berkualitas.

Untuk memaksimalkan agility dalam sebuah tim dan/atau organisasi, keunggulan teknis merupakan faktor yang vital. Sebenarnya, keunggulan teknis bukan sesuatu yang baru di dunia pengembangan perangkat lunak, termasuk dalam penerapan Agile. Agile Manifesto for Software Development menegaskan pentingnya keunggulan teknis tersebut dengan mengutamakan individuals and interactions daripada processes and tools.

Fokus pada individuals itu menegaskan bahwa setiap individu yang terlibat dalam pengembangan perangkat lunak harus memiliki keunggulan teknis. Hal tersebut bahkan ditekankan secara spesifik lewat salah satu prinsipnya; continuous attention to technical excellence and good design enhances agility (perhatian terus menerus pada keunggulan teknis dan desain yang bagus meningkatkan agility).

Merespon Perubahan

Dari sudut pandang yang lebih menyeluruh pun jelas terlihat bahwa keunggulan teknis itu dibutuhkan untuk mewujudkan Agile Manifesto, termasuk responding to change (merespons perubahan). Seorang pengembang yang belum lama menerapkan salah satu metode Agile, yaitu Scrum, menyatakan bahwa penerapan Scrum telah membantu dia dan timnya mendeteksi perubahan kebutuhan pengguna sedini mungkin. Namun, perubahan yang muncul kadang menurunkan semangat bekerja, khususnya saat perubahan tersebut membutuhkan waktu dan tenaga yang signifikan. Dampak negatif tersebut semakin terasa berat saat timnya belum memiliki kecakapan teknis yang memadai. Seiring dengan meningkatnya kemampuan setiap individu dalam tim tersebut, efek psikologis negatif yang dirasakan setiap kali muncul perubahan kebutuhan tidak lagi besar [1]. Selain menekan efek psikologis yang negatif, keunggulan teknis pada setiap anggota tim pengembang tentu saja meningkatkan kecepatan, tetapi bukan asal cepat. Cepat dan terburu-buru bukanlah Agile, melainkan karakteristik kondisi chaos.

Keunggulan teknis tidak digunakan untuk merespons dengan cepat dan terburu-buru, tetapi untuk merespons dengan cepat dan apik [2]. Pekerjaan yang dilakukan dengan cepat dan apik berarti dikerjakan dengan cepat tanpa mengorbankan kualitas, keberlanjutan, dan hasil yang bagus luar-dalam (bukan luarnya saja). Hal tersebut menunjukkan bahwa keunggulan teknis berdampak langsung pada semangat dan kemampuan tim pengembang dalam merespons perubahan.

Mewujudkan Keunggulan Teknis


Untuk mewujudkan keunggulan teknis, setiap tim atau organisasi harus melihat lebih luas dari sekadar pemrograman. Walaupun pemrograman merupakan kegiatan inti dalam pengembangan perangkat lunak, perancangan dan pengujian yang mumpuni juga tidak kalah pentingnya untuk menghasilkan perangkat lunak yang berkualitas. Rancangan yang dibuat dengan mempertimbangkan, misalnya, modularitas dan skalabilitas serta proses pengujian yang komprehensif tidak kalah penting dengan kemampuan pemrograman yang andal. Mekanisme integrasi dan penyebaran yang efektif dan efisien pun merupakan bagian yang penting untuk mewujudkan keunggulan teknis. Beberapa istilah yang umum seperti continuous integration, continuous delivery, atau continuous deployment bukan sekadar hype untuk menjadi kekinian. Praktik-praktik tersebut muncul dan diterapkan di berbagai organisasi karena terbukti mampu mewujudkan keunggulan teknis lewat otomatisasi yang dapat diandalkan.

Beberapa metode Agile tertentu memang tidak membahas hal-hal teknis secara eksplisit. Scrum, misalnya, memiliki Definition of Done, tetapi penjelasannya sering disalahartikan sebagai kriteria penerimaan (acceptance criteria) semata. Kanban pun memiliki praktik Manage Flow yang menegaskan pentingnya keunggulan teknis, tetapi tidak secara eksplisit. Dalam kondisi tersebut, adopsi praktik-praktik dari metode Agile yang sarat dengan hal-hal teknis seperti Extreme Programming atau DevOps dapat membantu.

Bisnis Juga Memerlukan Keunggulan Teknis


Keunggulan teknis pun dibutuhkan di sisi bisnis. Individu-individu yang terlibat di sisi bisnis harus memiliki kecakapan teknis yang tinggi dalam menentukan kebutuhan aplikasi. Mereka perlu memiliki kecakapan untuk melakukan wawancara atau survei untuk mendefinisikan aplikasi yang benar-benar dibutuhkan. Mereka harus mampu menelusuri akar masalah yang ingin diperbaiki dan menentukan apakah hasil dari penyelesaian masalah itu sepadan dengan sumber daya yang dibutuhkan. Mereka juga harus mampu menentukan solusi alternatif dari suatu masalah seandainya solusi yang dipilih ternyata sulit untuk diwujudkan.

Dengan keunggulan di sisi bisnis dan teknis, kolaborasi antara kedua sisi pun akan menjadi lebih hidup. Sisi bisnis akan lebih aktif menyampaikan kebutuhan mereka karena mereka percaya bahwa sisi teknis memiliki kemampuan yang memadai untuk mewujudkan kebutuhan mereka. Sebaliknya, sisi teknis akan lebih fokus mengerjakan pekerjaan mereka karena mereka percaya bahwa sisi bisnis memiliki kemampuan yang memadai untuk merumuskan kebutuhan yang benar-benar bernilai. Keunggulan teknis merupakan faktor yang penting untuk menjadi Agile. Sifat responsif dalam Agile tidak akan maksimal tanpa keunggulan teknis. Perubahan kebutuhan yang berhasil diidentifikasi, lalu diperjelas tujuan dan rinciannya, tetap tidak akan dapat diakomodir dengan cepat dan apik tanpa kecakapan teknis yang memadai. Sebaliknya dengan adanya keunggulan teknis, respons terhadap perubahan (responding to change) menjadi lebih mudah dan agility pun turut meningkat.

Salah satu perusahaan yang sekarang ini tengah berusaha mewujudkanya adalah perusahaan bandar poker online yang bergelut dibidang game. Perusahaan ini berjuang keras dalam mewujudkan keunggulan teknis untuk kebaikan perusahaanya.