Penuh tips, tanpa trik: 6 solusi untuk tantangan developer yang sering dihadapi

OKT 30, 2023

Bagi banyak orang, Halloween adalah alasan yang tepat untuk berdandan dan merayakan hal-hal yang menghantui kita. Google untuk Developer mengusung semangat musim ini dengan terjun langsung ke dalam tantangan menegangkan yang menakutkan bagi developer dan engineer software. Lanjutkan membaca untuk mengetahui teror yang mengintai ini dan temukan trik – serta tips – untuk menaklukkannya.

Kuburan kode

Kode yang tangguh membutuhkan update rutin, dan ketika harus menyelesaikan bug, jauh lebih mudah menemukannya ketika baris kodenya lebih sedikit. Ketika berhadapan dengan kode lama atau kode yang panjang, pertimbangkan untuk menyederhanakan dan memperbaruinya agar lebih mudah dikelola – karena tidak ada yang menyukai codebase yang kuno atau terlalu kompleks. Berikut adalah beberapa praktik terbaik.

Mulai dari kecil: Jangan mencoba mengupdate seluruh codebase sekaligus. Sebaiknya, mulailah dengan mengupdate sebagian kecil codebase yang terisolasi untuk meminimalkan risiko munculnya bug baru.

Gunakan sistem kontrol versi: Lacak perubahan Anda dan kembalikan ke versi sebelumnya dengan mudah jika perlu.

Pertimbangkan alat pemfaktoran ulang: Ini bisa membantu Anda membuat perubahan pada kode tanpa merusaknya.

Uji secara menyeluruh: Pastikan menguji perubahan Anda secara menyeluruh sebelum menerapkannya ke produksi. Ini termasuk menguji perubahan secara terpisah, serta mengujinya bersama dengan codebase lainnya. Lihat tips selengkapnya tentang motivasi pengujian di bawah ini.

Dokumentasikan perubahan Anda: Sertakan peralatan baru, API terbaru, dan semua perubahan agar developer lain memahami apa yang telah Anda lakukan dan alasannya.

Menguji teror

Ketika Anda ingin membuat dan mengirim dengan cepat, Anda mungkin tergoda dengan tidak menulis pengujian untuk kode karena mungkin akan memperlambat Anda dalam jangka pendek. Namun berhati-hatilah, kode yang tidak diuji bisa saja kembali menghantui Anda di kemudian hari. Pengujian adalah praktik terbaik yang dapat menghemat waktu, biaya, dan kecemasan dalam jangka panjang. Meskipun Anda tahu bahwa Anda harus menjalankan pengujian, bukan berarti Anda ingin melakukannya. Gunakan tips berikut untuk membantu mempermudah penulisan pengujian.

Uji gamifikasi: Ubah penulisan pengujian menjadi sebuah permainan. Tantang diri Anda untuk menulis pengujian lebih cepat daripada rekan kerja Anda mengatakan "cakupan kode."

Pemrograman berpasangan: Tulis pengujian bersama dengan kolega. Ini seperti memiliki teman berolahraga – lebih menyenangkan dan memotivasi.

Siapkan otomatisasi pengujian: Otomatiskan pengujian apabila memungkinkan– hal ini lebih baik DAN lebih efisien.

Masalah besar: tidak dapat memilih tech stack Anda

Banyak developer memiliki preferensi yang kuat dalam hal produk, tetapi terkadang teknologi lama atau kebutuhan organisasi bisa membatasi pilihannya. Hal ini dapat menurunkan semangat, terutama jika hal ini menghalangi Anda untuk menggunakan alat terbaru. Jika Anda dihadapkan pada situasi yang sama, ada baiknya Anda menyampaikan rekomendasi kepada tim Anda. Beginilah caranya:

Lobi untuk perubahan: Jika tech stack yang ada saat ini benar-benar tidak berhasil, lakukan advokasi untuk meminta perubahan. Ini mungkin memerlukan dokumentasi serangkaian peristiwa, tetapi Anda bisa menggunakannya untuk membangun kasus Anda.

Jelaskan manfaatnya: Jika Anda siap membagikan preferensi, jelaskan bagaimana tech stack pilihan Anda menguntungkan proyek ini, sama halnya dengan bagaimana kode yang dioptimalkan meningkatkan performa.

Tunjukkan keahlian: Tunjukkan pengetahuan Anda tentang stack pilihan Anda, baik itu melalui Bukti Konsep maupun presentasi.

Tingkatkan keahlian: Jika Anda harus terjun ke dalam top-down tech stack yang belum Anda kuasai, anggaplah ini sebagai kesempatan belajar. Ini seperti menjelajahi bahasa coding baru.

Kompromi adalah kuncinya: Pertama, ketahuilah bahwa semua poin di atas tetap perlu diupayakan, tetapi terkadang, Anda harus berkompromi. Anggap saja seperti bekerja dengan kode lama - tidak ideal, tetapi bisa dilakukan. Jadi, jika Anda tidak berhasil memberikan pengaruh yang sesuai dengan keinginan Anda, jangan kecewa.

Bukan trik: mengirimkan kode Anda dengan lebih cerdas

Satu-satunya hal yang lebih buruk daripada menghabiskan akhir pekan untuk memperbaiki kode berisi bug adalah menghabiskan akhir pekan untuk memperbaiki kode berisi bug ketika Anda memiliki rencana lain. Karena waktu yang lebih sedikit untuk merespons masalah, menyita waktu pribadi, dan lebih sedikit orang yang bersedia membantu memecahkan masalah – mengirimkan kode ketika Anda tidak memiliki sumber daya yang siap untuk membantu akan sangat berisiko. Berikut adalah beberapa praktik terbaik untuk membantu Anda menyusun jadwal dengan lebih baik dan menghindari Sabtu dan Minggu Menakutkan.

Pertimbangkan jam kerja dan dampak terhadap pengguna: Jadwalkan deployment di luar jam sibuk, agar lebih sedikit pengguna yang terdampak. Untuk perusahaan B2B, Jumat sore dapat meminimalkan gangguan bagi pelanggan, tetapi untuk perusahaan yang lebih kecil, deployment pada hari Jumat berarti menghabiskan akhir pekan Anda untuk memperbaiki masalah kritis. Pilih jadwal yang sesuai untuk Anda.

Otomatiskan pengujian: Implementasikan pengujian otomatis dalam proses pengembangan Anda untuk menemukan masalah lebih awal.

Pastikan lingkungan staging Anda sudah tepat: Uji perubahan secara menyeluruh dalam lingkungan staging yang mencerminkan produksi.

Siapkan rollback: Persiapkan rencana rollback agar dapat memulihkan dengan cepat jika muncul masalah.

Pemantauan dan peringatan: Atur pemantauan dan peringatan untuk menangkap masalah 24/7.

Komunikasi: Pastikan komunikasi yang jelas di antara anggota tim mengenai jadwal dan prosedur deployment.

Deployment terjadwal: Jika Anda adalah tim yang tidak rutin melakukan pengiriman di akhir pekan, pertimbangkan hari Jumat HANYA-BACA. Atau jika perlu, jadwalkan deployment pada hari Jumat untuk pagi atau sore hari.

Lembur di akhir pekan: Pertimbangkan rotasi lembur di akhir pekan untuk mengatasi masalah kritis.

Tinjauan pasca deployment: Analisis dan pelajari setiap tantangan deployment untuk memperbaiki proses.

Rencanakan secara menyeluruh: Pastikan proses deployment didokumentasikan dengan baik dan komunikasi berjalan dengan jelas di dalam tim dan pemangku kepentingan.

Evaluasi risiko: Nilai potensi bisnis dan dampak pengguna untuk menentukan frekuensi dan waktu deployment.

Mimpi buruk yang menjadi kenyataan: diretas

Menyadari bahwa Anda telah diretas adalah peristiwa yang sangat menakutkan, bahkan developer yang paling mengerti teknologi pun rentan terhadap serangan. Sebelum hal ini terjadi pada Anda, ingatlah untuk menerapkan praktik terbaik ini.

Selalu update sistem dan software Anda: Anggap saja ini seperti menambal kerentanan pada kode Anda.

Gunakan kata sandi yang kuat: Sama seperti enkripsi yang kuat, gunakan kata sandi yang kuat.

Gunakan autentikasi dua faktor: Selalu tambahkan lapisan keamanan kedua.

Waspadalah terhadap pelaku phishing: Jangan mengambil umpannya. Berhati-hatilah dengan email yang mencurigakan seperti halnya dengan kode yang belum diuji.

Lakukan audit keamanan: Audit sistem Anda secara rutin untuk mengetahui kerentanan, seperti menjalankan tinjauan kode tetapi untuk pengamanan cyber Anda.

Rencana cadangan: Sama seperti kontrol versi, buatlah cadangan. Ini adalah pengaman Anda jika terjadi hal-hal yang tidak diinginkan.

Horor: pembobolan data pihak ketiga

Pembobolan data bisa dibilang sebagai ancaman yang paling menakutkan sekaligus paling nyata bagi kebahagiaan developer. Tidak ada perusahaan yang ingin dikaitkan dengan mereka, apalagi developer yang memilih layanan atau API untuk bekerja. Berikut adalah beberapa tips untuk meminimalkan masalah dengan vendor pihak ketiga untuk membantu Anda menghindari skenario ini.

Lakukan investigasi terhadap vendor pihak ketiga: Sebelum bekerja sama dengan vendor pihak ketiga, tinjau dengan saksama praktik dan kebijakan keamanannya. Tanyakan tentang sertifikasi keamanan, praktik manajemen kerentanan, dan rencana respons insiden mereka.

Wajibkan vendor agar mematuhi persyaratan keamanan: Buat atau tambahkan masukan Anda dalam kontrak tertulis dengan setiap vendor pihak ketiga yang menguraikan persyaratan keamanan yang harus dipenuhi vendor. Kontrak ini harus mencakup persyaratan untuk enkripsi data, kontrol akses, dan pelaporan insiden.

Pantau aktivitas vendor: Pastikan vendor mematuhi persyaratan keamanan dalam kontrak dengan meninjau log audit dan melakukan penilaian keamanan. Hanya berikan akses ke data yang diperlukan vendor untuk menjalankan tugasnya untuk membantu meminimalkan dampak pelanggaran data jika vendor terkena masalah.

Implementasikan kontrol keamanan yang kuat: Dalam sistem Anda, lindungi data dari akses yang tidak terotorisasi melalui firewall, intrusion detection system, dan enkripsi data.

Berhati-hatilah dengan API pihak ketiga: Periksa semua risiko keamanan. Tinjau dokumentasi API dengan cermat untuk memahami izin yang diperlukan dan memastikan API menggunakan praktik keamanan yang kuat.

Gunakan praktik coding yang aman: Gunakan validasi input, output yang terenkripsi, dan kriptografi yang kuat.

Selalu update software: Selalu update dengan patch keamanan terbaru untuk membantu melindungi dari kerentanan yang diketahui.

Seram itu nyata

Sangat mudah merasa ketakutan saat mengetahui berbagai masalah yang mungkin terjadi, tetapi dengan mengimplementasikan praktik terbaik ini, kemungkinan pekerjaan Anda mengalami masalah akan berkurang secara signifikan.

Apakah Anda pernah mengalami tantangan developer yang menegangkan? Bagikan ceritanya dengan komunitas.