Penulis buku tentang membangun karier, Roman Zhikharev, berbicara dengan direktur teknis G-Core Labs , Vasily Mikhaleny, tentang apa yang diharapkan perusahaan IT modern dari karyawan mereka.- Menurut Anda seperti apa konsep nilai pengembang?Untuk meningkatkan nilai Anda, Anda perlu melakukan tiga hal:
- Untuk mempelajari teknologi yang diminta di pasar hari ini dan besok.
- Kembangkan keterampilan universal (soft skill).
- Mengambil lebih banyak tanggung jawab.
- Mari kita mulai dengan yang paling sederhana. Teknologi apa yang harus dikuasai?Tren hari ini berubah sangat cepat. Karena itu, saya ingin menyuarakan beberapa prinsip umum, daripada menggambarkan tren atau membuat prediksi. Konfigurasi ideal dari pengalaman dan keterampilan, saya anggap seseorang dengan keahlian T-bentuk (orang T-bentuk). Inti dari istilah ini adalah bahwa sebagai seorang ahli dalam bidang teknis tertentu, ia harus memiliki gagasan tentang apa yang terjadi di negara tetangga.
Misalnya, pengembang backend, selain pengetahuan mendalam tentang fitur-fitur bahasa (misalnya, Python) dan kerangka kerja umum, Anda pasti perlu tahu dan, lebih disukai, dapat membangun proses pengujian, perakitan dan penyebaran (pipa CI / CD, misalnya dalam Jenkins). Ia harus mengetahui fitur lingkungan di mana kode akan bekerja, dan bagaimana memastikan toleransi kesalahan di dalamnya. Misalnya, untuk mengatasi AWS / Azure / GCE atau instalasi k8 di tempat, dapat memperbaiki kesalahan dalam alat penyebaran yang ditulis dalam golang.
Di beberapa daerah, nilai meningkatkan ketersediaan sertifikat. Saat merekrut, portofolio Anda penting, paling mudah untuk menunjukkan keterampilan dan kode Anda melalui berpartisipasi dalam proyek sumber terbuka atau memposting proyek hewan peliharaan Anda di github.
- Anda menyebutkan beberapa solusi teknologi populer. Ternyata kita perlu belajar apa yang ada dalam tren?Belum tentu. Anda dapat pergi untuk hype di pasar, atau Anda dapat pergi ke arah yang berlawanan. Jika Anda tertarik pada teknologi langka dan Anda tidak ingin mengejar mode, ada peluang untuk meningkatkan nilai Anda karena pengetahuan unik.
Raksasa teknologi modern cukup fleksibel dan mampu meningkatkan sistem mereka dengan sukses. Dan, sejauh yang bisa dinilai, Yandex dan Google tidak memiliki warisan solusi yang mengesankan berdasarkan teknologi yang sudah ketinggalan zaman.
Tetapi ada sektor yang lebih konservatif:
bank internasional , raksasa industri dan energi, dan industri pertahanan. Sangat sulit bagi mereka untuk menemukan spesialis di tumpukan mereka sendiri dan mereka siap membayar uang baik. Contoh yang baik adalah penggunaan Perl "sekarat" di booking.com dan mail.ru. Atau
COBOL , dikembangkan pada tahun 60-an, dan masih digunakan di beberapa lembaga keuangan AS.
- Lalu apa yang dimaksud dengan keterampilan universal?Kemampuan untuk berkomunikasi dengan orang lain secara signifikan meningkatkan nilai pengembang untuk perusahaan. Dalam praktiknya, ini berarti bahwa seseorang dapat mengajukan masalah, memperkuat pendapatnya, mengusulkan solusi, mengidentifikasi pemangku kepentingan dengan benar, mengetahui cara berinteraksi secara efektif dengan orang yang berbeda (fleksibilitas), secara konstruktif menyelesaikan konflik, bernegosiasi, melatih, membimbing, dan melatih. Dan bahkan berbicara di depan umum atau hadir.
Ini juga mencakup kemampuan untuk berbicara bahasa yang sama dengan perancang dan pemahaman tentang motif pemimpin mereka. Saya berpikir tentang pengetahuan bahasa Inggris, jadi semuanya jelas.
- Apa artinya mengambil lebih banyak tanggung jawab?Kami berusaha untuk merekrut orang yang terlihat sedikit lebih jauh dari alat kerja mereka (teknologi) dan berkonsentrasi pada nilai-nilai untuk pengguna akhir. Misalnya, mereka yang menawarkan opsi untuk mengoptimalkan proses pengembangan, sedang mencari solusi untuk masalah klien, dan siap untuk melakukan upaya untuk membahas dan mengimplementasikan perubahan.
Sayangnya, Anda sering dapat melihat pengembang yang membuat kultus di sekitar alat mereka. Tetapi Anda perlu memahami bahwa jika kode tidak masuk ke produksi tepat waktu, maka kualitasnya atau alat yang digunakan tidak masalah. Kode ini tidak membawa keuntungan bagi perusahaan.
"Ini mengingatkan saya pada nilai Agile." Apakah ada hubungannya?Ya Ada satu set
praktik yang disebut DevOps yang mengembangkan nilai Agile. Ini membantu perusahaan mengalihkan fokusnya dari memformalkan proses menjadi berinteraksi secara internal untuk menciptakan nilai. Tetapi ini tidak mungkin tanpa bertanggung jawab atas hasil akhir oleh semua anggota tim.
Pengembang yang baik memahami budaya DevOps dan tahu cara menerapkannya di timnya dan, idealnya, di perusahaan. Atau bahkan menanam. Sebagai contoh, salah satu praktik DevOps adalah CI / CD (rilis yang paling sering). Dan jika Anda benar-benar ingin membuat rilis yang sering (setidaknya sekali sehari), Anda tidak akan dapat melakukan ini tanpa adanya otomatisasi integrasi dan pengujian, otomatisasi dan stabilisasi proses penyebaran, pemisahan rilis dari penyebaran (fitur toggling), yang berfungsi dan jelas untuk memantau, pengembang pelestarian kompatibilitas mundur, ubah mekanisme rollback, dll. Ini akan menjadi jelas bagi Anda bahwa tanggung jawab pengembang yang baik tidak berakhir ketika Anda mentransfer tugas ke departemen QA.
Nilai dari rilis yang sering terlihat jelas bagi semua orang.
Anti-DevOps adalah divisi dari proses produksi menjadi dua atau lebih sumur fungsional: pengembangan, pengujian, operasi, keamanan. Akibatnya, setiap fungsi hanya memecahkan masalahnya sendiri.
Arti umum adalah bahwa tim harus bertanggung jawab atas kualitas produk, nilai fitur untuk klien, waktu, dan pada tingkat yang jauh lebih rendah kepatuhan formal dengan persyaratan dalam deskripsi tugas. Pengembang seharusnya tidak memiliki prasangka terhadap pembatasan tanggung jawabnya: “Saya sudah mengalihkan tugas ke pengujian. Saya tidak bisa membantu yang lain. "
Semakin banyak tanggung jawab, semakin besar dampaknya pada hasil perusahaan. Di perusahaan yang baik, orang-orang yang memengaruhi pertumbuhannya naik ke jenjang karier.
Tanggung jawab tim membutuhkan komunikasi yang baik. Untuk membangun semua hal di atas tanpa keterampilan komunikasi yang konstruktif dan kerja tim hampir mustahil.
- Di mana-mana begitu?Dalam sebuah perusahaan besar dengan proses matang yang telah ditetapkan, penerimaan tanggung jawab akan berarti melakukan sesuatu di luar pekerjaan pada proyek Anda: organisasi pertemuan, pembicaraan teknologi, hackathon; berpartisipasi dalam pelatihan presale atau magang.
- Kesimpulan?Kesimpulannya, kita dapat mengatakan bahwa
strategi yang paling
optimal untuk pengembangan pribadi adalah
memperoleh keterampilan komunikasi untuk secara lebih efektif
memperluas batasan tanggung jawab atas apa yang terjadi pada produk Anda dan dalam tim atau perusahaan Anda.