Saturday, October 28, 2006

Rangkuman Peopleware - Bagian 4

The team
Tim yang solid (jelled team) menyadari bahwa keseluruhan tim itu lebih hebat daripada masing-masing individu anggota tim. Tim yang solid memiliki momentum untuk selalu sukses dan anggotanya sangat senang dan bangga menjadi anggota tim tersebut.

Bagian 4: Mengembangkan tim yang produktif

Masing-masing anggota tim yang solid merasa terlibat dalam kesuksesan dan kegagalan sebuah tim sehingga tim itu akan memiliki semangat dan energi yang tinggi. Tanda-tanda dari tim yang solid adalah:
  • Tingkat turnover (pergantian anggota tim) dalam mengerjakan suatu proyek rendah.

  • Memiliki identitas tim yang kuat. Mereka memiliki guyon yang khas dengan sesama anggota tim, dan biasa makan atau pergi bersama. Kadang mereka juga memiliki nama yang unik untuk timnya.

  • Anggota tim merasa bangga karena mereka menganggap tim mereka adalah tim yang elit.

  • Anggota tim memiliki rasa kepemilikan bersama atas produk yang mereka hasilkan. Mereka akan bangga mencantumkan nama-nama bersama dalam produk itu.

  • Tim yang solid menikmati pekerjaan mereka. Anggotanya saling berinteraksi dengan mudah, terbuka, dan nyaman.


Hal-hal yang bisa menghambat pembentukan tim yang solid adalah
  • Manajemen yang tidak percaya pada kemampuan timnya sendiri. Tim yang tidak diberi kepercayaan tidak akan menjadi tim yang solid.

  • Birokrasi dan kelengkapan dokumentasi yang berlebihan.

  • Pemisahan tempat kerja antara orang-orang yang seharusnya berada dalam tim yang sama. Pemisahan ini akan menghambat interaksi antara sesama anggota tim.

  • Menugaskan seseorang lebih dari satu project pada saat yang bersamaan. Bila seseorang berinteraksi dengan lebih dari 1 tim maka ia sulit menjadi bagian yang eksklusif dari tim-tim tersebut.

  • Menurunkan kualitas dari produk. Tidak seorangpun senang menjadi bagian dari tim yang menghasilkan produk jelek.

  • Terus menerus memberikan deadline yang tidak masuk akal. Deadline terlalu cepat membuat anggota tim berpikir bahwa pekerjaannya tidak mungkin sukses (diukur dari deadline). Tidak seorangpun ingin bekerja di kondisi yang tidak mungkin mencapai sukses.

  • Pengendalian tim oleh manajemen. Manajemen kadang merasa tidak aman dengan adanya tim yang sangat solid dalam perusahaan. Mereka merasa kesetiaan antar anggota tim lebih kuat daripada kesetiaan pegawai terhadap perusahaan. Jadi kadang bisa terjadi pemisahan tim oleh manajemen.


Manajer yang baik memberikan banyak kesempatan pada tim untuk mengalami sukses bersama-sama. Mereka memberikan kesempatan pada anggota tim untuk bekerja sama dengan rekannya pada hal-hal yang kecil seperti mengajak seluruh anggota tim untuk makan malam dan memberi kesempatan pada mereka untuk menyiapkan makanan sendiri bersama-sama.

Manajer perlu memberikan otoritas pada masing-masing anggota tim untuk melakukan bagiannya. Percayalah pada hasil kerja mereka dan tidak usah turut mencampurinya. Biarkan mereka bekerja sendiri sesuai dengan keahlian yang telah dimilikinya.

Berikut ini adalah daftar singkat hal-hal yang perlu diciptakan dalam sebuah organisasi:
  • Utamakan kualitas. Tim akan senang bila dia menghasilkan produk yang berkualitas.

  • Berikan penutupan yang memuaskan. Bila suatu proyek telah selesai atau telah mencapai tahap tertentu maka hal itu perlu dirayakan, sehingga anggota tim akan merasa bahwa apa yang dikerjakannya telah sukses dan tidak sia-sia. Bila tidak pernah ada penutupan, maka orang akan merasa pekerjaannya tidak pernah berakhir dan menjadi bosan.

  • Kembangkan kebanggan dan perasaan elit dalam menjadi bagian dari suatu tim.

  • Komposisi tim yang heterogen itu baik. Masing-masing anggota tim memiliki kelebihan dan kekurangan di bidang yang berbeda sehingga mereka bisa saling melengkapi.

  • Pertahankan dan lindungi tim yang sukses.

  • Tunjukkan arah yang strategis bukan taktis. Manajer seringkali berada di luar tim, sehingga tugasnya adalah membereskan masalah-masalah prosedural dan administratif yang menjadi halangan bagi tim. Tidak perlu terlalu mencampuri apa yang telah dipercayakan pada tim tersebut.

Friday, October 27, 2006

Rangkuman Peopleware - Bagian 3

The Right People
Bagian ketiga dari buku Peopleware karya Tom Demarco dan Timothy Lister membahas tentang hal-hal yang berkaitan dengan sumber daya manusia.

Bagian 3: Rekrutlah orang-orang yang tepat, buatlah mereka senang, dan jangan biarkan mereka pergi

Rekrutlah orang-orang yang memiliki kompetensi. Jangan takut dan kuatir dengan penampilan luar yang sedikit aneh dan berbeda. Pemilihan orang yang tepat untuk perusahaan ditentukan saat perekrutan karena seorang manajer tidak akan dapat mengubah perilaku bawahannya menjadi lebih baik.

Ketika merekrut seseorang, lihatlah tugas-tugas yang pernah diselesaikannya di masa lalu. Kalau perlu adakan semacam audisi, mintalah mereka melakukan 10 atau 15 menit presentasi untuk menceritakan pekerjaan/project yang pernah diselesaikan. Hadirkan calon rekan kerja mereka saat acara presentasi berlangsung sehingga anda juga bisa mendapat feedback dari mereka. Dengan adanya semacam audisi ini, anda dapat melihat kemampuan mereka dalam berkomunikasi serta semangat dan gairah mereka dalam pekerjaannya yang lalu. Tes kemampuan minat dan bakat juga perlu namun bukanlah hal yang terpenting karena tes ini sebagian besar hanyalah mengetes kerja otak kiri. Sebagian besar hal yang dilakukan di dunia kerja nantinya akan membutuhkan otak kanan.

Cobalah memikirkan berapa biaya yang dikeluarkan perusahaan dengan adanya turnover. Kita perlu meluangkan waktu untuk menyeleksi dan mewawancara pegawai baru, kita juga perlu melakukan training pegawai baru, pegawai baru tidak langsung memiliki produktivitas yang tinggi karena dia perlu beradaptasi. Semua ini memerlukan biaya yang tinggi sehingga mempertahankan pegawai adalah hal yang sangat penting. Untuk mempertahankan pegawai, anda harus membuat mereka merasa benar-benar diinginkan untuk tetap berada di sana. Hal ini dapat dilakukan dengan cara mengadakan training-training untuk karyawan sehingga mereka dapat mengembangkan diri mereka. Selain itu perusahaan anda harus selalu berusaha menjadi the best supaya karyawan anda puas dalam bekerja dan merasa bodoh kalau mencari pekerjaan lain.

Methodology (metode, aturan, dan standart) dan dokumentasi yang berlebihan akan menghambat kreativitas dan membuat orang tidak senang. Orang-orang akan bekerja dengan lebih baik bila mereka diijinkan untuk mencoba sesuatu yang baru. Mencapai keseragaman adalah hal yang penting, namun ada cara-cara yang lebih baik untuk mencapai keseragaman, misalnya: melakukan training, menyediakan sarana atau alat untuk otomatisasi (tools), dan mengadakan peer review (pertemuan antar rekan kerja untuk mengevaluasi dan membahas pekerjaan). Melalui ketiga hal di atas dengan sendirinya akan ditemukan metode untuk mengatasi hal-hal yang terjadi berulang kali. Metode inilah yang nantinya bisa diterapkan sebagai standart. Jadi sesuatu yang diterapkan sebagai standart harus telah terbukti sukses dilaksanakan.

Rangkuman Peopleware - Bagian 2

Quiet, Space, and Privacy
Berikan ruang yang tenang, tidak sumpek (do u know what sumpek means ?), dan privasi agar orang dapat bekerja lebih produktif.



Bagian 2: Lingkungan kerja berpengaruh pada produktivitas

Banyak programmer yang merasa harus datang ke kantor lebih pagi atau pulang lebih malam karena di saat-saat itulah dia baru mendapatkan suasana tenang yang membuatnya produktif.

Ketika orang bekerja, akan ada suatu saat di mana orang itu berada dalam kondisi flow. Mungkin kalo pemain basket disebut sedang on fire. Pada saat ini orang tersebut dapat bekerja dengan sangat produktif dan dia benar-benar menikmati apa yang dilakukannya tanpa merasa waktu telah berjalan panjang. Kondisi flow tidak akan terjadi bila banyak sekali terjadi interupsi seperti: telepon, bos yang mengajak bicara, mendapat pertanyaan dari rekan kerja. Bila tidak pernah terjadi kondisi flow maka walaupun seorang programmer hadir di kantor setiap hari bahkan bekerja lembur, ia tidak akan memiliki produktivitas yang tinggi. Sekali lagi, ciptakan ruang yang tenang dan damai untuk bekerja agar kondisi flow dapat terjadi.

Waspadailah telepon karena telepon benar-benar dapat mengganggu konsentrasi. Telepon bisa ditempatkan di ruangan lain atau hanya diaktifkan untuk waktu-waktu tertentu.

Kalau memang bisa, cobalah memberikan kesempatan pada tim anda untuk memilih sendiri tempat kerja yang nyaman untuknya. Biarkan orang-orang menentukan dan menata sendiri meja-meja kerjanya.

Jadi sekali lagi, berikan ruang yang tenang, lega, dan privasi yang cukup agar orang-orang dapat bekerja dengan produktif.

Thursday, October 26, 2006

Rangkuman Peopleware - Bagian 1

Peopleware
Peopleware – Productive Projects and Teams ditulis oleh Tom Demarco dan Timothy Lister, dua konsultan software veteran, pada tahun 1987 dan dicetak edisi keduanya pada 1999. Buku ini berisi banyak pelajaran berharga tentang membentuk sebuah tim, sebuah tempat, dan sebuah perusahaan yang produktif.

Saya merasa buku itu sangat bagus karena apa yang dituliskan di sana memang sering dialami oleh orang-orang yang bergerak di bidang pembuatan software. Buku ini terdiri dari 6 bagian dan memiliki 34 bab pendek yang mudah dibaca. Berikut ini adalah pelajaran-pelajaran yang bisa diambil dari buku tersebut.

Bagian 1: Manusia tidak seperti mesin sehingga tidak bisa dikelola seperti mengelola sebuah mesin

Kegagalan proyek pengembangan software tidak disebabkan oleh kurangnya penguasaan teknologi tetapi lebih pada masalah sosial, yaitu interaksi antara manusia-manusia yang terlibat di dalamnya.

Pengembangan software dan kegiatan produksi adalah hal yang sangat berbeda. Dalam kegiatan produksi orang yang terlibat di dalamnya bisa dengan mudah digantikan oleh orang lain. Dalam pengembangan software setiap orang memiliki peran unik yang tidak bisa digantikan. Bekerja dalam pengembangan software juga membutuhkan waktu yang cukup untuk berpikir, brainstorming, training, dan menemukan hal-hal baru. Jadi jangan hanya menghabiskan semua waktu yang ada untuk mengerjakan tugas-tugas.

Orang yang bekerja di bawah deadline yang ketat tidak bekerja lebih baik, mereka hanya bekerja lebih cepat. Jangan memaksa orang bekerja overtime. Ada saatnya orang itu akan merasa benar-benar tertekan dan meninggalkan perusahaan. Overtime itu seperti lari sprint pada marathon. Itu bisa berguna di saat-saat terakhir namun tidak berguna sama sekali jika dilakukan dari awal.
Turnover (keluar masuk karyawan) juga akan menimbulkan cost yang tinggi dalam perusahaan.

Kualitas adalah hal yang seringkali dikorbankan ketika kita menjumpai deadline yang terlalu pendek. Mengorbankan kualitas dari software berkaitan erat dengan mengorbankan rasa kebanggaan (self-esteem) dari pembuatnya. Hal ini akan membuat anggota tim pembuat software tersebut merasa tidak senang dengan apa yang dikerjakannya, dan pada akhirnya dapat menyebabkan dia meninggalkan perusahaan.

Ketika menentukan deadline suatu project, konsultasikan dengan orang-orang yang terlibat di dalamnya.

Fungsi seorang manajer bukan membuat seseorang bekerja tetapi membuat seseorang dapat melakukan pekerjaannya. Seorang manajer pengembangan software yang frustasi tentang produktivitas akan merasa ada solusi yang mudah untuk masalah ini. Mereka akan merasa hal-hal berikut ini benar:

  • Teknologi berjalan dengan sangat cepat sehingga kita mulai tertinggal
    Respons: Teknologi memang berjalan cepat, tetapi dalam bisnis pengembangan software kita akan banyak menghabiskan waktu untuk mengerjakan analisa dan spesifikasi. Produktivitas dalam pembuatan software yang berkaitan dengan teknologi tidak berkembang terlalu cepat.

  • Berganti bahasa pemrograman akan meningkatkan produktivitas.
    Respons : Bahasa pemrograman penting karena dapat mempengaruhi cara kita berpikir, namun bahasa pemrograman hanya berpengaruh pada tahap implementasi (coding). Pengembangan software melibatkan banyak pihak dan banyak tahap: ada tahap analisa, negosiasi, spesifikasi, coding, testing, training, user test, dll.

  • Tim anda akan bekerja lebih baik bila berada dalam tekanan
    Respons: Mereka tidak bekerja lebih baik – anda hanya akan membuatnya tidak senang.

Pandangan Mengenai Platform Java dan .NET

dotnet

Pada posting sebelumnya saya menuliskan kebingungan saya mengenai pemilihan platform pengembangan aplikasi. Tetap bertahan dengan Win32, atau mulai menggunakan waktu untuk belajar Java / .NET.
Terima kasih untuk pembaca blog yang telah memberikan comment-commentnya. Ini sangat berguna sebagai bahan pertimbangan. Pada akhirnya, saat membuat posting ini saya telah membuat keputusan untuk mulai belajar .NET. Berikut ini adalah pertimbangan saya untuk memilih mulai mempelajari platform .NET.

Win32
Aplikasi Win32 tentunya memiliki kinerja yang jauh lebih baik dibandingkan aplikasi yang dibuat dengan Java atau .NET. Tetapi pengembangan ke depan untuk platform ini tampaknya mulai digantikan oleh platform .NET. Tools-tools untuk pembuatan aplikasi terbaru selalu mengarah ke .NET atau Java. Mengenai masalah platform .NET dan Java yang haus hardware resource tampaknya akan dengan mudah teratasi karena kemampuan hardware yang selalu meningkat dengan pesat.
Platform ini masih yang terbaik untuk kinerja, namun tidak ada salahnya untuk melihat ke masa depan dan mulai mempelajari Java atau .NET.

Java
Platform ini sebanarnya memiliki feature yang sangat powerful. Cuma masalahnya terletak pada tingkat kesulitan untuk belajar. Selain itu pengembangan Java yang didukung oleh banyak pihak (mis: IBM, HP, SUN) juga dapat menimbulkan masalah tersendiri. Dalam dunia Java ada terlalu banyak pilihan. Untuk IDE saja ada dua editor yang sama hebatnya Eclipse dan Netbeans. Untuk pembuatan User Interface ada pilihan Swing atau SWT.
Terlalu banyak pilihan dalam dunia Java dan menurut saya itu membingungkan.

.NET
Platform ini didukung oleh satu vendor yang sangat kuat. Microsoft memegang kendali penuh atas .NET dan tentu akan mengeluarkan tools-tools programming yang bagus untuk platform ini, selain itu Microsoft juga rajin mengadakan seminar atau pelatihan .NET sehingga sarana belajar tersedia melimpah. Mempelajari .NET cukup mudah sehingga dengan sendirinya produktivitas akan lebih tinggi. Platform ini juga akan dimiliki oleh banyak user karena .NET framework kelihatannya akan selalu disertakan pada sistem operasi Windows yang terbaru.

Bagaimana dengan bahasa pemrograman untuk .NET yang tersedia cukup banyak? Untuk bahasa pemrograman, saya memilih C#. Bahasa ini dikembangkan oleh Microsoft sendiri dan telah terdaftar untuk standart ECMA dan ISO.

So, .NET is my choice. How about you?

Btw, untuk yang masih penasaran tentang .NET vs Java, ulasan yang terbaru ada di blog ITToolbox.