Apa yang saya pelajari setelah dua tahun sebagai pengembang perangkat lunak di Microsoft



Karena tahun kedua saya sebagai pengembang perangkat lunak di Microsoft India akan segera berakhir, masuk akal untuk berspekulasi tentang apa yang telah saya pelajari selama dua tahun terakhir.



Saya datang ke Microsoft setelah kuliah, Institut Teknologi India Guwahati, dan pekerjaan ini adalah pengalaman pertama saya. Seiring waktu, saya telah tumbuh banyak dan telah belajar banyak pelajaran baru. Dalam artikel ini saya akan mencoba menyusun pemikiran saya tentang mereka.



Jadi, inilah lima hal yang saya pelajari.



1. Riset, riset, dan riset lagi



"Fakta yang diterima secara umum hari ini adalah hasil penelitian kemarin." - Duncan MacDonald


Ketika saya mengatakan penelitian, maksud saya dua hal:



Melakukan penelitian untuk mengidentifikasi akar penyebab masalah.



Saya segera menyadari bahwa sangat mudah untuk mengembangkan kebiasaan untuk tidak membahas detail masalah dan tidak memahami penyebab sebenarnya. Dan jika Anda tidak mengetahui alasan spesifik dari adanya masalah, itu hampir selalu mempengaruhi ketika Anda hampir selesai dengan masalah tersebut. Hampir adalah kata yang sangat penting di sini.



Melakukan penelitian untuk menemukan solusi yang paling efektif untuk masalah saat ini.



Penting untuk dipahami bahwa kita tidak hanya ingin memecahkan masalah; sama pentingnya untuk menyelesaikannya dengan cara yang paling efisien. Inilah yang membedakan karya besar dari yang biasa-biasa saja. Untuk menonjol, Anda perlu meluangkan waktu untuk menguasai pandangan ini, bukan hanya menyelesaikan pekerjaan. Inilah yang memberi Anda pertumbuhan terbesar.



Semua orang tahu bahwa mempersiapkan dan menyelesaikan pekerjaan rumah terlebih dahulu sangat penting, tetapi pada saat yang sama sangat mudah untuk menyelesaikannya tidak sepenuhnya, terutama jika Anda memecahkan bukan hanya satu, tetapi banyak masalah.



Ketika ada beberapa tugas dalam pikiran Anda, sangat mudah untuk berkompromi dan tidak sampai ke kedalaman masing-masing. Oleh karena itu, sangat penting untuk mengingat hal ini setiap saat.



Penelitian pendahuluan yang menyeluruh membantu kita tidak hanya melihat masalah secara efektif dan menemukan solusi optimalnya, tetapi juga tidak melupakan gambaran besarnya.



Yang paling penting adalah untuk diingat bahwa Anda tidak dibayar untuk solusi cepat, tetapi untuk solusi yang akurat dan lengkap untuk suatu masalah.



Ini membutuhkan penelitian, penelitian, dan penelitian lebih lanjut .



2. Murphy tahu tentang itu, Anda juga harus tahu!



Hukum Murphy:



"Jika sesuatu bisa salah, itu akan salah."


Dua tahun kemudian, saya tahu hukum ini dengan sangat baik, dan itu adalah kebenaran yang sebenarnya!



Saya terus-menerus menemukannya di semua proyek saya, itu selalu berlaku, dan mereka yang tidak tahu itu akan dipaksa untuk mencari tahu dengan cara yang menyakitkan.



Oleh karena itu, sangat penting untuk memecah solusi besar menjadi beberapa bagian yang sangat kecil dan terpisah sejak awal. Maka Anda perlu meluangkan waktu untuk memperhitungkan pengecualian / kesalahan apa pun yang dapat terjadi di bagian kecil yang terpisah ini. Pada saat yang sama, Anda perlu memahami bagaimana bagian-bagian ini akan berperilaku bersama dan pengecualian / kesalahan apa yang mungkin timbul karena interaksinya.



Mengembangkan pandangan ke depan adalah kuncinya .



Tapi apa yang dapat Anda lakukan saat Anda mengembangkan pandangan ke depan? Anda perlu membuat banyak checks and balances untuk mengatasi masalah seperti itu sebelumnya.



Banyak masalah di masa depan dapat diketahui lebih awal dengan pengujian unit, pengujian integrasi, dan pengujian kinerja . Salah satu pelajaran teknis terpenting yang saya pelajari hanya ketika saya mulai bekerja di industri ini adalah kebutuhan untuk menulis kode dengan cakupan pengujian . Ini akan membantu tidak hanya saya, tetapi seluruh tim, yang akan mengambil pekerjaan saya dan mengembangkannya di masa depan.



Untuk menangkap masalah yang terlewatkan oleh pengujian, ada infrastruktur yang disebut lingkungan praproduksi., yang mensimulasikan pekerjaan di dunia nyata, yaitu di lingkungan produksi . Sangat penting untuk memeriksa bahwa bagian kode Anda bekerja dengan andal di lingkungan praproduksi untuk beberapa waktu.



Tetapi bahkan setelah menerapkan semua checks and balances ini, masalah masih bisa muncul.



Hal terpenting dalam hal ini adalah belajar dari kesalahan ini dan tidak menyalahkan diri sendiri karena kesalahan itu, karena jauh lebih penting agar kesalahan itu tidak muncul di masa depan.



3. Semuanya bisa diselesaikan. Pertanyaan penting adalah apa yang harus diputuskan terlebih dahulu



Bekerja di industri pengembangan perangkat lunak, saya menyadari satu hal penting: kami memiliki terlalu banyak tugas untuk diselesaikan, tetapi waktu terbatas.



Oleh karena itu, sangat dapat diterima untuk menggunakan prioritas dan penilaian yang akurat dari komponen-komponen kunci, baik untuk tim yang sukses maupun untuk individu. Karena kami tidak menyelesaikan setiap masalah secara terpisah, saya menyadari bahwa masalah apa pun dapat diselesaikan cepat atau lambat, tetapi Anda perlu mengevaluasi waktu yang akan dihabiskan untuk itu dan pentingnya.



Untuk menjawab pertanyaan tentang seberapa penting tugas tersebut, kami menetapkan prioritas tugas, yang dapat berupa bilangan prima yang menunjukkan pentingnya tugas tersebut. Anda juga dapat menetapkan nomor untuk mewakili jumlah hari yang kami perkirakan akan diperlukan untuk menyelesaikan masalah. Kedua parameter ini sangat penting karena alasan berikut:



  • Dalam kebanyakan kasus, proyek tidak memiliki satu, tetapi beberapa orang yang bertanggung jawab. Oleh karena itu, selalu membantu untuk menjalin komunikasi yang baik dengan semua manajemen.
  • Opsi ini membantu Anda memilih pekerjaan yang mengoptimalkan penggunaan waktu terbatas Anda.


Jadi, kami mencoba menjawab pertanyaan penting, yaitu: masalah mana yang harus diselesaikan terlebih dahulu?



4. Manajemen insiden mengajarkan Anda lebih banyak lagi



Insiden adalah penangguhan pelanggan yang tidak direncanakan yang menggunakan layanan Anda.



"Manajemen insiden adalah proses tercepat yang mungkin untuk mencatat, merekam, dan menyelesaikan insiden untuk memulihkan proses bisnis atau operasi layanan normal."


Ketika saya masih kuliah, saya selalu membayangkan bahwa pekerjaan saya adalah menulis kode untuk memecahkan suatu masalah, yaitu menjadi kreatif. Tetapi selama dua tahun terakhir, saya menyadari bahwa merupakan bagian yang sangat penting dari pekerjaan saya untuk terlibat dalam menyelesaikan insiden dengan produk kami.



Untuk mengelola insiden ini, kami dalam tim secara bergiliran bertanggung jawab atas keseluruhan produk. Artinya, ketika sebuah insiden terjadi, mungkin tidak terkait dengan apa yang saya buat sebelumnya.



Apa yang telah diajarkan peristiwa-peristiwa ini kepada saya?



Insiden di masa lalu membuat saya menyadari bahwa sangat penting untuk menyadari apa yang sedang dikerjakan orang lain.



Ini tidak hanya mengembangkan kebiasaan melihat solusi mereka dan menemukan masalah di dalamnya sejak dini, tetapi juga mengambil contoh dari mereka, serta menggunakan komponen kunci dalam solusi saya sendiri.



Insiden ini mengakibatkan downtime yang serius bagi pelanggan / manajemen kami dan sering diberikan prioritas tinggi untuk diselesaikan.



Mereka juga banyak mengajarkan tentang seluk-beluk berbagai aspek, sehingga kita bisa memahaminya lebih dalam. Memprioritaskan insiden ini mengembangkan pemikiran cepat dan mengajarkan mereka untuk dengan cepat menawarkan solusi yang jelas dan andal sehingga klien dapat melanjutkan pekerjaan mereka.



Sering kali, ketika menghadapi insiden seperti itu, kita menghadapi tantangan yang lebih besar, yang pada gilirannya membantu kita memahami hal-hal berikut:



? ?



5.



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


Kolaborasi dalam tim sangat kuat, meningkatkan kerja individu.



Hanya dalam lingkungan profesional saya memahami peran yang dimainkan oleh sekelompok individu dengan kekuatan dan pengalaman unik mereka dalam mendekati dan memecahkan masalah.



Saat mencari solusi untuk masalah apa pun, sepasang mata yang segar selalu membantu. Oleh karena itu, kerjasama yang bebas konflik sangat penting untuk mengatasi hambatan.



Kolaborasi di Microsoft tidak hanya melibatkan bekerja dengan orang-orang di kantor Anda, tetapi juga bekerja dengan orang-orang di benua yang berbeda dan di zona waktu yang berbeda. Jadi bagaimana Anda mengoptimalkannya, terutama ketika Anda harus berinteraksi dengan seseorang yang belum pernah Anda lihat? Anda tidak mengenal orang ini atau kesulitan yang harus dia hadapi.



Selain itu, kami dihadapkan pada situasi yang unik: karena pandemi COVID-19, semua orang harus bekerja dari rumah. Selama periode ini, ukuran tim kami meningkat secara signifikan, dan banyak rekan kami bergabung dengan organisasi secara virtual.



Pelajaran terpenting yang saya pelajari dari semua situasi ini adalah bahwa yang terbaik adalah selalu menganggap niat baik orang lain dan selalu memahami masalah yang mereka miliki.



Melatih toleransi dan kepercayaan diri di saat-saat seperti ini akan selalu membantu menciptakan semangat tim yang baik dan budaya yang positif. Secara bertahap, ini akan mempengaruhi hasil.



Kesimpulan



Saya percaya bahwa pada intinya, pengembangan perangkat lunak adalah tentang memecahkan masalah : meskipun cukup mudah untuk memahami dan memahami detail teknis, jauh lebih sulit untuk memahami sikap, pandangan, dan pendekatan yang benar untuk memecahkan masalah.



Tujuan utama artikel ini adalah untuk mengulangi semua poin yang selalu kita ketahui tetapi selalu diabaikan. Ini adalah kesadaran konstan dari mereka yang membedakan profesional dari siswa, dan selama dua tahun terakhir saya telah mampu melakukan transisi ini.






Periklanan



Pesan dan mulai bekerja segera! Pembuatan server virtual konfigurasi apa pun dalam satu menit, buat konfigurasi Anda sendiri dalam beberapa klik.



Berlangganan obrolan kami di Telegram .






All Articles