Perkembangan teknologi di Indonesia saat ini menimbulkan persaingan bisnis yang sangat ketat, khususnya pada sektor yang menggunakan perangkat lunak sebagai alat untuk menjalankan aktivitas bisnis utamanya. Untuk meningkatkan pelayanan dan menjaga loyalitas konsumen, perusahaan perlu untuk selalu mengembangkan teknologi atau fitur yang terdapat perangkat lunak mereka. Namun dalam pengembangannya, proyek pengembangan perangkat lunak sering kali menemui kegagalan yang disebabkan karena sulitnya menemukan komposisi tim pengembang yang tepat. Terdapat dua faktor yang menyebabkan sebuah tim pengembang perangkat lunak tidak menemukan komposisi yang tepat, di antaranya adalah faktor sumber daya manusia dan lingkungan. Dalam menciptakan sebuah komposisi tim yang tepat dibutuhkan kesesuaian antara qualification kemampuan yang dimiliki individu dengan requirement dari posisi yang terdapat pada sebuah tim. Pengetahuan dan pengalaman seorang individu menjadi sebuah tolak ukur yang nyata ketika dihadapkan dengan situasi tersebut. Selain itu juga diperlukan lingkungan kerja yang tepat, seperti bagaimana kerja sama yang terlihat dalam sebuah tim dan bagaimana komunikasi antar posisi yang terdapat pada sebuah tim.
Terdapat tiga tahapan penting untuk membuat sebuah tim pengembang. Pertama, melakukan penilaian yang digunakan untuk mengukur kemampuan dari seorang individu. Kemudian yang kedua adalah menentukan requirement yang harus dimiliki individu dalam sebuah posisi di tim. Terakhir, melakukan pencocokan antara kemampuan individu dengan posisi yang ada dalam sebuah tim. Tahapan-tahapan tersebut akan diterapkan penulis dalam sebuah platform perangkat lunak berbasis web yang bernama Assessment Tool. Pembuatan aplikasi tersebut memiliki tujuan untuk memberikan solusi terhadap kesulitan yang dihadapi oleh divisi human resource ketika melakukan sebuah sesi pembuatan tim pengembang.
Untuk melakukan pencocokan antara kemampuan individu dengan requirement peran, penulis mengimplementasikan Google OR-Tools sebagai engine untuk menjalankan algoritma yang digunakan untuk melakukan optimasi pembuatan tim. Algoritma yang digunakan untuk optimasi ini, masuk ke dalam algoritma combinatorial optimization dengan jenis case “Assignment as a Min Cost Flow Problem”. Jenis case tersebut merupakan jenis case yang digunakan untuk menentukan tugas dengan requirement “x” mana yang sesuai dengan seorang individu memiliki kemampuan “y”. Dalam pengimplementasian engine tersebut dalam modul Job Matching, penulis bersama dengan tiga pengembang lainnya yang melakukan pengembangan terhadap modul Competency, 360 Degree dan Report menggunakan metodologi pengembangan perangkat lunak yang bernama Collaboration Model of Software Development. Metodologi tersebut cocok untuk digunakan untuk pengembangan aplikasi yang bersifat face to face dengan mengedepankan komunikasi yang terjadi dalam sebuah tim pengembang.