Di universitas, saya suka coding. Sekarang sudah menjadi rutinitas. Bagaimana cara kembali ke sekering sebelumnya?



Refleksi adalah hal yang aneh. Lebih menarik lagi jika didasarkan pada pengalaman bertahun-tahun. Di bawah potongan, kisah tentang nasib seorang programmer melalui bibir direktur pengembangan Parallels RAS Igor Marnat sebagai orang pertama. Selamat menikmati!
“Jika kamu tidak bergerak maju, maka kamu tidak tinggal diam. Dunia bergerak maju, tetapi Anda tidak. Jadi, Anda bergerak kembali! " © (Seseorang sangat pintar)


Epigraf

Bagi saya, pemrograman belum menjadi rutin, meskipun saya telah berkembang selama lebih dari dua puluh tahun. Saya pikir ini karena fakta bahwa saya mengambil tindakan tertentu sebelum sekering saya akhirnya mengering.

Jika pemrograman telah menjadi tugas bagi Anda, maka mungkin pengalaman saya akan bermanfaat bagi Anda. Ingin sesuatu berubah? Setidaknya sesuatu perlu diubah (pemikiran yang dalam, bukan?). Kita harus pindah ke suatu tempat. Dan sekarang, pada waktu yang berbeda, saya mencoba bergerak ke dalam, bergerak ke samping dan bergerak dengan luas.

Gerakan dalam


Keunikan pekerjaan kami adalah bahwa setiap pengembang harus menjadi spesialis dalam dua bidang - pemrograman, seperti itu, dan dalam bidang subjek tempat ia membuat perangkat lunak. Semakin baik dan lebih dalam pengembang memahami dua bidang ini, semakin banyak tugas menarik yang akan bisa dia selesaikan. Semakin menarik dan lebih besar tugasnya, semakin terlihat hasilnya.

Sebagian besar programmer mendapatkan motivasi mereka dari tingkat atas piramida Maslow - kognisi, realisasi diri, dan kebutuhan untuk menghormati. Untuk ini, perlu bahwa, pertama, hasil pekerjaan mereka terlihat. Kedua, hasil ini harus melihat cahaya, orang harus menggunakannya. Visibilitas hasil, jelas, terkait erat dengan ukuran hasil ini, dengan nilainya, berat.

Selama pengembangan perangkat lunak untuk telekomunikasi, saya menginvestasikan banyak waktu dan upaya dalam mempelajari bidang studi baru: perangkat prosesor tujuan umum dan DSP, memori, sistem penyimpanan, protokol jaringan, jenis pensinyalan, algoritma pemrosesan sinyal, secara umum, sekelompok perangkat menarik yang berbeda hal-hal dari telepon, sirkuit, jaringan.

Butuh beberapa tahun (selama itu saya bekerja lebih dari delapan jam sehari). Lima tahun kemudian, saya bekerja di tingkat arsitek, berpartisipasi dalam pembuatan struktur perangkat lunak pertukaran telepon baru, arsitektur komponen mereka. Saya menulis lebih sedikit kode, mengembangkan spesifikasi untuk tim, meninjau kode kompleks, mengerjakan beberapa komponen penting, protokol, dan driver. Pemahaman yang baik tentang perangkat masing-masing komponen, prinsip-prinsip operasinya, komunikasi dengan yang lain memungkinkan Anda untuk mengembangkan arsitektur produk, protokol komunikasi, antarmuka eksternal.

Jelas, setiap produk perangkat lunak adalah hasil kerja seluruh tim, tetapi dengan tingkat partisipasi saya dalam proyek, saya merasa terlibat dalam menciptakan bukan komponen individu, tetapi seluruh produk. Pada saat yang sama, Anda mendapatkan dorongan yang luar biasa, ada juga lebih banyak tanggung jawab.

Secara umum, semakin dalam sang programmer terbenam dalam bidang subjek tempat ia bekerja, semakin baik ia mengetahui konteksnya, semakin luas wawasannya, semakin menarik ia dapat melakukan pekerjaannya.
Ini tidak hanya berlaku untuk pengaturan internal komponen produk. Semakin baik Anda mengenal pengguna Anda, bagaimana mereka menggunakan produk, mengapa, dan tidak sebaliknya, masalah apa yang mereka miliki, bagaimana produk pesaing diatur, semakin menarik bagi Anda untuk bekerja.

Sangat mudah untuk mempelajari semua ini - Anda perlu berkomunikasi lebih banyak dengan dukungan, pengujian, tim implementasi, dan dengan pengguna akhir produk. Jika memungkinkan untuk membangun interaksi kerja, untuk memecahkan beberapa masalah bagi mereka, untuk berpartisipasi dalam kerja bersama, maka umumnya super.

Ngomong-ngomong, ada satu komentar lagi tentang organisasi alur kerja itu sendiri, yang dianut, khususnya, oleh filosofi DevOps dan pendekatan untuk pengembangan dan operasi yang dikenal sebagai SRE, yang awalnya berasal dari Google. Adalah perlu untuk berusaha menghilangkan pemisahan antara tim pengembangan, implementasi dan dukungan, gerakan menuju kolaborasi.

Untuk berjaga-jaga, saya perhatikan bahwa RFC, mencakup buku-buku dengan hewan, dokumentasi pabrik, dan korespondensi di sebagian besar komunitas open source menggunakan bahasa Inggris sebagai sarana komunikasi standar. Ada lebih sedikit informasi dalam terjemahan, sering kali terdistorsi dan hampir selalu terlambat. Banyak produsen tidak repot menerjemahkan dokumentasi sama sekali. Oleh karena itu, setidaknya, kemampuan membaca buku dalam bahasa Inggris adalah persyaratan yang cukup mendasar, sehingga dapat dikatakan, higienis-sanitasi untuk pengembang yang ingin mengembangkan.

Gerakan menyamping


Dalam banyak hal, minat programmer pada karyanya ditentukan oleh minatnya pada bidang subjek tempat ia bekerja. Misalnya, Anda mungkin bosan dengan aplikasi keuangan, tetapi akan menarik untuk bekerja pada infrastruktur untuk aplikasi tersebut.

Sejalan dengan pengembangan perangkat lunak tertanam untuk telepon, saya bekerja pada sistem terdistribusi untuk mengumpulkan informasi dan penagihan pengguna - dan ini adalah dunia yang sama sekali berbeda, bahasa lain, platform lainnya. Berikutnya - otomatisasi penyebaran, konfigurasi dan pengujian, ini adalah dunia ketiga, semuanya berbeda lagi.

Mungkin untuk merevitalisasi minat Anda, Anda harus berbicara dengan kolega atau bos, melihat apa yang dilakukan tim di dekatnya. Bahkan langkah kecil dari kegiatan biasa dapat membuat perbedaan besar dalam pekerjaan Anda, memberi Anda pandangan yang berbeda. Seperti kata pepatah, titik lokasi menentukan sudut pandang

Gerakan dalam luasnya


Ketika saya memasuki telepon, ternyata saya tidak punya waktu untuk mencurahkan cukup waktu dan perhatian pada proyek-proyek lain di mana saya bekerja. Solusinya sudah jelas - saya mulai bekerja lebih banyak lagi. Tapi itu tidak banyak skala. Dengan kerja panjang di malam hari dan akhir pekan setelah beberapa waktu, saya tidak merasa ingin bekerja lagi, dan tidak ada waktu untuk hidup. Bos saya dan saya memutuskan untuk mempekerjakan programmer lain di tim kami. Saya agak lancang melakukan beberapa wawancara dengan gerakan (yang pertama dalam hidup saya di sisi lain meja), dan menyadari bahwa membawa orang yang cerdas ke tim saya tidak semudah kelihatannya.

Bagaimana cara memahami orang asing dalam waktu singkat? Bagaimana cara mengevaluasi profesionalisme dan kualitas pribadinya? Apakah mereka pada umumnya penting, kualitas-kualitas pribadi ini? Atau profesionalisme itu penting? Apa yang perlu Anda perhatikan saat mempekerjakan? Dan bagaimana tepatnya Anda mengubahnya? Sekarang semua ini tampak cukup jelas, tetapi ketika saya merekrut insinyur pertama untuk saya, itu adalah hutan yang sangat gelap bagi saya.

Seperti biasa, saya mulai dengan Google. Saya menemukan beberapa artikel oleh Joel Spolsky, menelannya, membaca buku-buku yang dirujuknya, lalu tautan-tautan dari buku-buku ini, pergi untuk belajar lebih sistematis, dan dengan demikian, secara bertahap, mulai masuk ke bidang subjek baru - manajemen proyek, tim, manajemen proses pengembangan itu sendiri.

Proses pengembangan perangkat lunak, seperti proses produksi lainnya, memiliki peneliti sendiri, sejarah pengembangan, praktik terbaik, pendekatan pengorganisasian. Banyak aspek yang terkait langsung dengan pengembangan, praktik-praktik teknik terbaik, masih sangat muda.

Sebagai contoh, lincah muncul relatif baru-baru ini, kurang dari dua puluh tahun yang lalu, CI - sekitar tiga puluh, buku klasik Frederick Brooks selama sekitar lima puluh tahun. Aspek-aspek lain yang terkait dengan manajemen tim, psikologi, motivasi, manajemen proses dalam organisasi secara keseluruhan, organisasi komunikasi bersifat universal, berasal dari bidang studi lain bertahun-tahun yang lalu, dan dapat diterapkan dengan sempurna di bidang pengembangan.

Saya membaca banyak literatur tentang topik manajemen tim. Tampak bagi saya bahwa topik ini telah dipelajari secara menyeluruh dan mendalam di Amerika dan Jepang. Selain buku-buku klasik tentang pengembangan, teknik, manajemen, saya akan merekomendasikan buku-buku karya desainer pesawat terbang dan roket Soviet dan Rusia. Selain itu, NASA, NAVY, Toyota - organisasi dan perusahaan ini berinvestasi besar dalam mengoptimalkan proses mereka, mengadakan konferensi internal untuk manajer mereka, bahan-bahan tentang mereka tersedia di jaringan, ada banyak buku seni yang menarik dari mereka dan tentang mereka. Selain itu, selain informasi yang sangat baik tentang proses manajemen yang dibangun di perusahaan-perusahaan ini, membaca tentang mobil, pesawat terbang, rudal, kapal dan perkembangannya sangat menarik.

Secara umum, ruang lingkup untuk meningkatkan kompetensi Anda di bidang manajemen sangat besar, tugasnya juga sangat berbeda. Anda dapat mulai dengan mengatur pekerjaan Anda sendiri, dengan memperkenalkan praktik-praktik teknik terbaik seperti pengujian unit, ulasan kode, integrasi berkelanjutan dan pengiriman berkelanjutan, Anda bisa berhenti sangat jauh. Dan lebih baik tidak berhenti :)

Kesimpulan


Latihan menunjukkan bahwa jika Anda mulai aktif bergerak setidaknya di salah satu arah di atas, setelah beberapa waktu gerakan lain pasti akan muncul - naik tangga hierarkis. Jika ada keinginan seperti itu, maka ini juga merupakan pilihan yang sangat menarik. Hal utama di sini adalah jangan melupakan keseimbangan yang diperlukan antara pekerjaan organisasi dan teknis yang ingin Anda pertahankan.

Pengembangan perangkat lunak adalah maraton yang berlangsung seumur hidup. Selalu ada tenggat waktu, tenggat waktu, sepanjang waktu yang Anda butuhkan untuk mendorong sedikit lagi. Untuk menghemat energi dan motivasi, untuk melindungi diri Anda dari kejenuhan, Anda harus selalu beralih, mengangkat kepala di atas rutinitas, melihat-lihat dan melihat diri sendiri serta pekerjaan Anda dari samping. Bioskop, musik, konser, buku-buku bagus, dan film wajib untuk penggunaan berkala. Atau tempat tinggal musim panas. Atau hiking. Secara umum, sesuatu selain bekerja. Kalau tidak, setelah dua atau tiga tahun, bekerja dalam hal apa pun akan berhenti menjadi sukacita.

Sedangkan untuk pekerjaan, tidak ada yang akan menjaga motivasi dan karier Anda lebih baik dari diri Anda sendiri. Jujur, bukan karena tidak ada yang peduli dengan lebih baik - tidak ada yang peduli sama sekali. Buku-buku tentang spesialisasi, bidang terkait, konferensi, komunikasi dengan kolega, mitaps - sebuah gerakan yang, seperti Anda ketahui, adalah kehidupan.

Jika Anda merasa sudah saatnya untuk mengubah sesuatu - Anda bisa mulai dengan langkah-langkah kecil. Untuk melakukan ini, Anda tidak perlu izin dari atas, anggaran atau pekerjaan di organisasi besar. Semua langkah yang saya tulis, saya naik di atas di sebuah perusahaan kecil, dalam tim yang terdiri dari dua hingga sepuluh orang.

Beberapa buku bagus, banyak keinginan dan sedikit gerakan semua bisa membuat perbedaan besar. Semoga beruntung

Z.Y. Bagikan pengalaman dan peretasan hidup Anda di komentar. Sayangnya, Igor belum masuk Habré, saya mengunduh karma sehingga saya dapat mengundangnya. Sementara itu, saya akan mengarahkan pertanyaan Anda kepadanya, jika itu muncul. Terima kasih atas minat Anda.

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


All Articles