Stak Teknologi dan Gaya Development yang dipakai Software house & Startup

Fachry Ansyah
5 min readFeb 22, 2020

--

Photo by Joshua Aragon on Unsplash

stories ini didasari oleh pengalaman penulis, dan bukan mengada-ngada.

Teknologi yang ada sekarang semakin lama semakin maju, dari waktu ke waktu dan sangat beragam, dari fungsi sampai brand nya.

Sebagai Software Engineer kita dituntut harus bisa membuat teknologi, mengembangkan, atau mengikuti trend teknologi yang ada, dan berbagai perusahaan pasti punya Teknologi nya masing — masing, bisa dari teknologi dari pengembang lain atau membuat Teknologi khusus untuk perusahaan tersebut.

Di stories ini saya ingin sharing tentang Stak Teknologi apa saja yang digunakan dan bagaimana Gaya mereka mendevelop sebuah aplikasi atau program diperusahaan Software House dan Startup,

Software House

Saat saya baru lulus sekolah pertama kali, saya bekerja di salah satu perusahaan software house daerah Jakarta, perusahaan tersebut suka menghandle project — project dari luar dan memiliki produk sendiri dibidang Finansial.

Jumlah karyawan diperusahaan tersebut memiliki kurang lebih 40 karyawan, yang berisi beberapa jabatan, untuk programmer sekitar 15, sisanya divisi lain seperti marketer, admin, satpam dan lain — lain, Saya bertugas didivisi Web Developer

Gaya Development

Diperusahaan tersebut saya menggunakan GIT untuk VCS, Trello untuk mengatur Tugas harian, dan Vscode untuk tempat berpetualang.

Untuk mengerjakan sebuah tugas saya bisa ambil dari Trello seperti biasa, tetapi ada hal unik saat mengerjakan tugas tersebut dengan GIT, dalam repository hanya tersedia branch Master, dan Dev. Misalnya saya mau push code perbaikan atau penambahan sesuatu saya harus push ke repo Dev, dan tidak ke branch khusus yang dengan masalah terkait yang saya sedang kerjakan, misalnya : saya membuat fitur Login, seharusnya saya harus push di branch “Dev-Login”.

Illustrasi Branch

Sedikit aneh rasanya ketika saya langsung push ke branch Dev yang dimana akan terjadi konflik jika ada fitur baru yang berbeda yang dikembangkan programmer lain. jadi terkadang saya harus memberitahu programmer lain kalau saya baru saja Push, hahahaa…..

Untuk styling code bebas, jadi tidak ada aturan tertentu untuk pengcodeannya, ketika saya mengerjakan project yang dikerjakan programmer sebelumnya “WADAAWWW” hanya tuhan dan dia yang tau. saya hanya bisa meratapinya pelan — pelan sambil sembari memahami flow alur aplikasinya, tidak ada dokumentasi maupun komentar code, komentar code hanya di isi lirik lagu jawa hahahaha… saya gak tau apa yang dipikirin orang itu. dan ada beberapa konfigurasi environment yang dibuat Hard Coded.

Ketika saya dapat tugas untuk membuat project baru, disini saya memulai membuat styling code dan memberi komentar di tiap fungsi agar ketika ada programmer lain bisa dengan mudah memahaminya.

Tidak adanya Unit Testing sama sekali, semua yang kita kerjakan harus ditest manual, saya coba inisiatif membuat unit testing didalam suatu project, namun tidak ada yang menggunakan unit testing tersebut 1 pun, dan hanya saya yang menggunakan.

Stak Teknologi

Penggunaan stak teknologi disana sangat mainstream seperti menggunakan bahasa pemrograman: Php, Javascript, dan Java untuk pengembangan Android, dan Docker.

Untuk framework yang digunakan adalah CodeIgniter, dan Laravel, Ketika saya disuguhi dengan project baru, dan saya pun langsung ber-inisiatif untuk menawarakan framework Laravel untuk pengerjaannya, karena selama ini semua project diperusahaan tersebut didevelop dengan CI dengan code yang dibuatnya amburadul, mungkin dengan menggunakan Laravel akan mengurangi code yang amburadul dan lebih rapih dan terstruktur.

Startup

Ketika saya masih bekerja diperusahaan Software House saya merasa lama untuk saya berkembang atau bahkan sulit untuk berkembang dan menupgrade skill saya, akhirnya saya memberanikan diri untuk keluar dari zona nyaman tersebut, keluar dan mencoba bekerja di startup.

Singkat cerita ada penawaran dari komunitas dengan syarat menguasai Bahasa pemrograman Golang, dan saya coba menawarkan diri dengan modal coba — coba kebetulan saya baru belajar golang sekitar 2 minggu. Soal test pun datang dan lumayan sulit saya harus mengerjakan soal tersebut dengan bahasa Golang dan dibuatkan Service container dockernya. Dan saya pun berhasil dan diterima di perusahaan tersebut yang berlokasi dijakarta.

Disana memiliki total kurang lebih 20 karyawan yang dibagi beberapa divisi, untuk Programmer sekitar 12 lebih.

Gaya Development

Bagai bumi dan langit saat melihat gaya development perusahaan ini dan di perusahaan saya sebelumnya, diperusahaan ini tools yang digunakan hanya Slack, dan Gitlab, tugas — tugas diatur di Board issue gitlab, selebihnya Slack untuk diskusi.

Penggunaan GIT diperusahaan ini pun rapih, dari sisi branch nya sampai manajemen Wiki.

Rulesnya 1 Fitur memiliki 1 Branch dan dihandle oleh 1 orang. setiap saya ingin Merge Request saya harus melapor ke Engineer lain bahwa saya telah selesai membuat fitur ini dan meminta Review masukan atas code yang saya buat, dan ini yang membuat saya tertarik karena disini lah titik dimana saya dan engineer lain bisa berkembang, bisa mengoreksi kesalahan dan memperbaikinya. syarat selanjutnya jika code sudah selesai direview dan tidak ada masalah harus diLIKE terlebih dahulu, jika Like kurang dari 2 para senior tidak akan Merge branch kita. disini saya sadar lebih baik dapat Like diMerge request dibanding Like di facebook.

Styling code diperusahaan ini mengikuti AirBnB, saya tidak tau alasan mengapa mengikuti style tersebut tapi menurut saya yang penting keterbacaan code jadi lebih baik.

Hal yang saya suka selanjutnya adalah jika saat ngoding dan stuck pada error tertentu kita hanya dibatasi waktu 30 menit, jika lebih dari itu langsung segera bertanya di diskusi slack. banyak yang bilang nanti jika sudah bekerja hanya google teman bertanya kita, tapi nyatanya tidak disini. kita bisa dibantu ataupun membantu sesama jika ada kesulitan.

Selanjutnya adanya challange tiap 1 minggu sekali, tujuannya agar dapat mengimprove kemampuan logika para engineernya, dan pastinya ada reward di tiap challange tertentu.

Stak Teknologi

Stak Teknologi yang digunakan di perusahaan ini sangat canggih, bahkan beberapa ada yang saya baru tau. Untuk bahasa pemrograman: Golang dan Javascript, Infrastruktur seperti: Docker, Nats.io, RPC, Gitlab CI dan teknologi lain seperti : Blockchain, ReactJS dan A.I mungkin masih ada beberapa teknologi yang belum saya sebutkan.

Peran saya disini sebagai Fullstack Dev, jadi terkadang saya menggunakan Golang untuk membuat fitur dibackend, dan ReactJS untuk frontend. Di sisi Backend tidak menggunakan framework apapun, kita hanya menggunakan sebuah boilerplate yang sebelumnya sudah dirancang, sudah berisi perintah automisasi untuk Continus Integration, Unit Testing, dan keperluan infrastruktur lainnya. Golang memang lebih powerfull jika tidak menggunakan framework apapun karena dari package bawaannya sudah lengkap untuk mendevelop backend yang kita inginkan https://medium.com/code-zen/why-i-don-t-use-go-web-frameworks-1087e1facfa4

Kesimpulan

Saya harap ditulisan ini para pembaca bisa melihat gambaran besarnya jika bekerja disalah satu perusahaan, perlu diingat tidak semua Teknologi yang digunakan sama, karena pastinya berbeda di tiap — tiap perusahaan dan gaya developmentnya juga mungkin berbeda, tugas kita sebagai Engineer harus bisa beradaptasi dengan lingkungan baru dan berkembang dengan sejalannya teknologi yang terus maju.

Jika ditempat perusahaanmu kurang update terkait stak teknologi nya, atau gaya development yang buruk, kamu bisa saja berinisiatif untuk memberi masukkan ke engineer lain untuk sama — sama merubaha gaya development yang sebelumnya buruk menjadi lebih baik, agar tugas — tugas juga lebih cepat ditangani.

--

--

Fachry Ansyah

Just people who code in the darkness, reach me on instagram @fachry.stark