Halo, Habr! Nama saya Andrey Gomenyuk, saya adalah pemimpin tim dari salah satu tim pengembang server
Badoo .
Pada May
Badoo Techleads Meetup , yang ditujukan untuk manajemen pengembangan, saya
berbagi pengalaman mengintegrasikan pendatang baru ke dalam tim. Dan hari ini saya berbagi teks yang melengkapi dan meningkatkan versi laporan saya.
Bayangkan hari ini adalah hari kerja pertama Anda di Badoo. Pengetahuan dan keterampilan apa yang diharapkan departemen dari Anda, dan khususnya saya, pemimpinnya? Setidaknya seperti itu:

Perhatikan bahwa tidak ada yang seperti "tulis dalam PHP" dan "ketahui MySQL". Kami menanyakan hal ini pada saat wawancara. Dan dalam daftar ini semua alat, teknologi, dan istilah kami, serta hal-hal umum yang kemungkinan besar tidak kami sukai. Dan semakin cepat Anda mengetahui semua ini, semakin baik.
Onboarding di Badoo
Istilah
orientasi berarti memasukkan seseorang ke dalam tim, memperkenalkannya ke proyek dan proses. Karena departemen pengembangan server kami telah dua kali lipat selama beberapa tahun terakhir (sekarang ada lebih dari empat puluh dari kami), kami menjadi yang pertama di Badoo yang peduli tentang adaptasi intensif dari pendatang baru dan integrasi mereka ke dalam pekerjaan.
Saya menyoroti dua tujuan utama orientasi.
Yang pertama adalah jangka pendek. Kami, seperti kebanyakan perusahaan IT, benar-benar ingin menempatkan orang itu pada kode pada hari pertama, memasukkan tiketnya dalam produksi pada minggu pertama, sehingga orang tersebut terbiasa dengannya secepat mungkin. Namun, ini bukan hal utama bagi kami.
Tujuan kedua adalah jangka panjang. Kami ingin seseorang mencapai tingkat
kemandirian tertentu sesegera mungkin dan mulai secara efektif menyelesaikan tugas-tugasnya.
Untuk melakukan ini, kami memimpin pemula melalui lima tahap yang tidak terlalu eksplisit. Tetapi sebelum saya berbicara tentang mereka secara berurutan, saya mencatat dua poin yang sama pentingnya.
Siapa yang akan bertemu pendatang baru
Pada hari kerja pertama, kami yakin akan bertemu dengan seorang pemula. Ini harus dilakukan oleh pimpinan, dan kami di departemen berusaha mematuhi aturan ini. Pimpinan bertemu seorang pria, menunjukkan kepadanya kantor dan memperkenalkannya kepada tim. Kemudian pertemuan pra-dijadwalkan diadakan dengan departemen personalia, di mana dokumen disusun.
SumberTampaknya setelah ini sudah mungkin untuk menempatkan seseorang di atas meja, tetapi ada detail penting lainnya.
Siapa yang akan "memimpin" pemula
Di beberapa perusahaan, seluruh proses orientasi "terikat" dengan mentor. Ini adalah orang-orang yang menjelaskan segalanya, menunjukkan apa, di mana dan bagaimana, menjawab pertanyaan-pertanyaan dari pemula dan membawanya bersama dengan orang-orang yang tepat.
Kami tidak menggunakan istilah seperti itu, tetapi, seperti lagu terkenal mengatakan, ada seorang mentor, tetapi tidak ada kata-kata. Hanya saja peran ini ditugaskan untuk memimpin, yang dapat mendelegasikannya kepada salah satu karyawan. Sebagai aturan, seorang pemimpin (atau seseorang yang ditunjuk olehnya) adalah titik awal bagi seorang pemula dalam semua masalah. Selama pertemuan singkat, ia memperkenalkan pendatang baru ke proyek, berbicara tentang proses yang diadopsi oleh perusahaan. Ini adalah awal dari perpindahan budaya kita kepada seseorang yang sebelumnya bekerja di perusahaan lain dan terbiasa melakukan sesuatu secara berbeda. Dan sangat penting bagi pemula untuk memahami apa, bagaimana dan
mengapa kita melakukannya.
Tahapan orientasi
Saya akan membiarkan diri saya memecah seluruh proses kami menjadi beberapa tahap, yang masing-masing memiliki semacam hasil:
- Pria yang duduk di depan laptop
- dengan lingkungan kerja yang disesuaikan
- dan membuat tiket.
- Dapat mendesain fitur baru
- dan bekerja secara mandiri.
Selanjutnya, pertimbangkan apa yang terjadi pada setiap tahap.
1. Laptop

Pertama, kami ingin pemula fokus pada pekerjaan, daripada memikirkan sesuatu yang tidak penting, dan kami berusaha melakukan banyak hal di muka. Karena itu, kami menghubunginya terlebih dahulu dan mencari tahu keinginan untuk peralatan: apa yang diinginkan monitor, laptop, keyboard, mouse. Kami membuat semua akun untuk pemula dan mengeluarkan hak istimewa, menambahkannya ke grup dan obrolan. Banyak dari prosedur ini otomatis, sementara yang lain dimasukkan pada daftar periksa sehingga orang tersebut tidak berlarian di kantor pada hari pertama, mencari tahu mengapa ia tidak bisa masuk ke Jira atau mengapa ia tidak melihat tiket yang ditugaskan kepadanya.
2. Lingkungan kerja
Kemudian orang tersebut duduk di depan laptop untuk mengatur lingkungan kerja. Tetapi seluruh pengaturan adalah bahwa ia masuk ke antarmuka khusus, memilih nama pengguna dan memuat kunci SSH. Selesai
Faktanya adalah bahwa kita memiliki platform pengembangan, analog dari infrastruktur produksi kita, dibesarkan di kantor. Selain itu, untuk meniru beberapa DC, kami memiliki platform pengembangan di kedua kantor: di London dan di Moskow. Pendekatan ini memiliki banyak keunggulan. Pengembang selalu memiliki versi kode saat ini dan perangkat lunak terbaru - benar-benar sama seperti dalam produksi. Bahkan jika sesuatu tidak bekerja, Anda dapat yakin bahwa seseorang sudah menyelesaikan masalah. Pemula, sebenarnya, hanya mengkloning repositori, membuka IDE - dan siap bekerja. Sudah cukup bagi Lida untuk memastikan bahwa dia bisa masuk ke semua obrolan dan mulai menerima surat.
Pada tahap ini, saya siap memberi tiket pertama kepada pemula.
3. Tiket
Katakanlah tiket pertama datang seperti ini:

Atau seperti ini:

Mungkin, bagi Anda, tiket ini hanya memiliki satu kesamaan - tidak ada yang jelas. Saya menggarisbawahi dengan kata-kata oranye yang cenderung membuat Anda paling banyak bertanya, dan meskipun tidak, saya tetap akan memberi tahu Anda tentang mereka.

Seperti sebelumnya
Ketika saya datang ke Badoo tujuh tahun yang lalu, itu adalah sesuatu seperti ini. Lead duduk di bawah pendatang baru dan mulai mengatakan:
"Lihat, kami punya antrian, kerangka kerja penulisan naskah. Mereka bekerja seperti ini. Perhatikan itu. Di tiket ini Anda harus melakukan ini .
"Masalahnya adalah bahwa sang pemimpin menghabiskan waktu kerjanya pada cerita-cerita ini. Setiap kali dia menjelaskan hal yang sama kepada pemula, dia selalu lupa tentang sesuatu. Setiap lead menceritakan caranya sendiri.
Tentu saja, pemimpin hanya akan memberikan catatan pengantar khusus pada tiket yang terkait dengan tiket ini, kehilangan poin yang mungkin tidak dibutuhkan pemula saat ini. Jika Anda beruntung, yang terakhir akan dapat menemukan tautan ke deskripsi alat. Tetapi biasanya semua dokumentasi tersebut ditulis untuk penggunaan internal, yaitu, dipahami bahwa pengguna sudah terbiasa dengan spesifik. Dokumentasi memiliki banyak detail yang pasti tidak dibutuhkan pemula pada tahap pertama. Akibatnya, situasi paradoks berkembang: seseorang bekerja selama satu atau dua tahun di perusahaan, tetapi tidak ada jaminan bahwa dia berkenalan dengan segala sesuatu dan tahu bagaimana seluruh infrastruktur bekerja.
Bingkai dari film Groundhog DaySelain kolega yang menjawab berbagai pertanyaan, Aleksey Rybak, yang pada waktu itu mengelola Platform, memberikan kuliah tentang prinsip-prinsip dasar, infrastruktur, dan layanan dasar untuk semua karyawan baru. Pada titik tertentu, dia sudah bosan, dan dia merekamnya di video. Namun dalam cerita dua jam Anda tidak akan mendapatkan semuanya, ada banyak detail. Dan kemudian kuliah ini sangat sulit untuk diperbarui. Tentu saja, itu keren bahwa dalam tujuh tahun sudah menjadi sedikit usang, tetapi beberapa bagian tidak lagi relevan.
Pada titik tertentu, seseorang membuat halaman pengembang Welcome di Wiki. Mereka melemparkan banyak tautan di sana yang akan menyenangkan untuk dibaca oleh pengembang.
Saya mungkin tidak banyak salah jika mengatakan bahwa di perusahaan mana pun ada dua sumber utama untuk mendapatkan informasi baru: ini adalah semacam analog Wiki (atau Google Documents) dan ruang merokok. Sayangnya, hanya di salah satu dari mereka informasinya akan terkini, dan ini bukan Wiki.
Bahwa halaman kami tidak memiliki struktur yang sama. Itu diisi ulang seperti ini. Pemimpin tim lain mendatangi saya dan berkata:
βAndryukha, pengembang Anda berkinerja buruk. Agar berhasil, saya menulis artikel di Wiki. Menambahkannya ke "Selamat datang pengembang baru" sehingga semua pengembang Anda harus membacanya .
"
Secara alami, ia menganggap artikelnya sebagai yang paling penting, menempatkannya di tempat yang paling terlihat, dan menyorotinya dalam huruf tebal, merah. Akibatnya, satu halaman besar dengan banyak tautan yang mungkin ia perlukan akan dibuang ke pemula. Dengan banyak
frasa yang berani , HARUS BACA dan "Dibaca Dibutuhkan!".
Pada titik tertentu, kami menyadari bahwa ceramah, video, dan Wikis tidak lagi sesuai untuk kami. Kami memutuskan untuk mengambil yang terbaik dari alat-alat ini dan melakukan sesuatu yang baru. Dan dia melemparkan kita ide yang tepat ... Kerangka kerja Laravel. Jangan menghitung untuk iklan. Hanya saja pada saat itu kami mengambil kerangka kerja untuk satu proyek, di mesin pencari untuk "kerangka kerja PHP terbaik" Laravel muncul di tempat pertama, dan kami mendapatkannya. Dan di dalamnya kami sangat menyukai bagian dokumentasi Mulai Cepat, yang menceritakan tentang prinsip-prinsip dasar dan alat yang tersedia pada contoh nyata (dan, setelah memahami dasar-dasarnya, Anda dapat mulai membaca deskripsi terperinci).
Mulai cepat
Kami sangat menyukai format ini, dan kami memutuskan untuk menulis artikel serupa untuk pemula kami. Tetapi bagaimana cara melakukannya? Ada banyak informasi - bagaimana menjaga keseimbangan antara keringkasan dan keinformatifan, sambil mempertahankan kemungkinan pembaruan tepat waktu sehingga pendatang baru tidak harus mendapatkan pengetahuan di ruang merokok? Dan bagaimana mendorong membaca dokumen orang-orang yang telah bekerja di perusahaan selama beberapa waktu, tetapi tentu memiliki kesenjangan pengetahuan?
SumberKami mulai dengan menyusun daftar alat, teknologi, dan pendekatan yang, menurut pendapat kami, harus diketahui oleh setiap pengembang di departemen. Kemudian mereka menyusun informasi dalam bentuk daftar isi, dari yang sederhana sampai yang kompleks: dari basis data dan layanan hingga kinerja dan pengujian. Kemudian satu orang menulis beberapa bab pertama sehingga orang lain bisa mengerti bagaimana menyajikan materi. Setelah itu, kami secara sukarela mendistribusikan topik yang tersisa kepada karyawan lain, dan masing-masing menulis satu bab. Hasilnya adalah dokumen yang sangat besar, hanya berminggu-minggu untuk dua bacaan saja.
Kami tidak dapat menemukan satu tugas umum untuk seluruh bagian Mulai Cepat. Ya, itu tidak akan efektif. Bayangkan Anda memberi seseorang tugas - pada kenyataannya, satu fitur besar yang mencakup semua bagian. Dia akan mengerjakannya selama satu atau dua bulan, dan selama ini Anda tidak bisa mengalihkan perhatiannya dengan tiket, dan ini bertentangan dengan tujuan pertama naik kapal.
Kemudian di setiap bagian kami menempatkan satu atau dua tugas yang semirip mungkin dengan yang asli. Seorang pemula membaca bagian, mengerjakan tugas, berkenalan dengan alat tertentu. Kami merekomendasikan agar para pemimpin kami melakukan beberapa tugas sesuai dengan proses standar: tiket dikeluarkan, seseorang mendorong kode, kode ditinjau, seseorang menerima banyak umpan balik. Setelah itu, cabang dihapus, dan disertai tiket.
Kemudian muncul pertanyaan tentang bagaimana menjaga relevansi seluruh badan informasi ini. Dan di sini tugas yang sama membantu kami. Misalnya, kami memiliki bintik-bintik (pecahan virtual) dan layanan yang bertanggung jawab untuk membandingkan pengguna dan bintik-bintik. Dalam kehidupan normal, pengembang tidak perlu tahu tentang ini, karena mereka menggunakan API tingkat tinggi. Tetapi kami meminta mereka untuk memahami bagaimana ini bekerja secara internal.
Kami memberikan tugas: mendaftarkan pengguna pada pengembang, mendapatkan pengenal tempat di alamat suratnya, mendapatkan informasi basis data di tempat, masuk ke sana, pilih dan lihat apa yang ada di sana. Jika ada perubahan dalam prosedur ini, maka pengembang biasa tidak akan mengetahuinya. Mereka tidak akan tahu bahwa Anda harus masuk dan memperbaiki deskripsi. Tetapi pengembang yang saat ini terlibat dalam hal ini akan memahami: ada sesuatu yang salah. Dia akan naik ke pimpinan dan mengatakan bahwa ada sesuatu yang tidak berhasil. Pemimpin akan duduk bersamanya, menyelesaikannya - dan kami akan memperbarui dokumen. Kami mencoba untuk tidak mendorong pengembang untuk mengubah Mulai Cepat sendiri, agar tidak melanggar struktur dan gaya presentasi. Sebagai gantinya, kami membuat Google Doc di mana mereka dapat menuliskan keinginan mereka. Kemudian daftar ini ditinjau oleh orang yang bertanggung jawab yang membuat perubahan pada artikel kami.
Informasi baru ditambahkan ke Mulai Cepat dengan cara yang sama: seseorang menemukan alat baru yang tidak dijelaskan dalam dokumen, dan menulisnya di Google Doc. Dan orang-orang yang bertanggung jawab kemudian memutuskan apakah ini merupakan kasus khusus yang tidak menarik bagi kebanyakan pengembang, atau apakah layak untuk ditulis tentang hal itu di Quick Start.
Pengembang sendiri terkadang menambahkan "hal-hal kecil" yang keren ke dokumen. Misalnya, penghitung untuk durasi membaca dan jumlah halaman ditambahkan ke setiap bab. Juga di beberapa bagian ditambahkan tautan yang segera membuka kelas yang diinginkan di PhpStorm.
Lalu kami mulai berpikir, bagaimana caranya agar orang tua mempelajari dokumen itu? Lagipula, Quick Start ternyata sangat besar, dan tidak ada yang mau menghabiskan dua minggu membacanya. Kemudian kami membuat tes: berdasarkan dokumen kami membuat sekitar 100 pertanyaan tentang berbagai topik dan semua orang ditawari untuk menyampaikannya secara anonim. Setiap pengembang diberi pilihan sekitar 40 pertanyaan. Tujuannya bukan untuk menguji pengetahuan, tetapi untuk membantu orang memahami apa yang tidak mereka ketahui. Yaitu, tes adalah alat pembelajaran, bukan tes, dan jika pertanyaan tidak dijawab dengan benar, prompt dan tautan segera ditawarkan di mana Anda dapat membacanya di Mulai Cepat.
Contoh pertanyaan dari tesKami tidak mengontrol jalannya tes oleh pemula. Diyakini bahwa bagi mereka ini akan menjadi kesimpulan logis untuk mempelajari Mulai Cepat. Pada saat yang sama, kami menyimpan statistik pada semua jawaban. Ketika "orang-orang tua" lulus ujian, kami memilih beberapa pertanyaan yang tidak mereka jawab seperti yang kami inginkan dan meminta orang-orang berpengalaman untuk menulis artikel tentang topik-topik ini.
Mulai Cepat dan uji adalah bagian paling mengesankan dari proses orientasi kami.
Tiket lagi
Biasanya, bersama dengan Quick Start, seseorang segera diberikan satu atau dua tiket sederhana. Secara bertahap, jumlah mereka bertambah, dan pimpinan memastikan bahwa tiket baru sesuai dengan apa yang berhasil dibiasakan oleh pengembang. Dengan demikian, proses membaca diencerkan dengan pekerjaan nyata, dan semua bersama membutuhkan waktu sekitar dua bulan. Idealnya, pada akhir periode uji coba, orang tersebut harus menguasai infrastruktur, alat, dan pendekatan kami.
Setelah Anda membaca Quick Start, arti dari tiket di atas akan menjadi lebih jelas bagi Anda:

Sebagai petunjuk, saya hanya perlu memberi saya pengantar kecil di sini: ada bidang di tempat dan bidang di layanan, mereka tidak disinkronkan untuk pengguna; Anda perlu memperbaiki bug dan menyinkronkan. Dan pemula sudah tahu skrip mana yang harus dijalankan dan bagaimana melakukan ini.
Atau contoh kedua:

Di sini hal yang sama: foto berakhir di album yang salah, kemungkinan besar, klien hanya mengirim album yang salah; Anda perlu memahami jika masih ada kasus seperti itu, dan memperbaikinya.
Sebenarnya, tiket itu sederhana, untuk satu jam kerja.
4. Merancang fitur baru
Dengan "mendesain" yang saya maksud bukan organisasi kelas dan kode, tetapi bagaimana pemula akan bekerja dengan data, di mana ia akan membuat tabel, acara apa yang akan ia tambahkan, di mana mereka akan dikirim, layanan apa yang akan diakses seseorang. Pada tahap ini, pemula siap untuk membuat keputusan teknis tentang bagaimana fitur dibuat. Ini biasanya dicapai dengan latihan. Semakin banyak tugas, semakin banyak pengetahuan dan pengalaman.
Benar, ini tidak selalu mungkin, karena tidak mungkin untuk menemukan cukup banyak tugas menarik untuk setiap pemula. Dalam ujian, topik-topik seperti itu seringkali sulit untuk dibahas, karena situasinya berbeda. Dalam kasus yang berbeda, Anda perlu mengakses layanan yang berbeda, dan di mana saja karakteristik Anda sendiri.
Sebagai hasilnya, kami hanya mengumpulkan selusin fitur yang sangat besar yang melibatkan berbagai layanan, antrian, tempat, dan pengembang menyiapkan deskripsi singkat untuk mereka (analog dari tugas teknis). Ketika pendatang baru siap, pemimpin memberinya pilihan dari satu tugas. Dia merenungkannya untuk beberapa waktu dan melaporkan bahwa dia siap untuk membahas solusinya. Rapat dijadwalkan dengan penulis fitur, di mana pengembang menjelaskan rencananya: ia akan melakukannya, akan memanggil layanan seperti itu, akan menyimpan data di sini, akan berlangganan ke acara tersebut. Sebagai tanggapan, penulis menceritakan bagaimana dia melakukannya dan apa yang dia perhatikan. Akibatnya, pengembang belajar banyak hal baru, ia mulai mengambil gambaran umum. Dia mengerti bagaimana proses ini atau itu bekerja, bagaimana kita membuat keputusan. Tidak apa-apa jika dia masuk ke kode terlebih dahulu dan memata-matai bagaimana fitur diimplementasikan, ini bahkan lebih mungkin merupakan nilai tambah.
Di akhir pertemuan, pemimpin mengumpulkan umpan balik dan dapat menawarkan pengembang untuk mempelajari dengan cermat bagian dan memikirkan apa yang dia pelajari.
5. Pekerjaan mandiri
Tahap kelima, pada kenyataannya, tidak diungkapkan dengan cara apa pun. Ini adalah hal-hal yang kami lakukan sepanjang pekerjaan kami di perusahaan. Kami sangat menghargai keinginan pengembang untuk berkomunikasi dengan tim lain, untuk mencari tahu cara kerjanya. Jika sesuatu tidak berhasil, Anda perlu tahu siapa yang harus meminta bantuan. Tugas pemimpin adalah memperkenalkan pendatang baru kepada semua orang, menunjukkan siapa yang duduk di mana, memberi tahu siapa dan dalam hal apa Anda dapat menghubungi.
SumberSeseorang harus dibimbing dalam proses kita. Meskipun kami tidak memiliki Scrum dan Agile, alur kerjanya cukup fleksibel. Kami benar-benar menghargai ketika pengembang tidak hanya tanpa berpikir mengikuti proses kami, tetapi memahami mengapa mereka dan tugas apa yang mereka selesaikan. Ini memungkinkan dia dalam beberapa situasi untuk menemukan solusi. Misalnya, untuk memahami bahwa tiket tertentu dapat dikirim tanpa melakukan pengujian penuh, dan yang lainnya harus dilakukan lebih cepat. Kami memberi tahu siapa yang harus dihubungi dan bagaimana memprioritaskan agar tiket mulai berfungsi hari ini.
Kami berharap dari pengembang baru bahwa selama periode uji coba dia akan berkenalan dengan set maksimum fitur dan komponen kami. Idealnya, jika pada saat periode uji coba berakhir, ia akan mengetahui beberapa komponen atau fitur yang cukup dalam untuk dapat menyertainya.
Kami juga segera menambahkan seseorang ke
tinjauan kinerja , hanya agar dia dapat menerima umpan balik tidak hanya dari pimpinannya, tetapi juga dari semua orang yang berinteraksi dengannya: dari produk, QA- dan tim klien.
Ringkasan
Berikut ini mungkin lima komponen utama dari proses commissioning pemula kami:
- Perhatian minimal pada yang tidak penting. Kami melakukan segalanya sehingga seseorang fokus pada pekerjaan dan tidak terganggu oleh hal-hal kecil (termasuk) yang rumah tangga.
- Mulai cepat.Kami tidak berani melanjutkannya untuk waktu yang lama dan berpikir mustahil untuk melakukan ini. Tapi ternyata itu lebih mudah dari yang kita duga, tetapi sudah terbayar berkali-kali.
- Tes. Dalam hal rasio tunjangan yang diterima dengan waktu yang dihabiskan, ia agak kehilangan Quick Start, tetapi juga merupakan elemen penting dari proses pembelajaran.
- Tugas praktis.
- Umpan balik dari tim dan pimpinan. Semakin banyak, semakin baik.
Hasil
, . , , , «» .
.
. - . , , β .
SumberApa selanjutnya
β Quick Start , , . Quick Start.
, . Quick Start , , , , , , . , - . , . , .
Akhirnya, ingat gambar pertama dengan banyak istilah? Anda mungkin berpikir: "Mengapa begitu banyak?" Sepertinya semuanya terlalu rumit bagi kami dan pengembang mungkin tidak perlu tahu tentang semua ini. Membaca Mulai Cepat, sangat mudah untuk melihat hal-hal yang dapat disederhanakan, dan kami bekerja ke arah ini.