Bagaimana menjadi pengembang perangkat lunak yang lebih baik
Bagaimana Menjadi Pengembang Perangkat Lunak yang Lebih Baik
Cara Menjadi Pengembang Perangkat Lunak yang Lebih Baik Cara menjadi pengembang perangkat lunak yang lebih baik

Hari ini saya ingin berbagi beberapa pemikiran tentang cara pengembang perangkat lunak dapat meningkatkan keterampilan profesional mereka dan menjadi lebih baik dalam pekerjaan mereka. Topik yang diangkat di sini bersifat universal dan tidak spesifik untuk tumpukan teknologi mana pun. Kebanyakan dari mereka bahkan tidak spesifik untuk IT. Ini adalah nasihat umum tentang cara mengembangkan sifat pribadi Anda, meningkatkan kolaborasi dengan kolega dan klien, dan memajukan karier Anda sebagai pengembang perangkat lunak. Hari ini saya ingin berbagi dengan Anda beberapa ide tentang bagaimana pengembang perangkat lunak dapat meningkatkan keterampilan profesional mereka dan bekerja lebih baik. Topik yang disajikan di sini bersifat umum dan tidak spesifik untuk tumpukan teknologi apa pun. Kebanyakan dari mereka bahkan belum spesifik pada bidang IT pada saat ini. Ini adalah saran umum tentang cara mengembangkan kualitas pribadi Anda, cara meningkatkan kolaborasi dengan kolega dan klien, dan cara memajukan karier Anda sebagai pengembang perangkat lunak.
Beberapa hal dalam artikel ini bersifat subjektif dan mencerminkan pengalaman pribadi saya, sementara yang lain telah diadopsi dan berhasil digunakan oleh orang lain. Beberapa hal dalam artikel ini bersifat subjektif dan mencerminkan pengalaman pribadi saya, sementara hal-hal lain telah diadopsi dan digunakan dengan sukses oleh orang lain.
Pahami Prosesnya End to End Pahami prosesnya dari awal hingga akhir
Banyak pengembang berpikir bahwa pengembangan perangkat lunak adalah tentang pengkodean, dan yang lainnya hanyalah orang-orang yang mencoba mengganggu dan membuang-buang waktu mereka yang berharga. Hal ini tidak bisa jauh dari kebenaran. Sebelum Anda membuat kode suatu perangkat lunak, perangkat lunak tersebut mengalami proses transformasi dari ide yang samar-samar menjadi solusi yang dirancang dengan cermat dan siap untuk diimplementasikan. Dan setelah Anda menerapkan perubahan terbaru ke Git, perangkat lunak tersebut sedang diuji, diterapkan, dipantau, dianalisis, dan ditingkatkan. Pengkodean hanyalah salah satu dari banyak langkah proses. Banyak pengembang berpikir bahwa pengembangan perangkat lunak adalah tentang pengkodean dan yang lainnya adalah orang-orang membuang-buang waktu mereka yang berharga. Ini sangat jauh dari kebenaran. Sebelum Anda mulai menulis sebuah kode perangkat lunak, kode tersebut akan melalui proses transformasi dari ide yang samar-samar menjadi solusi yang dirancang dengan cermat, siap untuk diimplementasikan. Setelah Anda memasukkan perubahan terbaru ke Git, perangkat lunak tersebut sedang diuji, diterapkan, dipantau, dianalisis, dan ditingkatkan. Pengkodean hanyalah salah satu dari banyak langkah dalam proses.
Jadi mengapa ini bisa terjadi? Seringkali, terutama ketika bekerja di organisasi yang lebih besar, tahapan proyek yang berbeda ditangani oleh tim atau bahkan departemen yang berbeda. Semuanya dimulai dengan analis bisnis, yang mengumpulkan persyaratan. Persyaratan tersebut kemudian diserahkan kepada desainer yang memproduksi maket untuk pengembang. Pengembang membuat kode dan memberikan hasilnya kepada insinyur QA. Jika semuanya baik-baik saja, artefak dikirim ke tim operasi yang mengirimkannya ke pengguna akhir. departemen, perwakilan mereka sering kali tidak begitu memahami tujuan pihak lain dan hal ini menyebabkan kesalahpahaman dan bahkan konflik. Mengapa ini terjadi? Seringkali, terutama ketika bekerja di organisasi besar, tahapan proyek yang berbeda ditangani oleh tim atau bahkan departemen yang berbeda. Semuanya dimulai dengan persyaratan pengumpulan analis bisnis. Persyaratan tersebut kemudian diserahkan kepada desainer yang menghasilkan prototipe untuk pengembang. Pengembang menulis kode dan menyerahkan hasilnya kepada insinyur QA. Jika semuanya baik-baik saja, artefak akan dikirim ke tim operasi yang akan mengirimkannya ke pengguna akhir. Prosesnya dipandang sebagai serangkaian langkah terpisah tanpa umpan balik apa pun. Karena kurangnya komunikasi antar departemen, perwakilan mereka seringkali tidak benar-benar memahami tujuan departemen lain, sehingga menimbulkan kesalahpahaman dan bahkan konflik.
Seringkali proses pengembangan perangkat lunak diperlakukan sebagai serangkaian langkah terpisah tanpa umpan balik.
Seringkali, proses pengembangan perangkat lunak dipandang sebagai serangkaian langkah terpisah tanpa umpan balik.
Bagi banyak orang saat ini, hal ini mungkin terdengar terlalu berlebihan. Dengan munculnya metodologi agile, semakin banyak perusahaan yang beralih dari pendekatan kaku menuju tim yang lebih kecil yang terdiri dari orang-orang dengan spesialisasi campuran. Namun meskipun demikian, kita melihat bahwa orang-orang tidak benar-benar berusaha memahami pekerjaan orang lain. Seberapa sering Anda merasa kesal dengan desainer Anda karena mereka ingin Anda menerapkan kotak centang khusus yang terlalu memakan waktu? Begitu pula sebaliknya, mendapat kritikan, karena lupa menggunakan font yang benar. Bagi banyak orang saat ini, hal ini mungkin terdengar berlebihan. Dengan maraknya metode agile, semakin banyak perusahaan yang beralih dari pendekatan kaku ini dan malah mempekerjakan tim kecil yang terdiri dari berbagai profesional. Namun meski begitu, kita melihat orang-orang tidak terlalu memahami karya orang lain. Apakah Anda terus-menerus merasa kesal dengan desainer Anda karena mereka ingin Anda menerapkan kotak centang khusus yang sangat memakan waktu? Atau sebaliknya, Anda dikritik karena lupa menggunakan font yang benar.
Banyak perbedaan yang bisa diatasi hanya dengan memperhatikan pekerjaan orang lain. Duduklah bersama desainer Anda dan jelaskan kepadanya, bahwa penerapan kotak centang khusus memerlukan waktu cukup lama dan ada perpustakaan yang menawarkan kotak centang serupa yang dapat Anda gunakan kembali. Sebagai imbalannya, pelajari dasar-dasar tipografi dan pahami mengapa memilih font yang tepat akan membawa perbedaan. Kembangkan sikap yang sama terhadap manajer, analis bisnis, insinyur QA, spesialis dukungan dan pemasaran. Mengutip T.Huxley: Perbedaan tersebut dapat diatasi hanya dengan memperhatikan pekerjaan orang lain. Duduklah bersama desainer Anda dan jelaskan kepadanya bahwa penerapan kotak centang khusus akan memakan waktu cukup lama dan ada perpustakaan yang menyediakan kotak centang serupa lainnya yang dapat Anda gunakan kembali. Sebagai imbalannya, pelajari dasar-dasar tipografi dan pahami mengapa memilih font yang tepat dapat membawa perbedaan. Kembangkan sikap yang sama terhadap manajer, analis bisnis, insinyur QA, spesialis dukungan dan pemasaran. Mengutip T.Huxley:
Cobalah mempelajari sesuatu tentang segala hal dan segala sesuatu tentang sesuatu.Dengan mempelajari sesuatu dari semua orang, Anda akan dapat mengantisipasi kebutuhan mereka, mempersingkat umpan balik, dan memungkinkan pengiriman lebih sering. Ditambah lagi, itu akan memberi Anda banyak cinta dan rasa hormat dari orang lain. Dengan belajar dari masing-masing individu, Anda akan mampu mengantisipasi kebutuhan mereka, memperpendek siklus umpan balik, dan membuat pengiriman lebih sering. Selain itu, itu akan membuat Anda mendapatkan cinta dan rasa hormat dari banyak orang.
Pahami Kebutuhan Klien Anda Pahami kebutuhan klien Anda
Ada satu hal penting yang perlu Anda pahami tentang pelanggan Anda: mereka tidak memahami sebagian besar hal yang Anda lakukan. Pemrograman yang tangkas dan fungsional, atau database non-relasional adalah sihir gelap bagi mereka. Bahkan mereka yang mengikuti pekerjaan Anda dengan cermat dan benar-benar tertarik sebagian besar masih belum tahu. Hal ini mempunyai beberapa konsekuensi. Ada satu hal penting yang perlu Anda pahami tentang pelanggan Anda: Mereka tidak memahami sebagian besar apa yang Anda lakukan. Pemrograman yang tangkas dan fungsional, atau database non-relasional semuanya merupakan sihir gelap bagi mereka. Bahkan mereka yang mengikuti pekerjaan Anda dengan cermat dan benar-benar tertarik, sebagian besar tidak tahu apa-apa. Hal ini mempunyai beberapa konsekuensi.
Wajah sebagian besar klien ketika berbicara dengan pengembang perangkat lunak.
Raut wajah sebagian besar pelanggan saat berbicara dengan pengembang perangkat lunak.
Mempekerjakan pengembang perangkat lunak untuk mereka memerlukan tingkat kepercayaan tertentu. Orang sering kali cenderung merasa tidak nyaman karena harus mengeluarkan banyak uang untuk sesuatu yang tidak mereka pahami. Ingat terakhir kali Anda masuk ke layanan perbaikan mobil asing dan tidak yakin apakah Anda bisa mempercayai mereka dengan perjalanan Anda? Nah, klien Anda memiliki perasaan yang sama. Kecuali tidak ada mobil, yang ada hanyalah sejumlah konsep abstrak yang tidak berwujud yang seharusnya terwujud menjadi produk dan pendapatan. Saat bekerja dengan klien baru, penting untuk mendapatkan kepercayaan mereka. Pastikan mereka memahami cara Anda beroperasi dan bertujuan untuk memberikan hasil dalam pengulangan yang lebih kecil namun sering. Dengan begitu mereka dapat melihat kemajuan pekerjaan Anda, menilai hasil antara, dan memberikan masukan. Mempekerjakan pengembang perangkat lunak untuk mereka memerlukan tingkat kepercayaan tertentu. Orang sering kali merasa tidak nyaman harus mengeluarkan banyak uang untuk sesuatu yang tidak mereka pahami. Ingat kapan terakhir kali Anda masuk ke perusahaan layanan perbaikan mobil asing dan tidak yakin dapat mempercayai layanan yang mereka berikan kepada Anda? Pelanggan Anda merasakan hal yang sama. Kecuali tidak ada mobil, hanya sekumpulan konsep abstrak tak berwujud yang entah bagaimana harus terwujud menjadi produk dan pendapatan. Saat bekerja dengan klien baru, penting untuk mendapatkan kepercayaan mereka. Pastikan mereka memahami cara Anda beroperasi dan bertujuan untuk memberikan hasil dalam pengulangan yang lebih kecil namun sering. Dengan cara ini mereka dapat melihat kemajuan pekerjaan Anda, mengevaluasi hasil antara, dan memberikan umpan balik.
Seringkali klien cenderung memberikan solusinya sendiri daripada menceritakan masalahnya. Karena mereka tidak tahu banyak tentang kemampuan Anda, solusi mereka sering kali salah menilai, kurang atau terlalu ambisius. Ingat kutipan lama (dan mungkin fiksi) dari Henry Ford: Pelanggan sering kali cenderung memberikan solusinya sendiri daripada berbagi masalahnya. Karena mereka tidak memahami kemampuan Anda, solusi mereka sering kali salah menilai, tidak memadai, atau terlalu ambisius. Ingat kutipan terkenal (mungkin apokrif) dari Henry Ford:
Jika saya bertanya kepada orang-orang apa yang mereka inginkan, mereka akan menjawab kuda yang lebih cepat.
Daripada mengikuti arus dan secara diam-diam menerapkan apa pun yang diinginkan klien, terkadang ada gunanya mengajak mereka untuk mengambil langkah mundur dan mendiskusikan masalah yang ingin mereka selesaikan sejak awal. Saat menggabungkan pengetahuan domain mereka dan keahlian teknis Anda, kemungkinan besar Anda akan mendapatkan solusi yang lebih baik. Daripada hanya mengikuti arus dan diam-diam menerapkan apa pun yang diinginkan pelanggan, terkadang ada gunanya mengajak mereka mengambil langkah mundur dan mendiskusikan masalah yang awalnya ingin mereka selesaikan. Saat Anda menggabungkan pengetahuan domain mereka dengan keahlian teknis Anda, Anda mungkin mendapatkan solusi yang lebih baik.
Ingatlah, bahwa tidak semua orang suka jika idenya dipertanyakan dan taktik ini mengharuskan Anda untuk memiliki kebijaksanaan dan menginspirasi kepercayaan di mata klien. Anda juga perlu meninggalkan zona nyaman dan membenamkan diri dalam bisnis mereka, untuk dapat memahami masalahnya dan menyarankan solusi yang lebih baik. Hal ini dapat menjadi tantangan jika Anda bekerja di industri yang kompleks seperti keuangan atau layanan kesehatan. Namun jika Anda melakukannya sekali, kemungkinan besar klien akan kembali lagi dengan pikiran yang lebih terbuka. Ingat, tidak semua orang suka jika idenya dipertanyakan, dan strategi ini mengharuskan Anda memiliki kebijaksanaan dan menginspirasi kepercayaan di mata pelanggan Anda. Anda juga perlu keluar dari zona nyaman dan membenamkan diri dalam bisnis mereka untuk dapat memahami masalah dan menemukan solusi yang lebih baik. Jika Anda bekerja di industri yang kompleks seperti keuangan atau layanan kesehatan, ini bisa menjadi tantangan. Namun jika Anda bisa melakukan ini, pelanggan mungkin akan kembali lagi dengan pikiran lebih terbuka di lain waktu.
Pilih Alat yang Tepat untuk Pekerjaan itu
Jika yang kamu punya hanya palu, semuanya tampak seperti paku.
Seringkali pengembang yang hanya mempelajari satu teknologi terburu-buru menerapkannya pada setiap masalah yang mereka hadapi. Tidak mengherankan, pendekatan semacam ini memberikan hasil yang kurang optimal. Sebaliknya, saat menangani masalah baru, berhentilah sejenak dan pikirkan apakah alat yang Anda miliki benar-benar cocok untuk pekerjaan semacam ini. Jika Anda ragu, selidiki sedikit dan buatlah daftar alternatif yang mungkin lebih baik. Untuk mempermudahnya, susunlah daftar pertanyaan dan nilailah berbagai pilihan satu per satu. Pertanyaannya bisa berbeda untuk setiap penilaian, namun bisa juga berupa:
Seringkali, pengembang yang hanya mempelajari satu teknologi terburu-buru menerapkannya pada setiap masalah yang mereka hadapi. Seperti yang diharapkan, pendekatan ini memberikan hasil yang kurang optimal. Sebaliknya, ketika Anda sedang mengerjakan suatu masalah baru, berhentilah dan pikirkan apakah alat yang Anda miliki benar-benar tepat untuk pekerjaan itu. Jika Anda ragu, lakukan riset dan temukan daftar alternatif yang mungkin lebih baik. Untuk mempermudahnya, tulislah daftar pertanyaan dan evaluasi berbagai pilihan satu per satu. Pertanyaannya mungkin berbeda untuk setiap penilaian, namun mungkin terlihat seperti ini:
-
Platform atau perangkat apa yang harus didukungnya? Platform atau perangkat apa yang harus didukungnya?
-
Apa saja persyaratan non-fungsional, seperti kinerja atau penggunaan memori? Apa saja persyaratan non-fungsional, seperti kinerja atau penggunaan memori?
-
Apakah membeli lisensi merupakan suatu pilihan, atau Anda memerlukan sesuatu yang gratis atau bersumber terbuka? Apakah membeli lisensi merupakan suatu pilihan, atau Anda memerlukan sesuatu yang gratis atau bersumber terbuka?
-
Apakah solusinya menyediakan semua yang Anda butuhkan, atau apakah Anda perlu menulis sesuatu sendiri? Apakah solusinya menyediakan semua yang Anda butuhkan, atau apakah Anda perlu menulis sesuatu sendiri?
-
Apakah Anda memiliki batasan lain, seperti kebijakan perusahaan, pertimbangan hukum, atau kurangnya spesialis di tim Anda? Apakah Anda memiliki keterbatasan lain, seperti kebijakan perusahaan, pertimbangan hukum, atau kurangnya spesialis di tim Anda?
Menjawab pertanyaan-pertanyaan ini akan membantu Anda menyusun pilihan di kepala Anda dan mempersempitnya menjadi daftar kandidat. Menjawab pertanyaan-pertanyaan ini akan membantu Anda menyusun pilihan di kepala Anda dan mempersempitnya menjadi daftar kandidat.
Bereksperimen dengan Aman Bereksperimen dengan Aman
Jadi apa yang terjadi jika tidak ada satu pun hal yang Anda tahu cocok dengan kasus Anda dan Anda ingin mencoba sesuatu yang baru? Fakta bahwa Anda tidak mengalami sesuatu tidak secara otomatis berarti bahwa hal itu mustahil. Ini hanya berarti Anda perlu mempertimbangkan beberapa hal tambahan: Jadi apa yang terjadi jika tidak ada pengetahuan yang berhasil bagi Anda, dan Anda ingin mencoba sesuatu yang baru? Hanya karena Anda belum mengalami sesuatu bukan berarti tidak mungkin. Ini berarti Anda perlu mempertimbangkan beberapa hal tambahan:
Apakah Anda punya cukup waktu untuk persiapan? Jika garis waktu proyek tidak membuat stres, Anda dapat belajar sebanyak mungkin sebelum memulai penerapan dan melanjutkan sisanya. Atau setidaknya terapkan pendekatan “berpura-pura sampai Anda berhasil” dan yakinkan klien bahwa Anda tahu apa yang Anda lakukan. Apakah Anda punya cukup waktu untuk bersiap? Jika jadwal proyek tidak membuat stres, Anda dapat belajar sebanyak mungkin sebelum memulai implementasi dan mempelajari sisanya sepanjang proses. Atau setidaknya ambil pendekatan “berpura-pura sampai Anda berhasil” dan buat klien Anda percaya bahwa Anda tahu apa yang Anda lakukan.
Identifikasi hal-hal yang perlu Anda uji terlebih dahulu. Ambil pendekatan “cepat gagal” dan identifikasi hal-hal penting yang perlu Anda evaluasi sebelum Anda dapat menyimpulkan eksperimen. Meragukan kinerja suatu sistem? Bangun prototipe minimal dan jalankan uji beban. Tidak yakin tentang perpustakaan tertentu atau integrasi dengan layanan eksternal? Terapkan itu secara terpisah dan kemudian bangun sisanya. Mulailah dengan menentukan apa yang perlu diuji. Gunakan pendekatan “cepat gagal” untuk mengidentifikasi faktor-faktor utama yang perlu dievaluasi sebelum eksperimen berakhir. Ada pertanyaan tentang kinerja sistem Anda? Bangun prototipe minimal dan jalankan uji beban. Tidak yakin tentang perpustakaan tertentu atau integrasi dengan layanan eksternal? Terapkan itu secara individual dan kemudian bangun sisanya.
Ingatlah bahwa melakukan hal ini masih berisiko bagi Anda dan klien Anda, dan mereka perlu menyadari risiko dan potensi manfaatnya. Lagi pula, investigasi dua minggu yang mungkin menghemat pekerjaan berbulan-bulan dalam jangka panjang, kedengarannya cukup bagus. Bahkan jika eksperimennya gagal, Anda hanya kehilangan waktu dua minggu. Semakin besar kepercayaan yang Anda miliki terhadap klien Anda, semakin besar kemungkinan mereka menyetujui hal seperti ini. Ingat, melakukan hal ini berisiko bagi Anda dan klien Anda, dan mereka harus menyadari risiko dan potensi manfaatnya. Lagi pula, survei yang dilakukan selama dua minggu berpotensi menghemat pekerjaan berbulan-bulan dalam jangka panjang, dan hal ini terdengar cukup bagus. Sekalipun eksperimennya gagal, Anda hanya kehilangan waktu dua minggu. Semakin besar kepercayaan yang Anda miliki terhadap pelanggan Anda, semakin besar kemungkinan mereka menyetujui hal seperti ini.
Membangun di atas Pundak Raksasa Berdiri di atas bahu para raksasa
Menemukan kembali sepeda sering kali membawa hasil yang aneh. Menemukan kembali sepeda sering kali membawa hasil yang aneh.
Orang TI sering kali memiliki dua karakteristik umum: kami kreatif dan kami menikmati pekerjaan kami. Kedengarannya hal ini bagus, namun ada efek samping yang tidak menyenangkan: kita cenderung mencari solusi sendiri terhadap masalah yang telah diselesaikan sebelumnya. Jadi, setiap kali kita dihadapkan pada pilihan apakah akan menggunakan kerangka kerja, perpustakaan, atau layanan atau mengimplementasikannya sendiri, kita cenderung memilih yang kedua. Dan ini membawa kita pada perjalanan sia-sia dalam menciptakan kembali roda. Beberapa kesalahpahaman umum yang menyebabkan hal ini adalah: Orang TI sering kali memiliki dua karakteristik yang sama: kami kreatif dan kami menikmati pekerjaan kami. Hal ini mungkin terdengar bagus, namun memiliki efek samping yang tidak menyenangkan: Kita cenderung menemukan solusi sendiri terhadap masalah yang telah diselesaikan sebelumnya. Oleh karena itu, ketika kita dihadapkan pada pilihan untuk menggunakan framework, perpustakaan, layanan, atau mengimplementasikannya sendiri, kita cenderung memilih yang terakhir. Hal ini menempatkan kita pada perjalanan yang sia-sia untuk menemukan kembali roda. Beberapa kesalahpahaman umum yang menyebabkan hasil ini adalah:Menerapkan sesuatu sendiri lebih mudah daripada mempelajari solusi pihak ketiga. Meskipun ini mungkin alasan yang sahih, penting untuk tidak terlalu menyederhanakan tugas yang ada. Seringkali, sesuatu tampak sederhana pada awalnya, tetapi seiring berjalannya waktu, menjadi jauh lebih sulit. Pada akhirnya, Anda bisa menghabiskan banyak waktu untuk menangani bug dan kasus-kasus edge yang bisa ditangani seseorang untuk Anda. Lebih mudah melakukannya sendiri daripada mempelajari solusi pihak ketiga. Meskipun ini mungkin alasan yang sah, penting untuk tidak menyederhanakan tugas yang ada. Seringkali, segala sesuatu tampak mudah pada awalnya, namun menjadi lebih sulit seiring berjalannya waktu. Anda mungkin menghabiskan banyak waktu untuk menangani bug dan kasus-kasus rumit yang dapat ditangani orang lain untuk Anda.
Solusi ini melakukan lebih banyak hal daripada yang saya perlukan. Kecuali ada alasan khusus mengapa hal ini merupakan hal yang buruk, seperti meningkatkan ukuran artefak yang dihasilkan, menambah potensi kerentanan, atau memperlambat pembangunan secara signifikan, hal ini biasanya bukan merupakan hal yang buruk. Anda mungkin akan membutuhkannya nanti. Di sisi lain, menambahkan seluruh perpustakaan untuk menggunakan satu fungsi saja mungkin berlebihan. Solusi ini melakukan lebih dari yang saya butuhkan. Hal ini umumnya bukan hal yang buruk kecuali ada alasan khusus mengapa hal tersebut buruk, seperti meningkatkan ukuran artefak yang dihasilkan, menambahkan potensi bug, atau memperlambat pembangunan secara signifikan. Anda mungkin membutuhkannya nanti. Di sisi lain, menambahkan seluruh perpustakaan untuk menggunakan satu fungsi saja mungkin berlebihan.
Kami bisa melakukannya dengan lebih baik. Meskipun ada beberapa proyek sukses yang dimulai dengan kata-kata ini, hal ini biasanya tidak terjadi. Solusi bagian ketiga yang berkualitas dipertahankan oleh tim yang memiliki pengalaman dan sumber daya yang dikhususkan untuk memecahkan masalah khusus ini. Untuk bersaing dengan mereka, Anda harus mampu berinvestasi lebih banyak lagi. Kebanyakan proyek tidak mempunyai sumber daya atau kebutuhan untuk melakukan hal tersebut. Kami bisa melakukan yang lebih baik. Meskipun ada beberapa proyek sukses yang dimulai dengan kata-kata ini, biasanya tidak demikian. Solusi pihak ketiga berkualitas tinggi dikelola oleh tim yang memiliki pengalaman dan sumber daya untuk memecahkan masalah khusus ini. Untuk bersaing dengan mereka, Anda harus mampu berinvestasi lebih banyak. Kebanyakan proyek tidak mempunyai sumber daya atau kebutuhan untuk melakukan hal ini.
Kepemilikan kode dan pemeliharaan jangka panjang akan menjadi masalah. Beberapa orang khawatir jika Anda menggunakan solusi pihak ketiga, Anda berisiko proyek tersebut pada suatu saat akan ditinggalkan atau tidak dapat digunakan karena alasan apa pun. apakah itu sepadan dengan risikonya. Kepemilikan kode dan pemeliharaan jangka panjang akan menjadi masalah. Beberapa orang khawatir jika Anda menggunakan solusi pihak ketiga, Anda mungkin akan meninggalkan atau tidak dapat menggunakan proyek tersebut karena satu atau lain alasan pada suatu saat. Risiko penguncian produk adalah nyata, dan Anda harus mempertimbangkan kemungkinan strategi mitigasi. Jika ini adalah proyek sumber terbuka, apakah Anda dapat mengembangkan dan memeliharanya sendiri? Atau kalau proyek swasta berapa biaya penggantiannya? Berdasarkan masukan ini, Anda dapat membuat keputusan sadar apakah risikonya sepadan.
Belajar Melalui Penerapan Ulang
Ada sisi lain dari cerita ini. Menerapkan kembali sesuatu sendiri sebenarnya adalah cara yang bagus untuk belajar. Meskipun menulis kerangka kerja Anda sendiri untuk proyek produksi hampir selalu merupakan ide yang buruk, menjadikannya sebagai latihan pembelajaran bisa sangat berharga. Apa cara yang lebih baik untuk membiasakan diri Anda dengan masalah yang dipecahkannya dengan memecahkan masalah yang sama. Jangan terlalu mendalami masalah ini, implementasi kasar yang disederhanakan sudah cukup untuk memberi Anda pemahaman tentang situasinya. Ada sisi lain dari cerita ini. Mengimplementasikan kembali barang-barang Anda sendiri sebenarnya adalah cara yang bagus untuk belajar. Meskipun menulis kerangka kerja Anda sendiri untuk proyek produksi hampir selalu merupakan ide yang buruk, menjadikannya sebagai latihan pembelajaran bisa sangat berharga. Apa cara yang lebih baik untuk memahami masalah yang dipecahkannya dengan mencoba memecahkan masalah yang sama? Tanpa membahasnya terlalu dalam, penerapan kasar yang disederhanakan sudah cukup untuk memberi Anda gambaran tentang situasinya.
Saat Anda melakukannya, jangan segan-segan mengintip sumber proyek serupa. Mempelajari kode proyek sumber terbuka akan memungkinkan Anda memanfaatkan pengalaman pengembang yang lebih berpengalaman. Saat Anda melakukannya, jangan malu untuk memeriksa sumber untuk proyek serupa. Mempelajari kode proyek sumber terbuka memungkinkan Anda memanfaatkan pengalaman pengembang berpengalaman.
Kerjakan Cara Anda Bekerja Pelajari cara Anda bekerja

Mengupayakan perbaikan tidak hanya dalam aspek teknologi, namun juga metodologi. Sama seperti perangkat lunak yang dirancang dan dioptimalkan dengan baik, alur kerja yang mapan akan memungkinkan Anda bekerja dengan lebih sedikit usaha dan tekanan sekaligus memberikan hasil yang lebih baik. Membangun proses kerja yang efektif dan efisien bukanlah tugas yang mudah dan banyak buku dan materi tersedia mengenai topik ini. Namun sebagai permulaan, pertimbangkan bidang-bidang perbaikan berikut ini: Mengupayakan perbaikan tidak hanya dari segi teknologi, namun juga dari segi metode. Seperti perangkat lunak yang dirancang dan dioptimalkan dengan baik, alur kerja yang baik akan memungkinkan Anda bekerja dengan lebih sedikit usaha dan stres sekaligus memberikan hasil yang lebih baik. Membangun alur kerja yang efektif dan efisien bukanlah tugas yang mudah, dan terdapat banyak buku dan materi mengenai subjek tersebut. Namun pertama-tama, pertimbangkan hal-hal berikut yang perlu ditingkatkan:Metodologi manajemen tim dan proyek. Karena sebagian besar dari kita bekerja dalam tim, penting untuk menerapkan proses yang meningkatkan kolaborasi dan menetapkan ritme kerja yang sama untuk semua orang. Pergerakan tangkas dalam pengembangan perangkat lunak telah melahirkan sejumlah metodologi yang diadopsi secara luas, seperti Scrum atau Kanban. Mereka membantu mengatur keseluruhan struktur kerja tetapi tidak mencakup semuanya. Ada metodologi lain yang membantu Anda membuat perkiraan, memprioritaskan masalah, meningkatkan komunikasi, dll. Anda harus mengidentifikasi bidang-bidang yang Anda hadapi dan mencari praktik terbaik yang membantu mengatasi kesulitan Anda. Metode manajemen tim dan proyek. Karena sebagian besar dari kita bekerja dalam tim, penting untuk menerapkan proses yang meningkatkan kolaborasi dan membangun ritme kerja yang sama untuk semua orang. Pergerakan tangkas dalam pengembangan perangkat lunak telah memunculkan banyak metodologi yang diadopsi secara luas, seperti Scrum atau Kanban. Mereka membantu mengatur struktur kerja secara keseluruhan tetapi tidak mencakup semuanya. Ada cara lain untuk membantu Anda melakukan penilaian, memprioritaskan masalah, meningkatkan komunikasi, dan banyak lagi. Anda perlu mengidentifikasi area permasalahan Anda dan mencari praktik terbaik untuk membantu Anda menyelesaikannya.
Proses pribadi. Ibarat orkestra, tim yang efektif harus memiliki ritme yang sama, namun bukan berarti setiap orang harus bekerja dengan cara yang sama. Setiap orang memiliki kesukaannya masing-masing dan harus bekerja dengan cara yang membuat mereka lebih produktif. Misalnya, banyak orang tidak suka diganggu berjam-jam saat coding, tapi saya pribadi suka bekerja dalam waktu singkat satu-dua jam dengan istirahat di antaranya (versi teknik pomodoro yang tidak terlalu ketat). Saya juga tidak suka bekerja di rumah untuk menghindari gangguan terkait rumah tangga dan lebih memilih bekerja dari kantor atau kafe. Cari tahu apa yang cocok untuk Anda dan pertahankan, tetapi pastikan juga kebiasaan Anda tidak menimbulkan masalah bagi anggota tim lainnya. proses pribadi. Sama seperti orkestra, tim yang efektif harus memiliki ritme yang sama, namun bukan berarti setiap orang harus bekerja dengan cara yang sama. Setiap orang memiliki preferensinya masing-masing dan harus bekerja dengan cara yang membuatnya lebih efisien. Misalnya, banyak orang tidak suka diganggu selama berjam-jam saat coding, tapi saya pribadi suka bekerja dalam waktu singkat 1-2 jam dengan istirahat di antaranya (ini adalah versi Teknik Pomodoro yang tidak terlalu ketat). Saya juga tidak suka bekerja dari rumah untuk menghindari gangguan yang berhubungan dengan keluarga, saya lebih suka bekerja di kantor atau kedai kopi. Temukan apa yang cocok untuk Anda dan pertahankan, tetapi pastikan juga kebiasaan Anda tidak menimbulkan masalah bagi anggota tim lainnya.
Praktik rekayasa. Banyak praktik yang berada di perbatasan antara teknologi dan metodologi dan berfokus pada peningkatan proses pembangunan yang sebenarnya. Misalnya, pengembangan berbasis pengujian dan pengembangan berbasis perilaku membantu menjaga basis kode Anda tetap terstruktur dan teruji dengan baik. Peninjauan kode membantu mengurangi cacat pada kode dan juga menyebarkan pengetahuan dalam tim. Integrasi berkelanjutan dan pengiriman berkelanjutan memastikan proses penerapan yang lebih mudah dan aman. Gunakan praktik ini dalam kombinasi dengan metodologi organisasi lainnya untuk mencapai hasil maksimal. Praktek Teknik. Banyak praktik yang berada pada batasan teknologi dan metode, dengan fokus pada peningkatan proses pembangunan yang sebenarnya. Misalnya, pengembangan berbasis pengujian dan pengembangan berbasis perilaku membantu menjaga basis kode tetap terstruktur dan teruji dengan baik. Peninjauan kode membantu mengurangi cacat pada kode dan menyebarkan pengetahuan di antara tim. Integrasi berkelanjutan dan pengiriman berkelanjutan memastikan proses penerapan yang lebih mudah dan aman. Gunakan praktik ini bersama dengan metode organisasi lainnya untuk mencapai hasil maksimal.
Ingat, tidak ada proses yang berhasil untuk semua orang, Anda perlu mencobanya di lingkungan Anda sendiri. Selain itu, pastikan Anda memahami prosesnya secara menyeluruh dan menerapkannya dengan benar. Mintalah saran dari tim yang telah melalui proses tersebut dan manfaatkan pengalaman mereka. Jangan mengabaikan perangkat lunak dan alat material yang akan membantu Anda menerapkan suatu proses. melakukan evaluasi apakah keadaan sudah membaik. Ingatlah bahwa tidak ada satu proses yang cocok untuk semua dan Anda perlu bereksperimen di lingkungan Anda sendiri. Selain itu, pastikan Anda sepenuhnya memahami prosesnya dan menerapkannya dengan benar. Mintalah saran dari tim yang telah melalui proses ini dan mendapat manfaat dari pengalaman mereka. Jangan mengabaikan perangkat lunak dan alat material yang akan membantu Anda menerapkan proses Anda. Dapatkan papan Kanban sejati dan platform modern untuk pengiriman berkelanjutan. Mengadopsi proses baru memerlukan usaha dan bahkan dapat mengakibatkan hilangnya produktivitas jangka pendek. Berikan waktu dan evaluasi apakah keadaan sudah membaik.
Singkirkan rintangan Singkirkan rintangan
Hal terpisah harus disampaikan dalam mengatasi hambatan. Merupakan kesalahan umum untuk mengabaikan gangguan kecil yang mungkin tampak tidak penting namun sebenarnya dapat berdampak buruk pada pekerjaan Anda. Apakah desainer produk Anda duduk di ruangan atau gedung terpisah? Artinya, dibutuhkan lebih banyak upaya untuk datang dan berbincang dan beberapa hal tidak akan dibahas. Apakah menulis tes baru itu sulit? Maka banyak hal yang tidak akan diuji. Ada satu hal lagi yang perlu disampaikan mengenai mengatasi hambatan. Merupakan kesalahan umum untuk mengabaikan gangguan kecil yang mungkin tampak tidak penting namun sebenarnya dapat berdampak buruk pada pekerjaan Anda. Apakah desainer produk Anda duduk di ruangan terpisah atau di gedung? Ini berarti Anda perlu berusaha lebih keras untuk berbicara dengan mereka, dan ada beberapa hal yang tidak akan dibicarakan. Apakah sulit untuk menulis ujian baru? Maka banyak hal tidak akan diuji.Tak satu pun dari hal-hal ini yang berbahaya, tetapi cenderung menumpuk dan menimbulkan konsekuensi serius. Dan parahnya, Anda sering tidak menyadarinya sampai semuanya sudah terlambat. Terutama ketika selalu ada bahaya yang lebih serius yang harus diatasi. Ingat dongeng tentang katak yang mendidih dan gagasan tentang normalitas yang merayap. Tak satu pun dari hal-hal ini yang berbahaya, tetapi sering kali menumpuk dan menyebabkan konsekuensi serius. Bagian terburuknya adalah, Anda sering tidak menyadarinya sampai semuanya terlambat. Terutama ketika selalu ada bahaya yang lebih serius yang harus dihadapi. Ingat perumpamaan katak yang mendidih dan konsep normalitas merangkak.
Tetap waspada dan lawan hal-hal ini sampai ke akar-akarnya sebelum menyerang Anda. Waspada dan lawan hal-hal ini sampai tuntas sebelum terjadi pada Anda.
Fokus pada Hal Fundamental Fokus pada hal fundamental
Konsep dasar adalah landasan karier Anda.
TI adalah industri yang bergerak sangat cepat. Setiap minggu alat-alat baru dirilis ke pasar. Saya telah menyebutkan sindrom “kelelahan JavaScript” yang terkenal di postingan saya sebelumnya. Banyak pengembang merasa stres dan merasa terpaksa mengevaluasi ulang tumpukan teknologi JS mereka dengan setiap proyek baru dan hal itu membuat mereka gila. Memang benar, selalu berada di tepi jurang bisa jadi sebuah tantangan, namun ada beberapa ide yang bisa membuatnya lebih mudah. Ini adalah industri yang bergerak sangat cepat. Alat-alat baru dirilis ke pasar setiap minggu. Saya telah menyebutkan sindrom “kelelahan JavaScript” yang terkenal di artikel terakhir saya. Banyak pengembang merasa tertekan untuk mengevaluasi ulang tumpukan JS mereka dengan setiap proyek baru, dan ini membuat mereka gila. Ya, memang sulit untuk selalu berada di ujung tanduk, namun ada beberapa ide untuk membuatnya lebih mudah.
Pertama-tama, fokuslah pada hal-hal mendasar. Meskipun teknologi baru cukup sering muncul, konsep fundamental baru lebih jarang muncul. Saat mempelajari sesuatu yang baru, pastikan Anda memahami ide mendasar yang mengarah pada penerapan ini. Kemungkinannya adalah, ide-ide ini juga digunakan dalam proyek lain, dan begitu Anda menemukan hal serupa, akan lebih mudah bagi Anda untuk memahaminya. Dengan cara yang sama, ide Redux diterapkan pada Angular, dan manajemen status reaktif dari Angular diterapkan untuk React as MobX. Pertama, fokus pada fundamental. Meskipun teknologi baru sering muncul, konsep fundamental baru jarang sekali muncul. Saat mempelajari sesuatu yang baru, pastikan Anda memahami ide dasar yang mengarah pada penerapan ini. Kemungkinannya adalah, ide-ide ini juga akan digunakan dalam proyek lain, sehingga lebih mudah untuk dipahami begitu Anda menemukan hal serupa. Misalnya, kerangka kerja UI JavaScript modern berbasis komponen, dan setelah Anda memahami cara membuat aplikasi berorientasi komponen menggunakan React, Anda dapat menggunakan pengalaman ini saat bekerja dengan Angular. Demikian pula, ide Redux juga telah diperkenalkan ke Angular, yang mengimplementasikan manajemen status responsif untuk React as MobX.
Luangkan waktu untuk membiasakan diri dengan buku-buku klasik tentang topik pola umum dalam pengembangan perangkat lunak seperti “Pola Integrasi Perusahaan” oleh Gregor Hohpe dan Bobby Woolf, “Pola Desain: Elemen Perangkat Lunak Berorientasi Objek yang Dapat Digunakan Kembali” yang terkenal oleh Gang of Four atau karya Martin Fowler yang berbeda. Meskipun beberapa hal yang dijelaskan dalam buku mungkin sudah ketinggalan zaman, Anda dapat menggunakannya untuk mempelajari bagaimana pola berkembang hingga saat ini. Luangkan waktu untuk membiasakan diri dengan buku-buku klasik tentang topik pola umum dalam pengembangan perangkat lunak, seperti Enterprise Integration Patterns karya Gregor Hohpe dan Bobby Woolf, dan buku terkenal Martin Fowler Design Patterns: Elements of Reusable Object-Oriented Software. Meskipun beberapa konten yang dijelaskan dalam buku ini mungkin sudah ketinggalan zaman, Anda dapat menggunakannya untuk memahami bagaimana pola tersebut berkembang hingga menjadi seperti sekarang ini.
Kedua, jangan terburu-buru mempelajari setiap hal baru di luar sana. Saya memahami bahwa sangat menggoda untuk mengikuti setiap hal baru yang muncul di Hacker News, tetapi banyak dari hal-hal ini hanya sekedar kebisingan. Sebaiknya perhatikan hal-hal yang telah beredar di masyarakat selama beberapa waktu dan telah berkembang melampaui diskusi awal. Jangan menyerah pada FOMO. Jika Anda memberi perhatian pada apa yang sedang terjadi, tidak ada hal penting yang luput dari perhatian. Kedua, jangan terburu-buru mempelajari setiap hal baru. Saya tahu sangat menggoda untuk mengikuti setiap hal baru yang muncul di Hacker News, tapi kebanyakan hanya sekedar kebisingan. Sebaliknya, fokuslah pada hal-hal yang sudah ada di masyarakat selama beberapa waktu dan sudah matang sejak diskusi awal. Jangan menyerah pada “kontrol sosial”. Jika Anda setidaknya memperhatikan apa yang terjadi, tidak ada hal penting yang luput dari perhatian.
Kiat Bonus Kiat Bonus

Kita telah membicarakan banyak hal di artikel ini, namun ada beberapa poin lain yang ingin saya soroti sebelum kita mengakhirinya. Beberapa tips ini lebih fokus pada sifat pribadi Anda daripada sifat profesional, namun saya tetap yakin bahwa tips tersebut memiliki dampak yang besar pada kehidupan kerja Anda. Kita telah membahas banyak hal dalam artikel ini, namun sebelum saya mengakhirinya, saya ingin menyoroti beberapa poin tambahan. Nasihat ini lebih bersifat pribadi daripada profesional, namun saya yakin nasihat ini dapat berdampak besar pada kehidupan kerja Anda.### Berbagi ilmu Berbagi ilmu Seringkali orang berpikir bahwa menimbun ilmu yang berharga akan menjadikannya sangat diperlukan. Memiliki orang-orang seperti ini di tim Anda membuat Anda terpapar pada “faktor bus” dan dapat menempatkan Anda pada posisi yang sulit jika orang tersebut meninggalkan proyek. Jika Anda salah satu dari orang-orang ini, pertimbangkan bahwa selain membuat Anda sangat diperlukan, keahlian Anda juga membuat Anda tidak dapat dipromosikan dan “tidak dapat berlibur”. Anda mungkin kehilangan peluang karier lain di organisasi Anda karena Anda terikat pada peran ini. Sebaliknya, bagikanlah ilmu tersebut kepada kolega Anda, jika memungkinkan delegasikan sebagian pekerjaan Anda kepada mereka dan gunakan kolaborasi ini untuk membangun hal-hal yang lebih besar lagi di atas pekerjaan mereka. Orang sering kali percaya bahwa menyimpan pengetahuan yang berharga akan menjadikannya sangat diperlukan. Memiliki orang seperti itu di tim Anda membuat Anda terkena “faktor bus” dan dapat membuat Anda mendapat masalah jika orang tersebut meninggalkan proyek. Jika Anda salah satu dari orang-orang ini, pertimbangkan bahwa selain membuat Anda sangat diperlukan, keterampilan profesional Anda juga akan membuat Anda tidak memenuhi syarat untuk promosi dan “tidak dapat mengambil cuti”. Anda mungkin kehilangan peluang karier lain dalam organisasi karena Anda terikat pada peran ini. Sebaliknya, bagikan pengetahuan Anda dengan kolega Anda, delegasikan sebagian pekerjaan Anda kepada mereka jika memungkinkan, dan gunakan kolaborasi tersebut untuk membangun sesuatu yang lebih besar di atas pekerjaan mereka.
Jangan menyalahkan diri sendiri atau orang lain
Saya ingat dahulu kala kami mengalami insiden dalam satu proyek yang disebabkan oleh kesalahan saya. Kami berhasil pulih dari insiden tersebut dengan cukup cepat dan saya ingat klien tersebut memberi tahu saya: Saya ingat sesuatu terjadi pada kami di sebuah proyek dahulu kala dan itu adalah kesalahan saya. Kami pulih dari kejadian tersebut dengan sangat cepat dan saya ingat klien mengatakan kepada saya:
Anda tidak menilai sebuah tim dari bagaimana mereka tampil ketika segala sesuatunya berjalan sesuai rencana, tapi dari bagaimana mereka beroperasi ketika ada masalah.
Tidak peduli seberapa baik Anda, terkadang ada yang tidak beres dan pada saat seperti itu, penting bagi Anda untuk tetap tenang dan menangani situasi dengan bermartabat dan saling menghormati. Setelah api padam, jangan fokus mencari kambing hitam. Hal ini tidak akan membantu Anda menghindari kesalahan di masa depan, namun akan menimbulkan ketakutan dan keraguan di seluruh perusahaan. tingkatkan sistem atau alur kerja Anda untuk menghindari masalah ini di masa mendatang. Tidak peduli seberapa baik Anda, terkadang ada yang salah, dan dalam situasi seperti itu, penting untuk tetap tenang dan menangani situasi dengan bermartabat dan saling menghormati. Begitu api padam, jangan fokus mencari kambing hitam. Ini tidak akan membantu Anda menghindari kesalahan di masa depan, tetapi akan membuat seluruh perusahaan ketakutan dan ragu. Sebaliknya, lakukan otopsi bersama dengan seluruh pihak yang terkena dampak. Fokus pada penyebab masalah, cari tahu mengapa hal itu terjadi, lalu pikirkan cara untuk meningkatkan sistem atau alur kerja Anda untuk menghindari masalah ini di masa mendatang.
Jangan jadi bajingan Jangan jadi bajingan
Komunitas pengembang adalah hal yang lucu. Di satu sisi kita melihat banyak orang yang berpikiran terbuka dan berkontribusi pada komunitas dengan mengerjakan proyek sumber terbuka, memberikan pidato di konferensi, atau menulis artikel. Di sisi lain, kita menjumpai orang-orang yang menjelek-jelekkan ide-ide baru, tidak menghormati pendatang baru, dan menunjukkan perilaku kasar kepada semua orang di sekitar mereka. Jangan menjadi salah satu dari orang-orang itu. Bersikaplah baik dan sebarkan cinta. Komunitas pengembang adalah hal yang lucu. Di satu sisi, kami melihat banyak orang yang aktif dan terbuka berkontribusi kepada komunitas melalui proyek sumber terbuka, berbicara di konferensi, atau menulis artikel. Di sisi lain, kita juga menjumpai orang-orang yang menolak ide-ide baru, tidak menghormati pendatang baru, dan berperilaku kasar terhadap orang-orang di sekitar mereka. Jangan menjadi orang itu. Bersikap baiklah kepada orang lain dan sebarkan cinta.
Banyak nasihat profesional yang dapat diringkas hanya dengan empat kata.
Membungkusnya Membungkusnya
Hal terbaik tentang pekerjaan kami adalah tidak ada batasnya. Selalu ada jalan baru untuk dilalui dan naga untuk dibunuh. Baik Anda baru memulai perjalanan atau seorang profesional berpengalaman, ingatlah hal-hal ini. Mereka akan membantu Anda menemukan jalan dan menjadi pengembang yang lebih baik di setiap langkah yang diambil. Hal terbaik tentang pekerjaan kami adalah tidak ada batasan. Selalu ada jalan baru untuk diambil, selalu ada naga baru untuk dibunuh. Baik Anda baru memulai karier atau seorang profesional berpengalaman, ingatlah hal-hal ini. Mereka akan membantu Anda menemukan jalan Anda sendiri dan menjadi pengembang yang lebih baik di setiap langkahnya.
Apakah Anda memiliki saran berbeda untuk dibagikan kepada orang lain? Jangan ragu untuk mempostingnya di komentar dan memulai diskusi! Apakah Anda memiliki saran lain yang dapat Anda bagikan kepada orang lain? Jangan ragu untuk mempostingnya di komentar dan memulai diskusi!
Apakah Anda tertarik mempelajari pengembangan web atau meningkatkan keterampilan Anda lebih lanjut? Periksa devtrails.io untuk kumpulan panduan bermanfaat untuk membantu Anda memahami pengembangan web. Apakah Anda tertarik mempelajari pengembangan web atau meningkatkan keterampilan Anda lebih lanjut? Lihat jalur pengembang. kumpulan panduan berguna dari io untuk membantu Anda memahami pengembangan web.
Artikel dari: https://medium.com/devtrailsio/how-to-become-a-better-software-developer-dd16072c974e
What to read next
Want more posts about Translation?
Posts in the same category are usually the best next step for reading more on this topic.
View same categoryWant to keep following #Translation?
Tags are useful for related tools, specific problems, and similar troubleshooting notes.
View same tagWant to explore another direction?
If you are not sure what to read next, return to the homepage and start from categories, topics, or latest updates.
Back home