Tempat bekerja di TI, Edisi 2: SKB Kontur

gambar

SKB Kontur adalah salah satu perusahaan IT terbesar dan tertua di Rusia. Pada akhir Oktober, dia berusia 30, jumlah semua karyawan telah melebihi 8 ribu.

Menurut perkiraan yang dikumpulkan pada layanan penilaian perusahaan My Circle, pada bulan Juli 2018, Kontur berbagi tempat pertama dengan Yandex di antara perusahaan kelas berat.

"Kontur" didirikan di Yekaterinburg, ketika kota itu masih bernama Sverdlovsk. Tetapi kemudian TI dan sekarang TI adalah dua bidang yang berbeda. Segala sesuatu berkembang dengan kecepatan cahaya, warisan dan skala tidak selalu membantu dalam persaingan.

Karena itu, kami mencoba mencari tahu "Kontur" yang mana sebenarnya adalah dinosaurus kuno atau perusahaan teknologi maju, dan berbicara dengan Alexander Golubev, yang bertanggung jawab atas pengembang di perusahaan tersebut.




Alexander Golubev

Apa yang dilakukan SKB Kontur?


- Andrei Mikhailov, yang berdiri di asal-usul Kontur, mengatakan bahwa itu semua dimulai dengan penjualan program untuk akuntansi gaji dan tenaga kerja. Pada awal 90-an, waktu sulit, dan di "Sirkuit" mereka melakukan hal-hal yang berbeda. Bahkan menjual peralatan dan printer.

Program kemudian dibuat desktop, ditulis dalam C ++, Delphi, seringkali hanya untuk kebutuhan satu pelanggan tertentu. Kemudian, tentu saja, semua orang menulis ulang dan ditransfer ke web. Secara bertahap, segala sesuatu yang berlebihan telah pergi, tetapi hal utama tetap sejauh ini - akuntansi untuk gaji dan perangkat lunak untuk akuntansi.

Benar, sekarang ini hanya salah satu arah. Kami membuat produk untuk semua kebutuhan bisnis. Sertifikat, alur kerja, tanda tangan elektronik, pelaporan. Ada begitu banyak produk yang menghitung berapa banyak dari mereka sebenarnya adalah tugas yang sulit. Perkiraan menyimpang dalam kisaran 30 hingga 60. Hanya karena pertanyaan, apa yang harus dipertimbangkan sebagai satu produk.


Kantor "Kontur" di Yekaterinburg

"Tapi apakah ada produk lokomotif?"

Untuk waktu yang lama itu adalah Kontur.Ekstern. Pada awal 2000-an, dimungkinkan untuk mengirimkan laporan pajak melalui Internet. Dan meskipun tidak ada yang benar-benar memiliki Internet, kami masih bertaruh di web. Dan mereka benar: tembakan produk, dan perusahaan mulai tumbuh dengan cepat.

Tujuh tahun lalu, ketika saya tiba, perusahaan itu tiga kali lebih kecil. Sekarang sekitar seribu orang terlibat dalam pembangunan. Dan kemudian ada seorang pria tiga ratus.

- Apakah sulit untuk mengatasi pertumbuhan?

Kenapa begitu? Pertumbuhan berlanjut sekarang. Orang, produk, dan pelanggan menjadi semakin banyak. Kami tumbuh seperempat dari tahun ke tahun. Kami skala proses, kami menolak dari menganggur, kami menemukan yang baru. Rupanya, kita entah bagaimana mengatasinya.

Kami suka bahwa kami mengembangkan produk kami sendiri. Orang-orang dalam tim - programmer, analis, penguji - semua memperlakukan produk sebagai gagasan mereka, menawarkan ide, peningkatan. Kami tidak tertarik untuk membuat pesanan untuk yang eksternal yang tidak terkait dengan pekerjaan utama kami - ini bukan tentang Kontur.



Tentang teknologi dan bahasa


- Anda mungkin masih memiliki persyaratan tinggi untuk kualitas dan kebersihan kode, seperti halnya di bisnis besar. Pengembang tidak memiliki alat kultus karena ini?

- Ketika siswa kemarin atau saat ini dengan mata bersinar memasuki perusahaan, ia memiliki lebih banyak komitmen pada bahasa tertentu. Dia mencobanya, sesuatu mulai bekerja untuknya, dan dia sangat spiritual oleh itu. Dan tentu saja dia ingin bekerja dan berkembang dalam satu arah. Ini sangat bagus.


Tim pemrograman zombie di "Kontur" hackathon

Tetapi dengan pengalaman muncul pemahaman bahwa bahasa adalah alat, dan alat dapat diubah. Anda mulai berkembang dalam hal membangun arsitektur, menggunakan algoritma, repositori, antrian, protokol, API - semua di mana bahasa tidak penting, tetapi hal-hal tingkat tinggi adalah penting.

Oleh karena itu, ada jauh lebih sedikit di sinior yang secara fanatik dikhususkan untuk satu bahasa.

- Saya menjalankan persyaratan lowongan Anda, dan tampaknya Anda benar-benar menggunakan segala yang ada.

- Ya, kami tidak hanya menggunakan hal-hal yang sangat rendah. Di assembler, mereka tidak menulis ke Contour.

Sebagian besar kode server ditulis dalam C #. Ada beberapa Java, Go, dan Node.js dalam infrastruktur dan beberapa produk. Aplikasi seluler - di Kotlin, Swift dan C # (Xamarin). Segala sesuatu di sekitar sains data ditulis dalam Python dan R, tanpa mereka tidak ada tempat. Bergantung pada tugas, kami menggunakan penyimpanan data relasional, dokumen, kolom atau nilai kunci yang sesuai: MS SQL Server, MariaDB, PostgreSQL, MongoDB, Cassandra, ClickHouse, Redis, Kafka, HDFS. Ada juga perkembangan kami sendiri: misalnya, Kanso adalah gudang data toleransi-kesalahan terdistribusi dengan semantik log biner (mirip dengan Google GFS), Zebra adalah dokumen dalam-memori basis data, Eselon adalah antrian pekerjaan toleran-kesalahan yang didistribusikan. Kami telah menggunakannya dalam produksi selama bertahun-tahun, dan mungkin suatu hari mereka akan muncul di open source .

Kami menulis kode klien dalam TypeScript atau JavaScript dengan Flow. Kerangka utama adalah React, di mana kami telah menulis perpustakaan komponen untuk Panduan front-end, tetapi di tempat lain kami menggunakan Angular. Tetapi untuk mengatakan dengan pasti siapa yang menang - TypeScript atau JavaScript - belum memungkinkan. Pertarungan masih berlangsung.

- Bagaimana menurutmu?

- Karena saya dari back-end, saya cenderung TypeScript (walaupun tentu saja saya menulis banyak di JS, bahkan ketika tidak ada Bereaksi). Untuk seseorang yang terbiasa mengetik statis, TypeScript lebih akrab. Bagaimanapun, hampir semua kode untuk front-end atau untuk Node.js ditulis dengan tipe.


Kelas master di musim panas Confur 2018 - konferensi internal pengembang Contour

Tetapi secara umum, sikap saya terhadap bahasa bukanlah agama. Alat mana yang lebih nyaman untuk tugas tertentu, yang harus digunakan. Saya umumnya menulis gelar master di Erlang. Pada 2011, ketika saya datang ke Kontur, satu produk bahkan ditulis di Erlang. Tetapi ketika dalang ideologis utamanya pergi, ada masalah dengan menemukan spesialis pengganti. Karena itu, tulis ulang menjadi C # yang terbukti.

"Dan bagaimana kamu menentukan di mana bahasa yang akan digunakan?"

Manajer pengembangan dan pemimpin tim memiliki tingkat kebebasan yang cukup besar, mereka bebas memilih alat dan teknologi. Tetapi karena produk tidak dimulai dalam ruang hampa, mereka mendiskusikan pilihan dengan "tetangga", kolega yang lebih berpengalaman, dan melihat apakah mereka dapat menemukan spesialis. Ada kebebasan, tetapi saya tidak bisa mengatakan bahwa setiap hari kami bereksperimen dengan bahasa baru. Kita membutuhkan alat yang terbukti untuk pengembangan industri, sehingga nantinya kita dapat mengembangkan dan memelihara produk kita sendiri.

Kami memiliki praktik tinjauan desain. Jika Anda ingin meluncurkan proyek baru atau membuat perubahan serius untuk yang sekarang, Anda membuat presentasi dan mengumpulkan pertemuan komunitas khusus di mana insinyur keren memberi Anda umpan balik.

Tentu saja, jika Anda memutuskan bahwa tidak ada yang memutuskan untuk Anda - tidak akan ada ultimatum dan larangan, mereka tidak akan mengambil gaji Anda. Namun, terlepas dari segalanya, tim memutuskan untuk memilih teknologi yang kontroversial, ia harus siap menghadapi risiko. Proyek ini mungkin tidak kompatibel dengan bagian dari infrastruktur atau beberapa fungsi tidak dapat diintegrasikan ke dalamnya - maka semua orang akan merasa sangat kesakitan.



Biasanya semuanya dibahas. Sebulan yang lalu, ada ide untuk menulis salah satu layanan baru di F #. Dalam kasus seperti itu, saya mencoba melakukan dialog, saya bertanya: "Dan mengapa tepatnya F #? Di mana Anda akan mencari orang? " Pada akhirnya, mereka meyakinkan orang tersebut untuk tetap tinggal di C #. Yaitu, untuk meyakinkan - ya, untuk memesan - tidak.

- Sudahkah Anda mencoba menulis di F # sendiri?

Tidak, tapi saya tidak sendirian dalam diskusi semacam ini. Kami memiliki tip teknik: tujuh insinyur keren. Ini adalah orang-orang yang dipilih berdasarkan kisah sukses dalam perusahaan. Mereka telah mendapatkan kredibilitas di banyak proyek. Anak-anak juga terlibat dalam proyek pengembangan Departemen Pengembangan (ini adalah unit yang menyatukan sebagian besar pengembang Contour).

- Anda mencoba mengumpulkan berbagai tumpukan dalam saran ini?

Variasi adalah poin yang baik, tetapi bukan yang utama bagi kita. Karena para insinyur itu keren, mereka punya cakrawala yang cukup. Mereka menulis kode dalam C #, tetapi itu tidak akan menjadi masalah bagi mereka untuk memilah masalah Java.

Tidak ada diversifikasi di dewan, tetapi orang tidak boleh berpikir bahwa semua diskusi hanya berjalan di dalamnya. Selain saran teknik, kami memiliki komunitas profesional. Misalnya, frontend memiliki pemimpin mereka sendiri, komunitas mereka sendiri dengan keterampilan tinggi. Keputusan untuk mengembangkan frontend dibuat oleh tim hibrida, termasuk perwakilan dari dewan teknik.



Toolkit


Sebagian besar tim menggunakan YouTrack sebagai pelacak tugas. Beberapa tim menggunakan Trello dan Jira. Kami menulis kode dalam Visual Studio, Visual Studio Code, Rider, WebStorm, dan sebagainya. Kami banyak menggunakan produk JetBrains untuk berbagai tugas.

Kami menggunakan TeamCity sebagai sistem CI, menyebarkan layanan melalui Octopus ke cloud pribadi di bawah kendali sistem Houston atau Kubernet kami sendiri. Kami mengumpulkan metrik melalui Graphite. Untuk peringatan dengan metrik, kami menggunakan Moira. Log dikumpulkan, disimpan, dan dilihat dalam ELK.

Komunikasi sehari-hari pergi ke Slack dan Telegram. Ada Staf - jejaring sosial internalnya sendiri. Ini menerbitkan berita tentang produk, lowongan pekerjaan, kehidupan sosial, dan acara olahraga. Di sana Anda dapat memesan ruang rapat dan menulis artikel. Ini menjadi saluran komunikasi yang populer. Semakin banyak hal yang sedang dibahas secara online.

Dalam beberapa tahun terakhir, kami telah mengembangkan solusi infrastruktur tepat di GitHub. Produk open source yang paling terkenal adalah sistem pemberitahuan darurat Moira , selain itu kami digunakan di Avito dan Yandex.Money. Yang terbesar adalah Timur . Ini adalah seperangkat alat untuk mengembangkan layanan microsoft pada platform .NET, yang membantu mereka berkomunikasi satu sama lain dan secara otomatis mengumpulkan log, metrik, dan jejak terdistribusi.



Tentang struktur perusahaan




Kantor terbesar "Kontur" terletak di Yekaterinburg. Dengan pertumbuhan perusahaan, semakin banyak karyawan dibutuhkan, sehingga perusahaan terus berkembang. Kantor pengembangan sudah ada di Novosibirsk, Perm, Izhevsk, Kazan, Innopolis, Rostov-on-Don dan St. Petersburg. Selain itu, inisiatif untuk membuka kantor baru sering kali berasal dari karyawan sendiri. Beberapa insinyur keren berencana pindah ke St. Petersburg - lalu kami membuka kantor di kota ini.

Sebagian besar karyawan bekerja di kantor, tetapi karena tim dapat didistribusikan antar kota, tahun ini Kontur memutuskan untuk membuka untuk mempekerjakan pekerja jarak jauh. Kami masih belajar bagaimana bekerja dalam format ini, dan ada semakin banyak karyawan seperti itu.

"Kontur" dibagi menjadi tiga bidang besar - pengembangan produk, penjualan dan layanan pelanggan, layanan internal. Hubungan dibangun sedatar mungkin dalam perusahaan yang beranggotakan hampir 10 ribu orang: kami secara aktif berupaya mempertahankan yang lama dan munculnya hubungan baru antar karyawan.

Tim produk mempekerjakan karyawan dengan spesialisasi yang berbeda: programer, penguji, analis, perancang antarmuka, pemasar, pakar, manajer ... Startup baru digergaji oleh satu tim, produk yang tumbuh sering dibagi menjadi beberapa layanan dan dikembangkan oleh beberapa subkomand.
Tim independen dan otonom: para pemimpin berusaha untuk tidak mengganggu mereka dengan instruksi, birokrasi, dan protokol yang tidak perlu.

Tim memiliki pemimpin dengan peran berbeda. Timlids bertanggung jawab atas kualitas pengembangan. Manajer pengembangan, paling sering mantan insinyur, membangun proses pembuatan produk. Manajer proyek terlibat tidak hanya dalam pengembangan, tetapi juga dalam penjualan, promosi, pemasaran, komunikasi dengan mitra. Masih ada manajer lini produk. Mereka membuat keputusan tentang meluncurkan produk baru atau memperluas yang lama.



Tentang mempekerjakan




- Apakah sulit untuk mendapatkanmu?

- Sulit, tetapi mungkin. Misalnya, ada sistem magang besar untuk siswa, yang sekarang diadakan sepanjang tahun. Musim panas ini, misalnya, 140 siswa magang, sebagian besar tetap di perusahaan.

"Aku mendengar tentang guild pewawancara kamu." Katakan apa itu?

Ini adalah insinyur dari berbagai spesialisasi yang terlibat dalam mempekerjakan programmer. Misalnya, untuk pengembang backend, mereka melakukan wawancara teknis dalam tiga atau empat tahap: mereka menguji kemampuan untuk menulis kode yang berfungsi; kemampuan untuk menggunakan algoritma dan struktur data; kemampuan membuat arsitektur. Para perantara dan di sini juga menguji cakrawala mereka dalam teknologi.

Serikat sekarang mencakup sekitar 90 pengembang. Untuk sampai di sana, Anda perlu memilih tahapan yang ingin Anda lakukan (kode, algoritma, arsitektur), dan melakukan beberapa wawancara sebagai "budak" (biasanya wawancara dilakukan oleh sepasang insinyur "terkemuka" dan "budak"). Setelah melewati seleksi ini, seseorang jatuh ke kolam guild pewawancara.

Kami menganggap itu normal jika setiap peserta melakukan wawancara seminggu sekali. Sehingga orang dapat melakukan pekerjaan mereka dan berkontribusi pada perekrutan programmer.

Gilda mengevaluasi tingkat teknis kandidat dan memberikan laporan kepada saya atau wakil saya. Kami melakukan wawancara terakhir, kami memeriksa kemungkinan soft skill, seberapa pentingkah seseorang terhadap nilai pekerjaan, seberapa besar ia dapat merefleksikan kesalahannya.


Bagian Poster Musim Panas Hackathon

- Apakah sistem seperti itu membuat proses lebih cepat?

Ini tentu saja menjadi lebih cepat dan lebih mudah dipahami. Sebelumnya, ada daftar prioritas tim dalam bentuk peringkat. Eichar berjalan ke bawah dan pada gilirannya menawarkan tim kepada kandidat. Akibatnya, satu tim dapat berbicara dengannya dan menolak, yang lain berbicara dan menolak, yang ketiga. Tidak mungkin untuk memahami berapa banyak wawancara yang akan dilakukan seseorang. Evaluasi keterampilan teknis juga buram - tim memperhatikan berbagai hal.

Sekarang seseorang melewati empat tahap dan wawancara akhir selama empat puluh menit. Sepuluh menit setelahnya, kami sudah membuat penawaran atau menolak.

Itu berlangsung tiga, maksimal empat hari. Sebelumnya, ekspektasinya adalah dua hingga tiga minggu.

- Apakah Anda memutar nomor yang sama untuk semua arah?

Tidak, semua tahapan ini terutama terkait dengan back-endors - sharperists dan javist. Untuk tender front-end, tahapan ini diciutkan menjadi satu wawancara besar.

Secara umum, penting bagi kita tidak hanya keterampilan teknis pada manusia. Tentu saja, ada batas tertentu, minimum teknis. Namun yang lebih penting, apakah seseorang akan dapat beradaptasi dan berkembang. Dalam arti tertentu, pengembang kami memiliki sekte pengembangan.

Orang-orang tanpa membakar mata dan keinginan untuk berkembang tidak cocok untuk kita. Bahkan jika kita menerima orang seperti itu, kemungkinan besar, kita tidak akan bekerja sama.

- Pendatang baru akan datang. Apa selanjutnya

Mereka berakhir di Butcamp dan menjalani adaptasi di sana. Bootkamp terdiri dari dua bagian. Pelatihan pertama - berlangsung dua minggu: tiga hari untuk mengenal "Kontur" secara keseluruhan, dengan produk, momen bisnis - di mana kafe, di mana ruang konferensi, pencelupan dalam budaya, tradisi, liburan; satu setengah minggu lagi untuk berkenalan dengan teknologi dan peralatan. Misalnya, pengembang mengulangi kode bersih, penanganan pengecualian, penggunaan elemen pemrograman fungsional, pengujian dan TDD, SOLID, DI. Mereka mempelajari bagaimana infrastruktur dan layanan umum diatur untuk berbicara dalam bahasa yang sama dengan pengembang lain.


Standup kantor

Selain pelatihan, pemula berkomunikasi dengan pemimpin tim dan manajer pengembangan. Timlids dan manajer dapat memulai komunikasi sendiri, karena ini adalah informasi terbuka - yang datang dengan set berikutnya. Dan pendaftaran Butcamp terjadi setiap tiga minggu.

Akibatnya, selama dua minggu ini calon ditentukan ke tim mana dia akan pergi untuk magang.

Magang sudah tahap kedua. Selama masa percobaan, seseorang dapat mengunjungi beberapa magang. Rata-rata, ada tiga, sekitar tiga minggu dalam satu tim. Atau dia dapat memilih satu tim sekaligus dan tetap di dalamnya.

- Mengenai ibukota, Yekaterinburg adalah kota kecil. Tidak ada yang namanya Jones datang hanya untuk memompa sebelum bergerak, dan Siniors pergi ke negara-negara yang cerah?

- Ya, orang tidak hanya datang, tetapi pergi. Kontur banyak berinvestasi dalam pendidikan, tetapi tidak pernah mengikat orang, tidak memaksa mereka untuk menandatangani kontrak dengan kewajiban apa pun. Tentu saja, kita sedih ketika orang pergi, tetapi hampir selalu berhubungan lebih lanjut.

Ada insinyur keren yang keluar dari Contour dan sekarang bekerja di Facebook, Amazon, dan Google.

Tentu saja, untuk mempertahankannya, tidak ada cukup barang di dapur dan lebih banyak gaji. Butuh tugas terobosan. Kami memiliki sistem besar dan sarat muatan, tugas produk yang kompleks, dan proyek sumber terbuka penting.

Kami memantau pasar dan membayar gaji yang sesuai sehingga tidak ada situasi ketika seseorang datang dengan penawaran yang bersaing, dan kami mulai berputar seperti ular di wajan.



Tentang pencurian internal karyawan



Ruang kerja di "Kontur"

Ketika proyek baru diluncurkan, kami pertama-tama mulai mencari orang-orang di dalamnya. Perekrutan internal sering terjadi di belakang layar. Seorang manajer mendatangi saya dan memintanya untuk menemukan seseorang dalam tim yang tidak duduk di tempatnya. Dan kebetulan mereka datang ke Kontur untuk segera menetap sebagai satu tim, mereka berkata: "Kami ingin bekerja untuk Anda." Lalu saya pergi ke arah arah dan berkata: "Temukan tumpukan, dapatkan produk tertunda - seluruh tim telah muncul."

Namun secara umum, topik dengan transisi antar tim sedikit menyakitkan bagi Contour. Ini adalah konsekuensi dari kenyataan bahwa mereka sebagian besar independen satu sama lain dan staf juga direkrut secara independen. Tentu saja, kadang-kadang terjadi bahwa seorang karyawan bergerak tiba-tiba, tanpa persetujuan sebelumnya. Pemimpin yang berbeda memiliki sikap yang berbeda terhadap hal ini.

Seseorang tenang - setelah semua, seseorang terus menguntungkan perusahaan. Seseorang lebih cemburu, mengatakan: "Tim mengalami masa-masa sulit, tetapi saya masih memiliki orang yang dibawa pergi." Seseorang berkata: โ€œSaya tidak benci memberi, tetapi saya pertama-tama akan berbicara dengan saya. Tidak perlu pergi langsung ke karyawan dan membujuk. "

Diskusi mobilitas horizontal telah berlangsung selama bertahun-tahun, sudut pandangnya berbeda. Semua orang bisa dipahami. Saya sendiri percaya bahwa lebih baik menawarkan seseorang sesuatu di dalam perusahaan daripada membiarkannya keluar.

Ada banyak peluang di dalam perusahaan. Sebagai contoh, seorang analis produk, seorang psikolog berdasarkan pendidikan, melihat peluang untuk bekerja di bidang khusus di dalam Kontur: sekarang kami memiliki psikolog penuh waktu yang memberi tahu orang lain tentang cara mengubah pekerjaannya.

Tetapi pertanyaannya, tentu saja, adalah pertanyaan yang rumit.



Bagaimana cara mengatasi kelelahan



Transformasi Energi - Hackathon 2018

- Apakah Anda sering menghadapi kelelahan karyawan?

Saya tidak akan mengatakan itu sering, tetapi saya menemukan. Kami berusaha membantu menemukan diri kami sendiri. Kami memberikan peluang untuk beralih antar proyek, mengubah peran, tanggung jawab. Anda dapat bertemu atau menelepon Skype dengan psikolog penuh waktu yang sama: ia akan memberi saran bagaimana caranya.

Terkadang saya merasa bahwa saya sendiri bertindak sebagai psikolog. Orang-orang datang untuk berbicara seumur hidup, penting bagi mereka untuk hanya didengar, mendapatkan dukungan. Proposal transisi konkret atau keputusan bisnis tidak selalu penting - terkadang hanya partisipasi yang penting.

"Apakah kamu secara pribadi kelelahan?"

Ya tentu saja Baru-baru ini saya mengambil peran sebagai kepala manajemen pembangunan. Dari awal tahun hingga Juni, ada kejenuhan karena transisi.

Sebelum itu, saya adalah manajer tim, dan menjadi kepala arah. Rantai umpan balik telah tumbuh banyak dari apa yang saya lakukan, sebelum manfaat dari perusahaan.

, . โ€” , . , โ€” , , , . , , , .

, , , , . , , . , โ€” , - .

.




, , . , . , , . .

, , , .

โ€” ? , -?

, . - , .

, . , . , .

โ€” , . โ€” , . , . . , , , . , - , .




โ€” ยซยป , ?




, . . , . .

โ€” ยซ ยป, โ€” , -. , , ICFP Contest. , . , .

, , , . , ยซยป . , .

โ€” - ?

? , . Bentley , , . , , , . ยซยป , . - , , โ€” , .

โ€” ?

, . โ€” . , .

. , . data science , . , . .

โ€” ยซยป , ?

, , , . . !


โ€” , ?

โ€” , , - , . , .

, .

Source: https://habr.com/ru/post/id427027/


All Articles