Idea dari pair programming adalah dua orang developer kerja di mesin komputer yang sama. Satu disebut Driver yang lain Navigator. Role tersebut di switch setiap satu jam, atau terserah kesepakatan. Driver ngoding dan navigator baca kodingannya, ngecek, dan ngebersihin kode. Kalo driver nemuin permasalahan, ada dua otak yang bisa mikir sama2 untuk mecahinnya dan dua orang biasanya lebih baik dari satu. Keuntungan yang laennya kalo dua programmer tersebut punya spesialisasi yang berbeda, dua orang tersebut bisa sekalian transfer knowledge dan belajar satu sama lain.

Hasil akhirnya adalah kedua programmer fully aware terhadap kode, gimana cara kerjanya dan kenapa pake cara tersebut. Kualitas dari hasil kodingan tersebut lebih baik dari seorang programmer kerja sendiri dan lebih dikit bug dan hack yang bisa jadi problem di kemudian hari.

Di team yg lebih gede, pairing bisa diganti-ganti tipm minggu sehingga setiap anggota team mempunyai kesempatan untuk berpasangan dengan semua anggota team sehingga menjadikan keseluruhan project tersebut dapat dimengerti oleh semua anggota team.

Gw tertarik dengan konsep pair programming tapi belum pernah mempraktekan hal tersebut. Yang seringnya gw lakukan adalah: code review. Kita nulis code dan setelahnya kita minta rekan kita untuk mereview hasil kodingan kita dan memberi feedback.

Terus apa bedanya pair dengan code review? Apakah Pair programming ini adalah code review yang dilakukan full time, 8 jam sehari? Apa manfaat lain yang didapatkan pair programming dibanding code review biasa?

Pair programming memaksa reviewer untuk aware terhadap code, mengomentari saat itu juga dan ikut terlibat secara aktif dalam hasil kodingan. Mau nggak mau si reviewer ikut bertanggug jawab ata kualitas kode yang dihasilkan.

Hal yang tering terjadi di code review adalah reviewer yang kurang memiliki rasa tanggung jawab terhadap kode yang ia review. Itu bukan gw yang nulis, ngapain juga gw terlalu pusing2 mikiran kodingan orang lain? Akibatnya seringkali kita temui komentar-komentar generik ketika melakukan review. Bug dan feedback yang kita harapkan dari code review malah tidak kita dapatkan sama sekali.

Pair Programming memang sangat mengikat dan memaksa. Namun komunikasi antar programmer juga sangat meningkat dibanding hanya meminta review. Kita juga bisa mengadaptasi dan saling bertukar pengalaman, trik dan tips dibanding hanya dengan code review.

Disamping kelebihan di atas, pair juga menyimpan beberapa kekurangan. Yang paling nyata tentu saja jumlah code yang dihasilkan jauh lebih sedikit, waktu yang dibutuhkan menyelesaikan project menjadi lebih lama dan lain sebagainya.

Akhir kata, kedua metode tersebut sangat bermanfaat untuk meningkatkan kualitas hasil kodingan team kita dan gw sangat merekomendasikan kedua hal tersebut untuk dilakukan dalam keseharian kita.