Apa yang baik dan apa yang buruk. Karier pengembang melalui mata pemimpinnya

Apa perbedaan antara tampilan karier pengembang dan pemimpinnya


Hidup ini penuh dengan kontradiksi. Bahkan cahaya tidak dapat menentukan siapa itu - partikel atau gelombang.
Dalam dunia pengembangan perangkat lunak, kontradiksi antara para aktor adalah mobil dan gerobak kecil. Mari kita lihat pasangan - pengembang dan manajer pengembangan (ini bisa menjadi manajer proyek, manajer teknis, pemimpin tim). Ternyata, keduanya sering melihat hal-hal yang berbeda dan umumnya cenderung ke arah yang berbeda.



Apa yang diinginkan pengembang


Semua orang menginginkan hal yang berbeda. Tetapi karena kami tidak dapat melakukannya tanpa generalisasi, kami mengambil pengembang tingkat menengah dalam ruang hampa. Dia cukup malas, cukup ingin tahu, dan dia biasanya menyukai profesinya. Dia hanya akan memiliki kerangka waktu yang lebih lembut, proses yang lebih baik, tugas yang lebih menarik.

Bagaimana dia ingin berkembang? Tapi seperti ini:

  • Pelajari teknologi baru
  • Selesaikan masalah yang lebih menarik.
  • Berpartisipasilah dalam proyek baru
  • Lebih sedikit kegiatan non-pembangunan
  • Buat keputusan sendiri

Pada saat yang sama, manajernya ingin:


  • Sehingga pengembang mengetahui teknologi yang digunakan dengan baik
  • Sehingga pengembang mengatasi tugas dengan baik: dengan kualitas yang tepat dan tepat waktu
  • Bahwa pengembang bertanggung jawab dan selalu menyelesaikan apa yang dia lakukan
  • Bagi pengembang untuk memberikan penilaian yang memadai untuk tugas-tugas tersebut
  • Sehingga pengembang memiliki pemahaman tentang kebutuhan bisnis dan produk secara keseluruhan
  • Bagi pengembang untuk melaporkan masalah secara tepat waktu

Ingin tahu cara berkompromi? Selamat datang di kucing.

Jadi apa yang kita miliki. Ada kontradiksi penuh dalam kepentingan.

Pengembang ingin mempelajari hal-hal baru, dan manajer menginginkannya untuk dapat menggunakan alat yang dikenal dengan baik.

Pengembang ingin menyelesaikan masalah yang menarik, dan manajer memiliki sekumpulan tugas biasa yang harus dilakukan seseorang.

Pengembang ingin berpartisipasi dalam proyek baru, dan manajer membutuhkan seseorang untuk mendukung yang sudah ada.

Pengembang tidak ingin melakukan apa pun selain pengembangan, dan manajer memerlukan kode untuk didokumentasikan, proses pengembangan harus transparan dan dikelola, untuk memenuhi rencana, mengeluarkan rilis, dll. Untuk melakukan ini, ia meminta untuk memberikan penilaian, melakukan stand-up, retrospektif, membuatnya merencanakan kegiatannya.

Pengembang ingin membuat keputusan sendiri (ia tahu bagaimana melakukannya dengan benar), dan manajer menuntut agar ia diberi tahu tentang masalah yang teridentifikasi sehingga ia dapat mengendalikan keputusan tersebut.

Tidak mengherankan bahwa banyak manajer pengembangan memiliki reputasi buruk di antara pengembangnya - mereka tidak mengizinkan Anda melakukan apa yang Anda inginkan, tetapi, mereka memaksa Anda untuk melakukan apa yang membuat Anda sakit.

Penyebab


Alasannya menurut saya sangat sederhana. Pengembang dan manajernya memiliki tujuan yang berbeda.

Tujuan pengembang adalah untuk menjadi lebih laris di pasar tenaga kerja.

Tujuan pemimpin adalah mengantarkan proyek tepat waktu.

Namun, terlepas dari perbedaan radikal seperti itu, adalah mungkin untuk mencapai kompromi yang cocok untuk kedua belah pihak.

Mari kita coba memahami lebih detail.

Pengembang


Pelajari teknologi baru


Ini sangat menarik dan menginspirasi. Pada tahap awal menjadi spesialis, penting untuk memiliki pandangan luas tentang industri dan memahami apa yang secara umum ada peluang untuk pengembangan. Namun, seiring waktu, kuantitas harus berubah menjadi kualitas.

Saya tidak tahu tentang Anda, tetapi saya sering waspada dengan resume pengembang (dengan pengalaman 2-4 tahun), yang mencantumkan puluhan bahasa, kerangka kerja, dan perpustakaan. Ini mungkin merupakan sinyal bahwa seseorang melakukan sedikit dari segalanya, tetapi tidak tahu apa-apa secara mendalam (walaupun ada pengecualian). Lebih baik bertemu seseorang yang tidak tahu banyak, tetapi tahu pasti. Dan ini membutuhkan pengalaman praktis yang signifikan dalam menerapkan teknologi. Maka akan ada pemahaman tentang kehalusan dan batas-batas penerapannya, dan ini sangat penting.

Dengan demikian, penting dan perlu untuk mempelajari teknologi baru, tetapi sangat diinginkan bahwa praktik nyata ada di balik ini. Bahkan jika Anda sedang mengembangkan proyek hewan peliharaan, pastikan bahwa teknologi tersebut tidak digunakan untuk pertunjukan, tetapi benar-benar menyelesaikan masalah bisnis.

Selesaikan masalah yang lebih menarik.


Saya pikir semua orang akrab dengan konsep "rutin". Tidak ada yang ingin melakukan hal yang sama setiap saat. Namun, ada detail yang sangat penting. Tidak adil untuk menginginkan tugas-tugas baru yang menarik jika Anda hampir tidak mengelola yang lama yang tidak menarik. Keterampilan apa pun memiliki langkah, dan Anda tidak dapat melompati mereka - cepat atau lambat itu akan menyebabkan kejatuhan yang menyakitkan.

Secara umum, semuanya seperti dalam permainan komputer. Untuk pindah ke level baru, Anda harus melewati level sebelumnya dengan baik. Sebelum menuntut tugas-tugas menarik dari manajer, belajar untuk memecahkan masalah saat ini dengan cepat dan efisien, maka akan menjadi jelas bahwa Anda pantas mendapatkan lebih banyak.

Berpartisipasilah dalam proyek baru


Jelas sekali. Cukup banyak orang yang antusias mendukung proyek ini secara teratur. Memperbaiki bug mereka sendiri dan kawan-kawan mereka saat mereka sedang mengembangkan sesuatu yang baru sangat memalukan.

Tetapi bagaimanapun juga, adalah dukungan bahwa pemahaman tentang kebutuhan bisnis sering diperoleh, yang sangat penting untuk setiap proyek. Pengembang belajar untuk melihat perangkat lunaknya melalui mata pengguna - dan ini adalah salah satu keterampilan paling berharga bagi programmer. Selain itu, kemampuan untuk memahami kode yang ada muncul, hati-hati refactor, tanpa merusak seluruh sistem. Keterampilan ini akan berguna tidak hanya untuk dukungan, tetapi juga ketika mengembangkan proyek baru - jangan mengulangi kesalahan masa lalu, mempertahankan basis kode dalam kondisi yang layak, dan berurusan dengan utang teknis.

Jangan menolak untuk mendukung proyek yang Anda kembangkan - ini adalah pengalaman berharga yang dapat secara signifikan mempercepat karier Anda.

Lebih sedikit kegiatan non-pembangunan


Ada banyak pengembang yang menganggap menulis dokumentasi, rapat perencanaan, retrospektif, berkomunikasi dengan pelanggan sebagai buang-buang waktu. Yang utama adalah menulis kode? Bahwa semuanya rapi, indah, konsisten dengan pedoman.

Tidak. Hal utama adalah bahwa perangkat lunak melakukan apa yang diperlukan - menyelesaikan masalah bisnis. Selain itu, sangat diharapkan bahwa pembangunan memenuhi tenggat waktu dan anggaran. Jika tidak, sangat mungkin kode ideal kami tidak akan pernah berfungsi.

Anda harus menyadari bahwa untuk pengembangan yang kompleks, Anda memerlukan rencana, sinkronisasi reguler dari peserta proyek (termasuk pelanggan), dokumentasi berkualitas tinggi dan hal-hal lain yang bukan penulisan kode.

Jika Anda ingin menjadi peserta yang penting dan berguna dalam proyek, Anda harus memiliki pemahaman tentang proses yang terjadi pada proyek dan mencoba mengikuti mereka. Ini adalah pengalaman lain yang bermanfaat yang harus dimiliki setiap orang.

Pengawas


Ketahui teknologi yang digunakan untuk
mengatasi tugas-tugas yang ditetapkan: dengan kualitas yang tepat dan tepat waktu


Seorang pemimpin membutuhkan orang untuk diandalkan. Jika tugas diatur, itu harus diselesaikan. Tidak masalah jika pengembang tertarik untuk melakukan ini atau apakah itu merupakan rutinitas yang menyakitkan baginya. Ini terjadi jika Anda "menyelesaikan masalah saat tersedia" dan "hidup di masa sekarang." Tetapi untuk menyelesaikan kontradiksi, seseorang harus bertindak secara berbeda. Dengan terus-menerus mengajari pengembang hal-hal baru dan memberikan mereka pengalaman memecahkan masalah yang ada, kami meningkatkan level mereka. Memperoleh pengetahuan tambahan, pengalaman dan keluasan pikiran, mereka akan memecahkan masalah yang ada jauh lebih cepat, dan mungkin menawarkan peningkatan dalam proses. Perubahan semacam itu, yang diprakarsai "dari bawah", berharga tidak hanya untuk hasil langsungnya, tetapi juga motivator hebat bagi pengembang untuk mencari dan menawarkan yang baru.

Mengalokasikan waktu bagi orang untuk secara mandiri mempelajari teknologi baru atau melatihnya, Anda bisa mendapatkan tim yang sangat produktif dan termotivasi.

Bertanggung jawab dan selalu menyelesaikan apa yang diperlukan


Saya pikir semua orang akan setuju bahwa pemrograman profesional terutama tentang mencapai hasil. Agar berhasil, semua peserta proyek harus menyelesaikan tugas mereka. Akibatnya, tidak masalah seberapa keren seorang pengembang secara teknis, jika ia tidak dapat menyelesaikan satu tugas dan membuang semuanya di tengah jalan. Kebenaran universal yang diajukan oleh pemrogram hebat adalah bahwa masalahnya harus diselesaikan dengan cara yang sesederhana mungkin. Mungkin ini umumnya kualitas paling penting dari pengembang - untuk dapat menyelesaikan masalah tanpa kesulitan yang tidak perlu. Merumitkan itu mudah, menyederhanakan itu sulit.

Saya tidak takut untuk mengatakan bahwa orang-orang itulah yang paling dihargai pada proyek nyata. Baik pemimpin dan mitra proyek tahu bahwa Anda dapat mengandalkan seseorang bahwa dia tidak akan gagal.

Pendidikan pada orang dengan sikap profesional yang tepat seperti itu adalah salah satu tugas penting seorang pemimpin. Mekanisme yang paling penting dalam hal ini adalah promosi hasil. Sebagai hasilnya, Anda mendapatkan bukan hanya tim pengembangan, tetapi tim yang terdiri dari orang-orang yang berpikiran sama, yang masing-masing tertarik untuk mencapai tujuan bersama.

Berikan penilaian yang memadai untuk tugas-tugas


Banyak pengembang mungkin memiliki pemikiran - mengapa mereka terus-menerus menuntut perkiraan dari saya, bagaimana saya akan melakukannya, saya akan melakukannya, toh, sebelum saya selesai, tidak ada yang akan muncul. Peringkat tampak seperti mekanisme kontrol yang memalukan. Namun, lihatlah ini melalui mata seorang pemimpin.

Seperti yang sudah saya tulis, agar proyek itu berhasil, manajer harus punya rencana. Ada pengecualian yang membahagiakan, tetapi dalam kasus umum, tanpa rencana, pembangunan berubah menjadi kekacauan. Bahkan jika rencana itu tidak dilaksanakan berdasarkan kalender, itu masih menguntungkan - manajer melihat di mana masalahnya dan dapat mengatur ulang untuk menyelesaikan masalah. Untuk membuat rencana, pemimpin perlu penilaian. Bahkan jika pengembang meremehkan atau melebih-lebihkan tugas, bagi manajer ini hanyalah alasan untuk memperkenalkan faktor koreksi. Dengan demikian, memiliki perkiraan dari pengembang dan faktor koreksi yang dikonfirmasi secara historis, pemimpin dapat membangun rencana yang dekat dengan kenyataan.

Pengembang sering meremehkan kebutuhan akan perencanaan karena mereka fokus pada pengembangan. Tapi seperti yang kita tahu, proyek yang sukses bukan hanya pengembangan. Ini membutuhkan pengujian, dokumentasi, penerbitan kepada pelanggan, organisasi UAT, dll. Tim harus bertindak dalam konser, perencanaan dan mengikuti rencana memberikan konsistensi seperti itu.

Karena keberhasilan proyek juga merupakan keberhasilan masing-masing peserta, untuk mencapai keberhasilan mereka sendiri, pengembang harus dapat mengevaluasi tugas-tugas secara memadai.

Pemimpinlah yang harus memberi pengembang pemahaman tentang semua proses yang terjadi di luar pengembangan. Jelaskan arti dari setiap tindakan dan keputusan, pentingnya perencanaan, komunikasi. Kesadaran adalah kunci kesuksesan.

Memiliki pemahaman tentang kebutuhan bisnis dan produk secara keseluruhan


Cukup sering, pengembang fokus pada penulisan kode, mengabaikan masalah bisnis yang mereka selesaikan. Sayangnya, ini adalah karakteristik tidak hanya untuk pemula, tetapi juga untuk spesialis mapan dan berjudul.

Seperti yang sudah saya tulis, saya menganggap solusi untuk masalah bisnis sebagai tugas utama pemrograman. Oleh karena itu, secara alami, hanya orang yang dapat secara efektif menyelesaikan masalah ini yang dapat dianggap sebagai programmer yang baik. Untuk melakukan ini, penting untuk memahami dengan jelas apa yang terjadi dalam bisnis yang kamiotomatiskan.

Dengan demikian, keinginan manajer untuk pengembang untuk memahami kebutuhan bisnis dan mempertimbangkan setiap tugas terutama dari sudut pandang ini (tugas bisnis mana yang kami selesaikan dan mengapa) lebih dari sekadar keinginan alami. Hanya dengan cara ini seorang pengembang dapat mencapai penguasaan nyata. Jadi, kepentingan sebenarnya dari pemimpin dan pengembang bertepatan di sini.

Seperti pada paragraf sebelumnya, tugas pemimpin adalah menjelaskan dengan jelas dan jelas kepada pengembang apa yang dibutuhkan bisnis dan mengapa. Selain itu, perlu untuk menyampaikan kebenaran sederhana - orang yang dapat mempelajari bidang subjek dan menghargai masalah tertentu dihargai, dan bukan orang yang hanya menulis kode yang indah.

Laporkan masalah tepat waktu


Untuk memastikan keberhasilan proyek, sangat penting bagi manajer untuk menerima informasi yang tepat waktu tentang masalah dengan menyelesaikan tugas. Pengembang, sebaliknya, seringkali lebih memilih untuk sepenuhnya menangani masalah dan melaporkannya hanya ketika semua tenggat waktu yang wajar telah berlalu. Harus dikatakan bahwa keinginan untuk memahami masalah secara mandiri selalu terpuji. Namun, untuk kepentingan proyek, perlu memberi tahu kepala masalah yang dapat menambah waktu untuk menyelesaikan masalah sehingga ia dapat mempertimbangkan hal ini dalam rencana.

Keterampilan paling penting dari pengembang adalah kemampuan untuk berkomunikasi secara tepat waktu dan terbuka dengan peserta proyek lainnya. Melaporkan masalah secara tepat waktu adalah bagian penting dari komunikasi.
Dalam hal ini, pemimpin tidak harus segera bergegas memecahkan masalah. Lebih bijaksana untuk memberi waktu pengembang untuk mencari tahu sendiri, membuat keputusan yang diperlukan dan menyajikan hasilnya. Ini akan memberinya kepercayaan pada kemampuannya, kebiasaan mengandalkan dirinya sendiri dan pada saat yang sama membebaskan dirinya dari rasa takut melaporkan masalah secara tepat waktu.

Meringkaskan. Bagaimana cara menggabungkan kepentingan pengembang dan pemimpinnya?


Kepada pengembang


  • Keberhasilan suatu proyek adalah keberhasilan setiap pesertanya. Setiap proyek yang sukses adalah langkah maju dalam karier Anda. Pada setiap wawancara, Anda akan mendapatkan lebih banyak poin jika Anda berhasil menyelesaikan proyek di belakang Anda.
  • Memecahkan masalah bisnis adalah tujuan utama pengembangan. Jika proyek gagal, tidak masalah seberapa bagus arsitekturnya dan betapa indah kodenya.
  • – : , , , – .
  • , . , . . , .
  • – , , , , , , - .


  • , . , . .
  • , .
  • , .
  • .
  • .
  • .

All Articles