Saya masih di sekolah, dan saya tahu saya punya masalah berurusan dengan orang lain.
Saya bukan orang yang marah atau pemalu atau berbeda, saya hanya suka bekerja dengan cara saya dan dengan pendapat saya sambil menghormati orang lain, saya memiliki rasa ingin tahu yang besar dan lapar akan pengetahuan, tetapi saya kurang berlatih dan saya kira orang tidak mau bekerja dengan saya karena mereka mungkin takut saya akan berbicara semacam semangat. (Misalnya saya mulai belajar pemrograman menggunakan linux daripada windows, bahkan jika saya banyak menggunakan windows. Dan saya punya mac).
Apa yang terjadi pada programmer yang tidak memiliki kerja tim? Di mana masalah dimulai? Apakah menjadi seorang programmer yang baik memberikan kompensasi setidaknya sedikit? Apakah normal bagi seorang programmer untuk memiliki visi tentang pekerjaannya daripada hanya melakukan apa yang diperintahkan kepadanya?
Jawaban:
Perilaku Anda cukup umum di usia Anda. Aku seperti kamu.
Kabar baiknya adalah bahwa sebagian besar waktu, itu berkembang ke arah yang baik. Anda akan belajar bagaimana mengintegrasikan diri Anda dalam suatu tim. Kau akan menyukainya! Tetapi saya bertemu dengan beberapa orang yang tidak mampu dan sekarang terjebak adalah depresi.
Bergantung pada gaya manajemen perusahaan Anda, Anda akan ditolak oleh tim Anda atau dipecat setelah beberapa saat. Jadi, Anda harus siap menghadapi beberapa kesulitan.
Gaya manajemen Prancis yang paling umum didasarkan pada rasa takut dan hukuman. Ini bukan berita baik bagi Anda karena akan mendorong individualisme Anda. Jadi itu akan mendorong perilaku Anda.
Yang mengatakan, Anda sudah tahu ada masalah dengan Anda, jadi itu indikasi yang cukup bagus bahwa Anda memiliki semua yang Anda butuhkan untuk berkembang tanpa bantuan eksternal. Langkah pertama adalah menyadari. Yang kedua, yang paling sulit, adalah bertindak berdasarkan itu.
sumber
Tergantung pada apa yang dibutuhkan pekerjaan. Terkadang Anda bahkan tidak memiliki tim untuk tugas tertentu. Tetapi sebagian besar waktu, Anda akan memiliki manajer.
Juga, memiliki tim benar-benar membantu mengingatkan Anda dari waktu ke waktu bahwa Anda menulis kode sampah. :
Yang berarti, memiliki tim akan mempermudah mempelajari hal-hal lebih cepat! Menjadi penyendiri akan membuat Anda seorang pertapa;)
sumber
Maka menjadi sulit untuk mengerjakan proyek yang terlalu besar untuk satu programmer. Sulit untuk programmer tunggal, dan sulit untuk anggota tim lainnya.
Segala macam tempat. Saat ini kami memiliki satu programmer yang buruk dalam bekerja sebagai bagian dari tim. Dia cenderung membuat jalan pintas yang memiliki efek buruk pada sisa aplikasi karena dia terlalu fokus pada memperbaiki bug di depannya. Atau menulis fitur baru sedemikian rupa sehingga tidak kompatibel dengan aplikasi lainnya. Kami harus mengatur ulang hal-hal sehingga setiap kode masuknya ditinjau oleh anggota tim lainnya. Tetapi agar tidak memilihnya, kami juga meninjau kode cek semua orang, jadi bersama dengan pertemuan status pagi, kami tidak menyelesaikan pekerjaan sampai setelah makan siang. Jadi di kantor kami, ini berarti bahwa 4 orang kehilangan 1/2 hari kerja setiap hari karena satu orang buruk dalam kerja tim. Saya tidak bisa mengatakan itu adalah peningkatan dari petualangan sebelumnya, karena kami dapat kehilangan secara acak sehari hingga seminggu (biasanya mengejar bug baru) dari check-in yang merusak barang-barang (kami menyebutnya "robstacles"). Beberapa perbaikan pada kodenya akan menghapus setengah lusin bug karena seberapa kusut dan berantakan aplikasi ini (rekomendasi saya untuknuke dari orbit, dan mulai lagi karena itu satu-satunya cara untuk memastikan tidak diterima).
Ketika kami berada dalam suasana hati yang baik, kami memanggilnya "head down programmer" karena ia cenderung melihat ke bawah pada keyboard dan mengetik sangat cepat. Dia tidak memperhatikan apa yang dilakukan orang lain.
Tidak. Sebagian besar programmer yang merupakan pemain tim yang buruk memiliki pendapat yang sangat tinggi tentang keterampilan mereka sendiri, dan ini disebut efek Dunning-Kruger . PDF kertas.
Mungkin: programmer solo harus jauh lebih baik daripada anggota tim lainnya. Tetapi ini hanya berarti bahwa tidak ada orang lain yang dapat mempertahankan apa yang dia lakukan; dan ketika itu terjadi, itu mungkin berarti bahwa programmer solo sebenarnya tidak jauh lebih baik daripada anggota tim lainnya - dia (dan hampir selalu seorang pria) hanya lebih baik dalam menipu semua orang.
Dalam pengembangan perangkat lunak bisnis, perusahaan akan ada lama setelah Anda pergi. Program kemungkinan besar ditulis sebelum Anda mulai, dan akan dikelola lama setelah Anda pergi. Jika Anda menulis hal-hal yang begitu istimewa dan menakjubkan sehingga tidak ada orang lain yang bisa memahaminya, maka Anda berakhir dalam situasi di mana Naughty Dog berada - pengembang utama mereka berhenti, tidak ada orang lain yang mengerti bahasa pemrograman yang dipatenkan orang itu menulis (dan menulis hal-hal di), jadi mereka sekarang harus mengalihkan semuanya ke C ++.
Itu umum - seperti kemacetan lalu lintas atau diabetes. Saya tidak akan menyebutnya normal. Di dunia korporat, ada banyak hal lain yang perlu dipertimbangkan; ego yang kuat yang dimiliki banyak pengembang biasanya membuat pengembang berpikir bahwa tidak ada yang lain yang penting. Ini "kurang cocok" dan kurangnya pertimbangan untuk sisa bisnis adalah mengapa begitu banyak tipe manajer sampai pada kesimpulan bahwa pengembang perangkat lunak sulit untuk bekerja dengannya.
sumber
Ini keterampilan yang bisa dipelajari. Anda dapat belajar sekarang (hanya dengan mencoba bekerja dengan orang lain) atau belajar dengan cara yang sulit, di tempat kerja. (Saya sarankan yang pertama.)
Jika Anda tidak dapat bekerja dengan orang lain maka Anda tidak dapat membangun sistem besar. Anda juga tidak bisa bekerja dengan orang yang lebih pintar daripada Anda, yang berarti Anda tidak bisa belajar sebanyak atau secepat itu.
sumber
Menjadi programmer yang baik akan memberikan kompensasi sedikit tetapi hanya sedikit. Dalam enam belas tahun di industri ini, semua programmer terbaik yang pernah bekerja sama dengan saya bisa bergaul dengan orang-orang - itu mungkin tidak datang secara alami kepada mereka tetapi mereka berhasil dan itu adalah keterampilan yang benar-benar penting. Mereka yang tidak bisa ditoleransi tetapi dalam kejujuran tidak lebih.
Bagi saya area utama kemampuan untuk bekerja dengan orang lain ikut bermain adalah dengan pengguna dan analis. Tidak masalah seberapa baik Anda dapat kode jika Anda mengkode hal yang salah dan hubungan kerja yang baik dengan orang-orang yang mendefinisikan produk adalah kunci untuk itu.
Langkah pertama mungkin untuk memahami sedikit lebih banyak tentang diri Anda. Anda berkata bahwa Anda senang menghargai pendapat orang lain tetapi apakah ini benar? Jika demikian, mengapa Anda menyiratkan bahwa Anda cenderung mengambil posisi moral pada masalah (yang cenderung berlawanan dengan menghormati pandangan orang lain)?
Umumnya bergaul dengan orang lain cenderung mengabaikan siapa yang benar dan siapa yang salah (yang percaya atau tidak itu tidak relevan dalam 80% situasi) dan berfokus melakukan apa pun yang menggerakkan proyek ke depan.
sumber
Pengembangan perangkat lunak profesional saat ini terutama merupakan upaya tim. Perangkat lunak terbaik dihasilkan melalui berbagi ide-ide baru dan kolaborasi tinggi dan tidak mengutak-atik kesendirian Anda. The koboi coder yang ideal merupakan hambatan diketahui untuk tim. Faktanya, itu adalah lawan total dari kerja tim.
Jadi ya, memiliki keterampilan tim yang buruk dalam pengaturan tim sangat buruk. Tetapi jika Anda benar-benar mau bekerja dengannya, tidak ada alasan Anda akhirnya tidak akan menjadi kontributor tim yang hebat (dengan keterampilan coding yang hebat untuk mem-boot)!
sumber
Yang lain sudah membahas sebagian besar dari apa yang akan saya katakan, jadi saya hanya akan menambahkan ini: hanya karena Anda memiliki pendapat atau visi tidak berarti Anda benar atau bahwa pendekatan Anda adalah yang terbaik. Ada banyak hal yang dapat Anda pelajari dari orang lain jika Anda membuka pikiran terhadap kemungkinan bahwa mereka juga memiliki pendapat dan / atau visi.
Kerja tim adalah tentang membuat semua pendapat itu bersatu menjadi sesuatu yang dibangun berdasarkan pengalaman kolektif orang-orang yang terlibat dan mengatasi kekurangan yang mungkin tidak dipertimbangkan oleh satu orang.
Itu adalah salah satu pelajaran pertama yang saya pelajari di pekerjaan, dan saya menjadi programmer yang lebih baik setelah itu.
sumber
Jika Anda tidak dapat berkolaborasi dengan orang lain dan Anda bukan jenius bintang pengkodean yang terlahir secara alami, Anda pada dasarnya memblokir diri sendiri karena bekerja pada proyek non-sepele, karena untuk ini Anda menginginkan tim jika tidak lain adalah menurunkan faktor bus.
Jika Anda tidak suka kontak fisik, tetapi bekerja dengan baik dengan telecommuting atau pada milis open source, maka Anda harus mengkhususkan diri dalam keterampilan yang memungkinkan untuk bekerja seperti itu.
sumber
Sayangnya ini bisa menjadi sedikit masalah karena jarang bekerja pada proyek-proyek besar dan tidak harus bekerja dalam tim. Bahkan jika Anda bekerja pada proyek yang saling tergantung, Anda umumnya akan menemukan bahwa Anda harus bekerja lebih dekat dengan pengguna akhir yang semuanya kembali ke kerja tim, jadi itu adalah sesuatu yang sangat penting.
Meskipun demikian, seperti yang telah ditunjukkan oleh orang lain, ini adalah keterampilan yang dapat dipelajari (sampai batas tertentu) dan jika Anda berupaya melakukannya. Secara umum ada beberapa kursus yang dapat Anda ikuti di Amerika Serikat di kota-kota besar untuk mengembangkan keterampilan kepemimpinan; Namun, bagian dari menjadi pemimpin yang baik juga menjadi pengikut yang baik sehingga keterampilan itu dikembangkan juga. Demikian juga, mampu berkomunikasi secara efektif di depan umum kadang-kadang merupakan keterampilan yang orang perlu latih dengan dan terkait dengan keterampilan kerja tim, tetapi kadang-kadang ditutup-tutupi - seseorang yang tidak dapat berkomunikasi secara efektif dapat disebut tidak menjadi "pemain tim" meskipun hanya perlu sedikit melatih keterampilan komunikasi mereka.
Namun, sebagian besar bekerja dengan tim adalah mengetahui diri Anda sampai batas tertentu dan merasa nyaman dengan diri sendiri serta dengan orang lain sehingga terkadang tidak ada salahnya untuk berbicara dengan psikolog atau konselor untuk melihat apakah ada sesuatu yang dapat Anda tingkatkan dalam hal bekerja dengan orang lain.
Sehubungan dengan karir Anda secara keseluruhan, di sini di Amerika Serikat, memiliki reputasi "sulit untuk bekerja sama" atau "tidak menjadi pemain tim" bisa sangat merusak prospek karir jangka panjang Anda dan saya akan menebak-nebak. bahwa itu akan sama di sebagian besar negara lain. Ini juga merupakan reputasi yang sulit untuk diguncang begitu didirikan tanpa membuat pindah ke perusahaan lain atau bahkan mungkin industri lain tergantung pada bidang apa Anda bekerja.
sumber
Karena Anda seorang pembelajar yang baik, ada satu hal lagi yang harus Anda pelajari, yang sudah diketahui beberapa orang.
Ada waktu untuk mandiri, dan ada waktu untuk bersatu. Keduanya penting.
Karena Anda berada di sekolah, Anda dapat melatih rasa ingin tahu Anda dan mencari cara baru dan berbeda untuk melakukan sesuatu. Itu hal yang baik.
Ketika Anda bekerja dengan tim perangkat lunak, Anda dapat menyumbangkan ide-ide bagus Anda. Beberapa akan diterima. Beberapa tidak. Kemudian Anda semua "letakkan bahu Anda di atas kemudi" dan selesaikan pekerjaan. Itu juga hal yang baik.
Pengalaman saya di proyek adalah ada semangat kerja kelompok yang rendah pada awalnya, ketika orang masih mencoba untuk mendapatkan gambaran besar dalam fokus. Kemudian moral terus meningkat ketika kemajuan dibuat menuju tujuan. Menjelang akhir itu sangat tinggi karena "bayi" Anda lahir ". Itu sesuatu yang tidak ingin Anda lewatkan.
sumber
Saya dapat menganggap sejumlah pemrogram hebat yang dianggap (oleh banyak) sebagai "cukup sulit untuk dikerjakan":
Dalam industri ini, saya pikir sebagian besar dari kita berharap dan menganggap bahwa kompetensi dan kemampuan untuk mengartikulasikan kompetensi kita sangat penting. Lagi pula, kami pergi bekerja untuk menyelesaikan beberapa tugas untuk mendapatkan uang, membuat teman adalah nomor dua.
Pada titik tertentu dalam hidup Anda, Anda akan menyadari satu dari dua hal:
Anda berada dalam posisi untuk bersikap sinis, menarik diri, antisosial, sinis atau kasar seperti yang Anda inginkan karena terlepas dari perilaku Anda, keterampilan Anda (dan kemampuan untuk mengartikulasikan pengetahuan Anda) mengakhiri semua argumen.
Anda sama seperti orang lain dan perlu untuk dapat bekerja dalam pengaturan tim, sambil bertahan dengan (dan otak memilih) sinis, ditarik, perilaku antisosial, sinis dan kasar dari orang lain yang keterampilan dan kecakapannya dalam mengartikulasikan pengetahuan mengakhiri sebagian besar argumen.
Jika Anda mempertanyakan ini, saya pikir Anda melihat beberapa nilai dalam berpartisipasi secara setuju dalam pengaturan tim, dan mungkin 'melakukannya demi melakukannya' adalah alasan yang cukup baik untuk mengeksplorasi kemungkinan.
Aku juga sangat menyukaimu. Saya benci gangguan, butuh bagian yang lebih baik dari lima tahun hanya untuk belajar bagaimana tidak mengganggu dan memecat orang. Saya juga bekerja pada tim-tim di mana saya belajar lebih banyak dalam sebulan daripada yang bisa saya miliki dalam satu tahun sendiri. Bukankah aneh bahwa Anda hanya ingin orang-orang di sekitar Anda ketika Anda memiliki sesuatu yang menarik untuk ditampilkan atau didiskusikan?
Jika Anda belum melihatnya, saksikan film " Real Genius ". Berikan perhatian khusus pada Lazlo Hollyfeld . Lompat ke tim dengan pikiran terbuka, dan merasa bebas untuk meminjam piyama saya.
sumber
Tidak ada yang salah dengan memiliki pendapat yang kuat tentang bagaimana hal itu seharusnya terjadi. Setiap programmer hebat memiliki banyak dari mereka. Namun, Anda perlu bertanya pada diri sendiri: mengapa saya menulis kode ini?
Jika itu untuk hiburan Anda sendiri, dan Anda dapat melakukan semua pekerjaan sendiri, maka lakukan apa pun yang Anda mau. Namun, jika Anda melakukannya untuk digunakan orang lain, atau jika Anda memerlukan bantuan, atau jika Anda berharap bahwa programmer lain akan memeliharanya setelah Anda bosan, Anda harus mulai mempertimbangkan kebutuhan dan gagasan orang lain.
Memiliki visi itu baik-baik saja. Tetapi itu benar-benar hanya membuat perbedaan jika Anda dapat membujuk orang lain untuk membagikan visi Anda. Gates, Jobs, dan Torvalds semua berhasil mewujudkan visi mereka dengan membuat produk yang melayani banyak orang, dan membuat mereka membeli visi mereka. Bekerja murni dengan cara Anda lebih murni dan memuaskan, tetapi harus dibayar mahal. Anda mungkin, seperti kata Voltaire, membiarkan yang sempurna menjadi musuh orang baik ("Le mieux est l'ennemi du bien").
sumber
Kerja tim adalah bagian penting dari Rekayasa Perangkat Lunak. Jika Anda bekerja sendirian, Anda mungkin tidak merasa terganggu tentang bagaimana orang lain dan apa yang orang harapkan dari Anda. Tetapi jika Anda bekerja dengan orang lain, bekerja bersama benar-benar diperhitungkan. Ketika datang ke perangkat lunak, apa yang Anda maksud dengan kerja tim adalah benar-benar ' berkomunikasi dengan baik '. Berikan rasa hormat kepada kolega Anda dan toleran terhadap semua ide. Itu harus baik-baik saja.
sumber
Jika Anda memercayai sesuatu, ucapkan dan bersungguh-sungguh, tetapi setelah terbukti salah atau mengungguli, terimalah dan pelajari darinya. Kerja tim bukan tentang menyetujui sepanjang waktu, tetapi memiliki cara untuk mendapatkan solusi terbaik dalam situasi dan kerangka waktu yang diberikan.
sumber
Karena Anda baru saja bersiap untuk masuk ke dunia kerja, saya akan menunjukkan sesuatu yang lain.
Programmer entry level tidak pernah superstar. Anda tidak dapat pergi ke pekerjaan dengan berpikir Anda lebih baik daripada orang lain karena terbukti, Anda tidak. Anda telah bersaing dengan orang lain di level Anda, jadi Anda bisa berpikir, saya lebih baik daripada orang-orang ini, saya harus menjadi programmer yang hebat.
Tetapi seseorang yang baru keluar dari sekolah tidak tahu apa yang diketahui oleh orang yang memiliki sepuluh tahun pengalaman profesional. Anda belum tahu itu. Sekarang saya akui tidak semua orang dengan banyak pengalaman adalah superstar baik dan hanya menjadi entry level tidak berarti Anda tidak bisa menjadi programmer yang baik. Itu bahkan tidak berarti Anda tidak bisa menjadi superstar dengan bumbu yang lebih sedikit daripada beberapa orang lain (Yah, beberapa tidak akan pernah menjadi superstar, tapi itu juga oke).
Tetapi Anda tidak akan memiliki kredibilitas untuk menerapkan ide-ide Anda sampai Anda adalah sesuatu yang bukan orang paling junior dalam tim. Untuk mendapatkan kredibilitas itu, Anda harus menjadi pemain tim. Anda perlu belajar tentang domain bisnis dan bagaimana bisnis beroperasi. Anda perlu memahami bahwa kebutuhan dan keinginan pribadi Anda tidak relevan di sebagian besar tempat kerja. Anda akan disewa untuk melakukan pekerjaan tertentu dan memberikan hasil. Sampai Anda menghasilkan beberapa dari mereka, orang akan skeptis terhadap apa pun yang Anda sarankan bahkan jika Anda benar. Anda harus berjalan sebelum dapat berbicara.
sumber
Anda akhirnya akan bekerja sendiri.
Manfaat bekerja dalam tim:
1- Bantuan Interaktif: Anda tidak akan terjebak dalam masalah selama berjam-jam / hari.
2- Anda akan mempelajari hal-hal yang tidak akan Anda temukan di buku / tutorial online, forum.
3 - Persaingan: akan memicu motivasi Anda untuk mengatasi tim.
4- Diskusi: yang lebih baik daripada berjam-jam membaca buku dan blog.
sumber