Dita Aji Pratama - Random
RSS FeedLet's take a closer look. When we read the job posting requirements, what are we really looking for? We might want to ensure the technology used aligns with our skillset. Especially if the project we're building is entirely from scratch. This would be a great opportunity to fully express our idealism. But sometimes reality forces us to be more tolerant, as not all companies only use the technology we're proficient in. However, this shouldn't be a reason to stop here. Now the question is: If we have to accept something we don't master, are we ready to step out of our comfort zone?
Continuing a large and complex system, especially if its technology patterns and usage differ from our capabilities, seem like a Cosmic Horror to most programmers. The skill sets "Card" we have may not be suitable. Furthermore, we must carefully study the existing system and patterns. That's why I'm going to share my experience dealing with legacy code.
You're probably familiar with the Getting Started page, right? Yes, this is the recommended documentation we're most often directed to read. Can you guess what it contains? Installation, Configuration, and Usage, of course. This documentation is usually very beginner-friendly. It's certainly helpful in getting started.
In a system, there's usually a starting point, whether it's launcher, handler, manage, or other similar terms. Understanding these terms will make things easier for you. You can look around, starting with the closest ones to learn, usually including configuration, modules, models, views, controllers, and so on.
Don't forget to also discuss the tools used by the team. Sometimes we don't have the choice to choose which applications we want to use in our work. However, don't let this interfere with your work experience. You can be tolerant of learning to use these tools, or use your own tools and your team's tools simultaneously, so you don't sacrifice your work experience and are accepted by the team.
With the opening complete, you can begin exploring the foggy map, such as various endpoints, tables and their relationships, models, modules, stored procedures, activities, pages, views, and much more. There's no need to rush to master everything.
Besides exploring independently, always ask for documentation you can consult. Don't hesitate to ask a senior (make sure you ask a good questions). If the documentation isn't complete, you can complete it yourself to make things easier for you in the future.
After you've explored, it's time to dig deeper. This way, you'll learn more than just the surface, but also the core. This activity should definitely be scheduled. Set aside three hours of your time with intense focus to dig down the system.
By digging deeper, you might discover some functions that will be useful in the future. This will also prevent you from recreating functions that already exist. You might also discover some inconsistent patterns throughout the system's history. If you find these, don't worry too much about it and simply choose and use the pattern that works best for you. As long as you have no business, try to avoid touching things that are already working properly. Avoid unnecessary refactoring, because you're still safe as long as the business flow is correct.
You're bound to get wet if you learn to swim. So get wet! and learn how you can make changes. Do not rush. a small, regular trials will get you used to it until you're ready to make bigger changes.
Once you're ready, start estimating your initial tasks. Start with the easiest ones to build confidence. Practice regularly until you get used to the system.
To simplify our next steps, take the time to create a pattern guide for each task you complete. This will help you work on future tasks. If you look closer, work activity often has a pattern, even if you're doing a random tasks.
Focus more on the needs of your team and company than simply fulfilling your own desires. Always remember that a smooth business flow is far more important than implementing the latest technology updates.
The Legacy Code can be intimidating at times, but facing it will make us stronger and grow. Don't panic, stay focused, and take a break if you feel tired. Sooner or later, you'll master it.
Coba deh Kita perhatikan, ketika Kita membaca kualifikasi lowongan pekerjaan, sebenarnya apa sih yang kita cari? Bisa jadi Kita mau memastikan apakah teknologi yang dipakai sesuai dengan keahlian yang Kita kuasai atau tidak. Apalagi kalau project yang di bangun itu benar-benar dari awal. Ini akan menjadi kesempatan yang manis untuk menumpahkan idealisme Kita secara utuh. Tapi terkadang realita memaksa Kita untuk lebih toleran, sebab tidak semua perusahaan hanya menggunakan teknologi yang Kita kuasai saja. Namun hal ini tidak jadi alasan untuk Kita terhenti sampai disini. Sekarang pertanyaannya adalah: Jika Kita harus menerima hal yang Kita tidak kuasai, apakah Kita siap jika Kita keluar dari zona nyaman?
Melanjutkan sistem yang besar dan kompleks, terutama jika pola dan penggunaan teknologi-nya berbeda dengan kemampuan Kita, akan tampak seperti Cosmic Horror bagi kebanyakan Programmer. "Kartu" keahlian yang Kita miliki belum tentu cocok untuk kita gunakan semua. Belum lagi Kita juga harus mempelajari sistem dan pola yang sudah berjalan dengan hati-hati. Itu sebabnya Saya akan membagi pengalaman bagaimana Saya menyikapi Kode Warisan.
Kamu pasti tidak asing kan dengan halaman Getting Starter? Ya, inilah dokumentasi rekomendasi yang paling sering di arahkan agar Kita membacanya. Bisa tebak apa saja isinya? Tentunya berisi Instalasi, Konfigurasi, dan Penggunaan. Dokumentasi ini biasanya sangat bersahabat untuk pemula. Ini tentunya sangat membantu untuk memulai pembukaan kamu.
Dalam sebuah sistem biasanya memiliki titik mulai, baik itu launcher, handler, manage, dan istilah-istilah lainnya yang serupa, itu akan memudahkan Kamu jika kamu mengetahuinya. Kamu bisa melihat di sekitarnya dari yang paling terdekat untuk dipelajari, biasanya terdapat konfigurasi, modul, model, view, controller, dan kawan-kawannya.
Jangan lupa juga untuk Kita membahas tentang tools yang di gunakan oleh tim. Terkadang kita tidak punya pilihan untuk memilih aplikasi apa yang kita inginkan untuk digunakan dalam bekerja. Namun jangan sampai hal ini mengganggu kenyamanan kamu bekerja. Kamu bisa bertoleransi untuk belajar menggunakan tools tersebut, atau kamu menggunakan tools Kamu dan tools tim secara bersamaan, sehingga Kamu tidak mengorbankan kenyamanan Kamu dalam bekerja serta dapat diterima juga oleh tim.
Dengan selesainya pembukaan yang Kamu mulai, Kamu sudah bisa mulai melakukan ekslorasi untuk membuka peta yang berkabut, seperti Macam-macam End-Point, Table-table beserta relasinya, Model, Modul, Stored Procedure, Activity, Pages, Views dan masih banyak lagi. Tidak usah terburu-buru untuk menguasai semuanya.
Selain eksplorasi mandiri, pastikan selalu untuk menanyakan apakah ada dokumentasi yang bisa Kamu baca. Kamu pun juga tidak usah ragu untuk bertanya ke Senior (pastikan pertanyaannya juga berkualitas). Jika dokumentasi-nya belum lengkap, kamu bisa melengkapinya sendiri agar memudahkan Kamu untuk kedepannya.
Setelah kamu melakukan eksplorasi, kini saatnya kamu menggali lebih dalam. Sehingga apa yang kamu tau tidak hanya yang ada di permukaan saja, tapi juga sampai ke inti-nya. Aktifitas ini tentunya harus kamu jadwalkan. Luangkan 3 jam waktu Kamu dengan fokus tinggi untuk sesekali menggali sistem.
Dalam menggali lebih dalam, mungkin kamu akan menemukan beberapa fungsi yang akan berguna kelak. Hal itu juga menghindari Kamu untuk membuat ulang fungsi yang sebenarnya sudah ada. Mungkin kamu juga akan menemukan beberapa pola yang tidak konsisten di sepanjang sejarah dibangunnya sistem tersebut. Jika kamu menemukan hal tersebut, jangan terlalu di ambil pusing dan cukup pilih dan gunakan pola yang terbaik menurut Kamu. Selama Kamu ga ada kepentingan, upayakan untuk hindari sentuh-sentuh hal yang sudah berjalan benar. Hindari refactor yang tidak perlu, sebab Kamu sejatinya masih aman selama alur bisnisnya sudah benar.
Kamu pasti akan basah jika kamu belajar berenang. Jadi mulailah untuk Basah!, pelajari bagaimana kamu dapat membuat perubahan. Tidak usah tergesa-gesa, trial kecil yang rutin akan membuat Kamu terbiasa hingga Kamu mulai berani membuat perubahan yang lebih besar.
Jika kamu sudah berani untuk itu, mulailah untuk memperkirakan estimasi pada task-task awal yang Kamu punya. Mulailah dari yang paling gampang agar Kamu dapat mengumpulkan rasa percaya diri. Latihlah dengan rutin hingga kamu mulai terbiasa dengan sistem yang sudah berjalan tersebut.
Untuk mempermudah langkah kita selanjutnya, sempatkanlah untuk membuat Pattern Guide dari pola pekerjaan di setiap Kamu sedang menyelesaikan task. Ini akan membantu kamu untuk mengerjakan task yang akan datang. Jika Kamu perhatikan baik-baik, pekerjaan itu terkadang memiliki pola, bahkan jika kamu melakukan pekerjaan random sekalipun.
Upayakan Kamu harus jauh lebih fokus ke kebutuhan tim dan perusahaan ketimbang hanya memenuhi apa yang kamu inginkan saja. Ingat selalu bahwa alur bisnis yang lancar jauh lebih penting dibandingkan dengan menerapkan pembaruan teknologi yang Mutakhir.
Terkadang Kode Warisan memang cukup mengintimidasi, tapi dengan menghadapinya akan membuat Kita menjadi lebih kuat dan berkembang. Jangan panik, tetap fokus, dan istirahatlah sejenak jika sesekali kamu sudah merasakan lelah. Cepat atau lambat, kamu akan menguasainya.