Skip to content

Latest commit

 

History

History
38 lines (32 loc) · 6.3 KB

12_Collaboration.md

File metadata and controls

38 lines (32 loc) · 6.3 KB

The Clean Coder

Chapter 12

Collaboration

Content:

    Kebanyakan Software dibuat oleh sekelompok orang yang bekerja sama dalam tim. Tim ini akan menjadi efektif bila semua anggota nya berkolaborasi dengan profesional. Tidak dianjurkan untuk menjadi penyendiri di dalam sebuah tim karena hal tersebut dianggap tidak profesional.
    Dalam pembuka chapter ini, sang penulis bercerita tentang pengalaman nya berkolaborasi dalam mengerjakan sebuah proyek dengan seorang kolega nya yang bernama Tim Conrad. Tim Conrad ini adalah teman sejak SMA sang penulis. Mereka mampu menyeselaikan masalah dengan baik walaupun pada awalnya mereka sama sekali tidak mengerti tentang bagaimana menyelesaikan masalah itu. Mereka tidak pernah berhenti mencoba sampai berhasil.

Programmer Versus People

    Biasanya programmer dikaitkan dengan ketidakinginan mereka untuk berinteraksi dengan manusia karena lebih suka dengan mesin, namun hal ini merupakan generalisasi yang berlebihan. Ada juga programmer yang suka berinteraksi dengan manusia dan menikmati tantangan tersebut.

Programmer Versus Employers

    Tanggung jawab utama seorang programmer yang profesional adalah untuk memenuhi kebutuhan dan keinginan orang yang memperkerjakan diri nya. Artinya anda harus berkolaborasi dengan para manajer, analis bisnis, tester, dan anggota tim lainnya agar dapat mengerti tujuan bisnis atau business goals dari tempat anda bekerja. Ini bukan berarti anda harus menjadi seorang pebisnis. Namun, anda tetap harus mengerti code yang anda tulis, dan bagaimana bisnis tempat anda bekerja bisa mendapatkan manfaatnya.
    Programmer yang profesional menggunakan waktu sebaik-baiknya untuk mengerti bisnis tempat mereka bekerja. Mereka meminta feedback dari user tentang program yang mereka buat. Mereka berbicara dengan orang sales dan marketing tentang masalah yang mereka punya. Mereka juga berbicara dengan para manajer agar dapat mengerti gol jangka pendek dan gol jangka panjang nya.
    Sebaiknya jangan terlalu fokus pada proyek dan teknologi yang sedang anda kerjakan dalam sebuah perusahaan, namun anda juga harus bisa menempatkan diri dalam perusahaan tersebut. Jangan lupakan tentang bisnis dan politik internal yang bisa muncul dan terjadi dalam perusahaan tersebut.

Programmer Versus Programmer

    Programmer juga sering sekali bermasalah ketika bekerja sama dengan programmer lainnya. Hal ini menyebabkan masalah – masalah yang cukup besar.
Symptom – symptom dari development team yang tidak berfungsi adalah:

  1. Owned Code
        Terjadi ketika setiap programmer dalam sebuah tim membuat tembok untuk melindungi LOC (Code) nya dari programmer lain. Bahkan ada yang tidak memperbolehkan orang lain untuk melihat LOC nya. Hal ini sangat berbahaya. Karena hal ini, bisa terjadi duplikasi code, interface antar modul juga tidak seimbang atau condong ke beberapa modul.
  2. Collective Ownership
        Terjadi ketika 1 (satu) orang yang membuat code menganggap dirinya yang mempunyai hak kepemilikan dari code tersebut. Jika hal ini terjadi, maka perubahan pada code tersebut oleh anggota lainnya tidak akan bisa terjadi. Seharusnya, semua code dimiliki oleh satu tim, bukan dimiliki oleh satu orang. Programmer profesional tidak akan mempunyai hak kepemilikan tunggal dari code yang dibuatnya dan mereka tidak akan marah ketika orang lain mengubah code mereka.
  3. Pairing
        Pairing / pasangan pada saat development adalah cara yang paling efisien untuk menyelesaikan masalah saat darurat. Tetapi Teknik ini juga tidak baik untuk digunakan setiap saat, karena seringkali egoisme dari setiap orang selalu menjadi penghalang yang luar biasa. Kali ini, kita akan belajar yang namanya professionals pair. Professional pairing adalah pasangan yang mengerti cara terbaik untuk menyebarluaskan pengetahuan dengan satu sama lain. Pasangan yang profesional juga tau setiap anggota punya tugasnya masing – masing dan mereka juga dapat beradaptasi terhadap tugas lain jika diperlukan. Professionals pair juga menjadi cara terbaik untuk me-review suatu code karena tidak ada sistem yang mempunyai code yang tidak pernah di review oleh programmer lain. Cara ter-efektif dan ter-efisien untuk me-review suatu code adalah dengan berkolaborasi dalam membuat code tersebut.

Cerebellums

    Seringkali, banyak orang mempunyai prinsip “rub cerebellums with the best” yang artinya berguru dengan yang terbaik. Tetapi, cerebellum adalah bagian dari otak yang mengatur otot dan bukan pengetahuan. Juga, cerebellum ada di bagian belakang otak. Cara terbaik untuk menggaruk cerebellum adalah dengan membelakangi satu sama lain. Programmer tidak akan bisa menyelesaikan masalah jika mereka membelakangi satu sama lain. Kita sebagai tim harus bisa merasakan setiap perasaan dari anggota yang ada untuk dapat berkomunikasi sebagai satu unit yang solid. Beberapa orang percaya bahwa bekerja sendiri akan menghasilkan hasil yang lebih baik tapi hal tersebut tidak selalu benar. Bekerja sendirian tidak membuat tim bekerja lebih baik dan bekerja sendirian juga kemungkinan besar tidak membuat kamu bekerja lebih baik.
    Kadang, ada waktu dimana bekerja sendirian adalah cara terbaik. Ada waktu dimana kita harus berpikir secara serius dan matang tentang suatu masalah. Tetapi, secara umum lebih baik untuk berkolaborasi dengan satu sama lain untuk menghemat waktu dan bekerja dengan lebih efektif.

Kesimpulan

    Mungkin, kita tidak masuk ke dalam programming untuk bekerja dengan orang lain tetapi programming yang sebenarnya adalah dengan bekerja dengan orang lain. Kita harus bekerja sama dengan bisnis kita dan teman tim kita. Akhir kata, Jika kita ingin menghabiskan waktu kita untuk programming, kita juga harus belajar untuk berkomunikasi dan berbicara dengan orang lain.

Summary of Chapter 12 by Karnando Sepryan & Oliver Sebastian