TipTech #2: Membangun Arsitektur Aplikasi “Scalable” ala Tim Pengembang Ovo

TipTech adalah rubrik baru DailySocial yang membahas berbagai kiat dalam pengembangan produk atau aplikasi startup. Setelah sebelumnya membahas tentang siklus pengembangan produk, kali ini kami berkesempatan untuk berbincang dengan Chief Product Officer Ovo Albert Lucius tentang arsitektur aplikasi yang scalable.

Tujuan dari pengembangan aplikasi yang scalable adalah menunjang pertumbuhan bisnis berkelanjutan. Ketika pengguna layanan semakin bertambah –kadang lonjakannya bisa sangat signifikan—harapannya produk tidak turun performa, misalnya aksesnya jadi lambat atau bahkan mati. Untuk itu diperlukan perencanaan arsitektur sistem yang matang.

Sejak debut pada tahun 2017 sebagai platform loyalty, lalu bertransformasi menjadi e-wallet, hingga sekarang punya basis pengguna mencapai lebih dari 100 juta pengguna; Ovo punya cerita menarik dari dapur pengembang. Saat ini layanan Ovo juga sudah terintegrasi ke banyak platform lain yang memiliki arus transaksi besar –sebut saja Tokopedia dan Grab.

Kepada Albert kami menanyakan tentang bagaimana arsitektur sistem yang baik untuk sebuah aplikasi mobile.

“Menurut kami, dengan cepatnya pertumbuhan secara umum, sangat penting aplikasi bersifat modular dan menggunakan sistem feature flag. Karena akan  banyak komponen aplikasi yang dibuat oleh berbagai tim. Jika sistemnya bersifat monolith, maka akan memperlambat laju pengembangan.”

Dengan pendekatan modular, di dalam sebuah aplikasi terdapat kumpulan unit fungsional (disebut: modul) yang dapat diintegrasikan untuk menjadi aplikasi yang lebih besar. Modul aplikasi tersebut dapat dianalogikan sebagai aplikasi kecil di dalam aplikasi yang dapat diambil, dipasang, atau dikonfigurasi kembali ke aplikasi lain. Modul-modul tersebut terbungkus dalam logika bisnis program yang direpresentasikan dalam antarmuka pengguna.

Sementara konsep feature flag penting diterapkan, sehingga memungkinkan pengembang membatasi/menonaktifkan beberapa fitur saat terjadi masalah, tanpa mematikan fungsi aplikasi secara keseluruhan.

Albert Lucius
Chief Product Officer Ovo Albert Lucius / Ovo

Kiat integrasi aplikasi

Selain mempertimbangkan dua hal di atas, Albert juga menyampaikan tentang konsiderasi pembagian aplikasi native dan webview untuk menjaga performa aplikasi.  Hal tersebut akan berdampak pada ukuran APK dari tiap aplikasi. Menurutnya ini jadi faktor penting, terlebih saat startup terus beranjak mencapai skala yang lebih besar.

Aplikasi native dibangun dengan bahasa pemrograman tertentu yang menyatu dengan core aplikasi. Sementara aplikasi webview memanfaatkan fungsionalitas penampil laman web di dalam aplikasi tanpa harus memaksa pengguna membuka browser terpisah.

Di lain sisi, integrasi dengan pihak ketiga juga menjadi hal yang butuh diperhitungkan secara teknis untuk aplikasi seperti Ovo. Albert menyebutkan, keamanan pengguna menjadi prioritas utama bagi perusahaan ketika melakukan integrasi. Selain proses internal dan disiplin terhadap SOP, ia selalu menyarankan untuk melakukan penetration testing (pen-testing) eksternal. Banyak sekali saat ini vendor lokal maupun luar negeri yang dapat membantu proses ini.

Pen-testing adalah kegiatan menyimulasikan serangan terhadap sistem aplikasi. Ini jadi komponen penting dalam audit keamanan, biasanya wajib dilakukan untuk aplikasi yang menampung data sensitif, agar tidak mudah dibobol atau diintervensi oleh pihak yang tidak bertanggungjawab –baik dari internal maupun eksternal.

pen-testing
Tahapan dalam pen-testing / Imperva

“Program bug bounty juga dapat membantu menyalurkan laporan bugs yang mungkin tidak terdeteksi oleh proses internal. Peningkatan kualitas layanan dan sistem keamanan (di sisi aplikasi kita) juga jadi faktor penting untuk kenyamanan pengguna,” terang Albert.

Pengelolaan sumber daya

Infrastruktur teknologi yang baik juga harus ditangani oleh SDM yang mumpuni untuk menghasilkan performa terbaik. Untuk mengelola pekerjaannya, juga diperlukan metodologi yang tepat. Namun menurut Albert, di perusahaannya tidak terpaku pada tren yang sedang menjadi sorotan, kesesuaian dengan karakteristik tim menjadi pertimbangan utama.

“Sangat penting untuk kami dalam merekrut tim yang betul-betul paham scaling infrastruktur secara baik dan benar.”

Setiap pengembang juga dituntut untuk menghasilkan baris konde yang berkualitas. Menurutnya ada tiga indikator yang dapat menggambarkan susunan pemrograman yang efisien, yakni sistem repositori yang memadai, konsep best coding practice, dan code reveiw yang solid. Best coding practice menjadi aturan informal yang harus sering diutarakan melalui sebuah standar yang diterapkan di perusahaan, dilengkapi dengan pelatihan yang memadai.

“Sistem code review juga sangat penting karena sedikit banyak SDM mudah membuat kesalahan. Oleh karena itu untuk startup yang sedang berkembang, jangan lupa untuk melakukan automated testing dan unit testing. Hal ini dikarenakan semakin membesarnya skala startup, semakin banyak developer yang bekerja di code repository kita, semakin banyak kesalahan dapat terjadi. Automated testing akan sangat membantu mengurangi human-error yang dapat terjadi,” jelas Albert.

Application Information Will Show Up Here

Antara Scrum, Kanban, dan Pendekatan Terbaik dalam Pengembangan Produk Teknologi

Agile Indonesia Conference 2017 akan segera dilaksanakan, menghadirkan banyak ahli perencanaan pengembangan perangkat lunak “Agile” baik dari Indonesia ataupun luar negeri. Salah satu pemateri yang akan hadir adalah Renee Troughton, Founder Unbound DNA dan Enterprise Agile Coach.

Dalam sebuah kesempatan, Renee memberikan pandangannya tentang ragam metodologi dan pendekatan yang ia sering ajarkan dalam pengembangan produk perangkat lunak.

“Saya adalah seorang polymath yang penuh gairah. Saya ingin membuat dunia lebih baik melalui menemukan cara kerja baru dan membagikannya kepada orang lain. Saya tidak akan mengatakan bahwa saya hanya seorang pelatih Agile, saya menggunakan banyak metodologi dan pendekatan yang berbeda, mencoba untuk fokus pada sains dan apa yang terbukti bekerja dalam kenyataan,” ujar Renee memperkenalkan dirinya.

Dalam konferensi mendatang, scaling adalah salah satu tema pembahasan yang akan dibawakan Renee. Akan cukup menantang, pasalnya dalam konsep pengembangan masalah skalabilitas belum populer di Indonesia. Dalam blog tentang Agile yang sering ditulis, Renee membahas secara mendetail “Scaling Agile Tricks”.

Dari tulisan tersebut disimpulkan empat prinsip utama dalam scaling, yaitu: (1) mengurangi handoff dan dependensi, (2) memperbaiki arus proses, (3) memvalidasi dan memperbaiki hingga menjadi sesuatu yang benar, dan (4) terakhir mengintegrasikan Agile, Lean dan Desain Thinking. Namun demikian, Renee menggarisbawahi, empat prinsip dasar tersebut harus mampu berjalan beriringan untuk terciptanya sebuah hasil proses yang utuh.

Antara Scrum dan Kanban

Di Indonesia, khususnya di kalangan korporasi, Scrum menjadi pendekatan primadona. Di sisi lain, Kanban adalah salah satu pendekatan yang didalami oleh Renee. Ia menjelaskan karakteristik dan perbedaan di antara keduanya.

“Mungkin perbedaan utama antara Scrum dan Kanban akan berada pada pendekatan dasarnya. Di Scrum, tim merasa bahwa proses tersebut menggantikan proses pengembangan yang ada. Di Kanban, adopsi dimulai dengan apa yang dilakukan sekarang dan menambahkan beberapa praktik dan prinsip ekstra,” jelas Renee.

Ia juga menambahkan, selain dari sudut pandang adopsi dalam memulai, perbedaan inti kedua adalah dalam timeboxing. Scrum memiliki timeline yang jelas dan teratur, sedangkan Kanban lebih berfokus pada arus yang terus menerus dan terkelola. Scrum cenderung memiliki manajemen visual yang sangat sederhana dengan pekerjaan dipecah menjadi “To Do”, “Doing”, dan “Done”. Di Kanban, pekerjaan tidak dipecah menjadi beberapa tugas, namun  sebaliknya, pengelolaan visual merupakan representasi arus kerja menurut kelas pelayanan.

Lalu lebih baik yang mana untuk diterapkan di korporasi? Selengkapnya akan dibahas dan didemokan oleh Renee Troughton pada sesi Agile Indonesia Conference 2017. Selain membahas tentang Scrum dan Kanban, konsep Holacracy dari Brian Robertson turut akan disampaikan Renee.

Para profesional IT, manajer proyek perangkat lunak, manajer produk, programmer, tester dan komponen lainnya yang tertarik untuk mengikuti konferensi ini dapat segera mendaftarkan diri melalui laman resmi Konferensi Agile Indonesia http://2017.agileindonesia.org.


Disclosure: DailySocial merupakan media partner Konferensi Agile Indonesia.

Konferensi Agile Indonesia Akan Diselenggarakan untuk Pertama Kalinya

Penelitian yang dilakukan Standish Group mengungkapkan bahwa sekitar 60% proyek pengembangan perangkat lunak mengalami kegagalan dan diragukan kualitasnya. Salah satu penyebabnya adalah adanya proses yang sesuai dalam rangkaian proses pengembangan tersebut. Banyak penelitian yang mencoba memecahkan masalah tersebut, sehingga terlahir sebuah metode yang disebut Agile Software Development. Saat ini metode tersebut cukup umum digunakan, karena mampu menyajikan efektivitas dan hasil yang lebih terukur dalam proses pengembangan.

Untuk meningkatkan pemahaman tentang metodologi tersebut, Konferensi Agile pertama di Indonesia akan diselenggarakan. Tepatnya pada tanggal 12-13 Juli di Menara BTPN Jakarta. Puluhan pemateri ahli akan dihadirkan untuk berbagi tentang praktik terbaik dan strategi penerapan Agile Software Development dalam lingkungan bisnis. Konferensi ini juga memiliki visi untuk menyebarkan kesadaran, pengetahuan dan pengalaman tentang agile melalui perusahaan-perusahaan yang ada di Indonesia.

Di hari pertama konferensi, pembahasan akan difokuskan pada tema “Enterprise Agility”. Tema ini akan mengupas tentang leadership dan management dalam proses pengembangan perangkat lunak. Sedangkan hari kedua akan memfokuskan pada “Practitioner Day”, menghadirkan para praktisi untuk menceritakan praktik terbaiknya. Termasuk membahas tentang manajerial produk, scrum master, testing dan sebagainya.

“Tujuan kami adalah untuk berbagi dan menyebarkan ilmu tentang agile dan scrum di Indonesia. Kami mengadakan meetup setiap bulan di berbagai daerah di Indonesia dan memiliki komunitas aktif di Facebook. Kami juga memiliki lingkaran agile (pertemuan yang lingkupnya lebih kecil) dan grup Slack,” sambut perwakilan komunitas Agile Indonesia selaku penyelenggara konferensi ini.

Konferensi dini diharapkan dapat menjadi ajang bagi para profesional industri teknologi informasi untuk mendiskusikan ragam proses pengembangan perangkat lunak yang berkualitas. Bagi para profesional IT, manajer proyek perangkat lunak, manajer produk, programmer, tester dan komponen lainnya yang tertarik untuk mengikuti konferensi ini dapat segera mendaftarkan diri melalui laman resmi Konferensi Agile Indonesia http://2017.agileindonesia.org.


Disclosure: DailySocial merupakan media partner Konferensi Agile Indonesia.

Penghentian Operasional Go-Jek dan Agate Yogyakarta, Upaya Sentralisasi Tim Pengembang

Go-Jek Tech Valley (GTV) atau markas pengembangan Go-Jek di Yogyakarta ditutup menjelang akhir tahun lalu. Public Relation Manager Go-Jek Rindu Ragilia dalam keterangan resminya mengatakan bahwa pihaknya tidak menutup kantor di Yogyakarta, tetapi mengintegrasikan dan mengkonsolidasikan pusat pengembangan dan engineering Go-Jek ke Jakarta. Pihak Go-Jek memberikan opsi kepada para pengembang untuk pindah ke Jakarta dan sejumlah pengembang akhirnya memilih keluar dan memutuskan tetap di Yogyakarta dengan alasan pribadinya masing-masing.

Di awal tahun, kabar penghentian operasional juga muncul dari startup pengembang game yang berbasis di Yogyakarta, Agate Jogja. CEO Agate Studio Arief Widhiyasa, induk brand Agate Jogja, mengatakan bahwa pasca penghentian operasional tersebut mereka berharap pengembang yang mau direlokasi bisa pindah ke Bandung supaya koordinasinya terpusat.

Bagi Arief. dengan stage yang (menurutnya) masih kecil, memusatkan tim produksi dirasa menjadi keputusan yang paling ideal.

Salah satu sudut Go-Jek Tech Valley di Yogyakarta / Go-Jek
Salah satu sudut Go-Jek Tech Valley di Yogyakarta / Go-Jek

Urgensi memusatkan tim produksi di satu tempat

Dibuatnya tim produksi di luar Jakarta seperti di Yogyakarta dilandasi beberapa alasan. Pertama, sebagai kota pelajar dengan ratusan kampus dengan berbagai jurusan, Yogyakarta dinilai sebagai supply sumber daya manusia unggul, terutama untuk tahap early stage. Alasan kedua terkait biaya operasional yang tergolong lebih “hemat” jika dibandingkan di Jakarta, Bandung atau Surabaya.

Kedua hal di atas menjadi sangat relevan sebagai strategi penguatan dan akselerasi bagi startup di tahap early stage. Ketika sudah menjadi besar dengan kepemilikan traksi pengguna yang sangat besar, biaya operasional tidak menjadi isu lagi. Kebutuhan gerak cepat dan kolaborasi yang lebih sigap kini menjadi kebutuhan yang lebih mendesak. Untuk Agate Studio, mereka merasa masih membutuhkan koordinasi terpusat untuk efektivitas.

Benang merahnya adalah kemudahan komunikasi dan kolaborasi. Produk Go-Jek dan Agate sangat bergantung tentang bagaimana stack teknologi yang disusun mampu bekerja dengan baik.

Go-Jek, dengan sebuah aplikasi tunggal, harus merangkum segala bentuk kebutuhan konsumen. Penempatan tim yang berjauhan akan menjadi tantangan tersendiri, kendati komunikasi sudah dapat dijembatani dengan perangkat lunak. Diakui atau tidak, bertatapan secara langsung menguatkan berbagai unsur pendorong kolaborasi.

Bentuk ekspansi dengan keperluan berbeda

Tiket.com pada pertengahan tahun lalu, bertepatan dengan ulang tahunnya yang ke-5, merayakannya dengan membuka kantor perwakilan di Yogyakarta. Seperti yang diungkapkan Co-Founder Gaery Undarsa, kantor barunya ini bukan digunakan sebagai tempat bertransaksi, melainkan pemenuhan kebutuhan perusahaan untuk memiliki representasi. Mereka butuh meningkatkan kerja sama dengan agen travel, hotel dan komponen bisnis lainnya. Peningkatan jangkauan layanan sebuah produk startup memaksa perusahaan pengusungnya untuk bisa berekspansi.

Kembali ke cerita penutupan operasional Agate Jogja, menurut co-founder-nya Frida Dwi, saat ini brand Agate Jogja belum benar-benar ditutup dan masih dipegang oleh Agate Studio. Ada kemungkinan brand tersebut digunakan kembali dalam formasi dan bentuk yang berbeda. Hal serupa juga pernah dituturkan oleh Go-Jek, bahwa GTV tidak benar-benar ditutup, hanya saja merelokasi tim pengembang ke Jakarta. Dari sisi operasional tempat singgah yang dimiliki akan digunakan untuk keperluan proses bisnis yang lain.

Skarang modelnya mulai dibalik, tim produk akan dipusatkan di satu tempat, sedangkan tim pengembang bisnis yang harus berekspansi ke berbagai daerah tempat konsumen bernaung untuk memperkuat produk dan memperluas pangsa pasar.

OLX Luncurkan Platform Automation Testing Athena

Sama seperti produk lainnya, perangkat lunak juga membutuhkan pengujian untuk tetap menjaga kualitas sistem. Terlebih yang dikembangkan sebuah fitur, jika terdapat kegagalan kemungkinan besar akan berpengaruh pada sistem secara keseluruhan, untuk itu penting diadakannya pengujian. Baru-baru ini OLX meluncurkan sebuah platform untuk memudahkan pengujian, tepatnya platform untuk pengujian otomatis. Platform ini diberi nama Athena.

Athena diklaim menjadi platform automation testing pertama di Indonesia. Athena diperkenalkan ke publik melalui sebuah acara yang juga dihadiri oleh Indonesian Software Quality Assurance (ISQA), para pengembang web dan dibuka oleh Software Engineering Evangelist Nasper Limited (perusahaan yang membawahi OLX) Rafael Pinto melalui video call.

Dijelaskan Pinto, automation testing merupakan teknik pengujian sebuah produk. Sama halnya dengan produk lain seperti elektronik, produk perangkat lunak juga membutuhkan proses pengujian agar kualitasnya sesuai dengan standar yang ditentukan. Sayangnya melakukan pengujian bukan hal yang mudah, selain prosesnya yang cukup rumit, automation testing juga memakan waktu yang lama.

Para pembicara (Rendra - Ferga - Suci - Tegar - Buddy)
Para pembicara (Rendra – Ferga – Suci – Tegar – Buddy)

OLX melihat kebutuhan automation testing ini begitu tinggi namun ketersediaan software engineer belum mencukupi, khususnya di Indonesia. Untuk itu dengan peluncuran Athena ini OLX berharap dapat melakukan proses pengujian dengan lebih mudah dan cepat.

Chief Technology Officer OLX Indonesia Ben Hoskins mengatakan:

 “Dengan menggunakan Athena, proses automation testing dapat dilakukan dengan lebih mudah dan cepat. Semua proses automation testing yang awalnya memakan waktu dua hingga tiga bulan, kini dapat dilakukan dalam satu atau dua minggu menggunakan Athena.”

Athena sendiri berawal dari riset tentang automation di Jerman, kemudian dikembangkan dengan melibatkan para software engineer OLX secara global, termasuk Indonesia. Seiring berkembangnya Athena, OLX akhirnya memutuskan untuk menjadikan platform ini sebagai platform open source untuk bisa dimanfaatkan para software engineer dan developer di luar OLX.

“Jika Anda senang menghabiskan waktu untuk menyelesaikan masalah selama berjam-jam, mungkin Athena bukan untuk Anda. Namun, jika Anda ingin hasil kerja yang elegan dengan proses yang lebih cepat, Anda pasti akan menyukai Athena,” tutup Ben.

Mengoptimalkan Performa Tim Pengembang di Startup

Setiap perusahaan rintisan berbasis teknologi atau yang dikenal sebagai startup sangat tergantung perangkat lunak. Baik perangkat lunak sebagai produk atau perangkat lunak sebagai platform. Keduanya memegang peranan penting dalam bisnis. Untuk memaksimalkan penggunaannya, kemampuan merancang jadwal pengembangan dan perbaikannya menjadi kemampuan yang wajib dimiliki startup untuk tetap menjaga kestabilan bisnis dan layanannya, termasuk juga perbaikan atau penambahan yang dibutuhkan. Berikut beberapa tips yang bisa digunakan untuk membuat pengembangan perangkat lunak lebih efektif.

Siapkan pengaturan sprint pengembangan

Untuk memulai menata dan membuat pengembangan menjadi lebih efektif, proses-proses ringan seperti mengidentifikasi fungsi dan keperluan membangun sebuah fitur wajib untuk tidak tertinggal, termasuk prioritasnya. Sprint dimulai dengan melakukan perencanaan untuk apa membangun fitur tersebut. Dilanjutkan dengan membagi menjadi dua bagian berdasarkan prioritas. Apa yang bisa dikerjakan dalam sprint periode ini dan fitur apa yang bisa dikerjakan dalam sprint selanjutnya.

Setelah menentukan fitur mana yang menjadi prioritas, pilihan tersebut harus dikunci dan secara konsekuen akan dikerjakan. Tidak ada yang boleh menambahkan fitur-fitur lain selain disepakati, karena hal tersebut bisa mengganggu timeline kerja. Selain dua daftar fitur yang dipisahkan berdasarkan prioritas, wajib juga memiliki dua buah daftar untuk bug yang juga dipisah berdasarkan prioritas.

Prioritas dan penanganan darurat.

Seperti dijelaskan di poin pertama baik fitur maupun bug harus dipisah dengan menentukan prioritas. Tapi perlu diingat ada pengecualian khusus untuk kasus-kasus yang menyebabkan kestabilan bisnis terganggu. Untuk bug semacam ini mau tidak mau tim harus sesegera mungkin menyelesaikan bug yang ada, karena ini berkaitan dengan pelanggan dan juga tanggal rilis. Pengerjaannya bisa dengan membagi tim atau semacamnya.

Pair programming dan testing

Pair programming dan testing merupakan bagian dari metode agile development yang bisa menghasilkan kualitas kode yang tinggi. Banyak yang melihat pair programming sebagai salah satu metode yang buang-buang waktu dan efektif. Padahal pair programming bisa meningkatkan kualitas kode yang ditulis sekaligus membangun kebersamaan tim yang tinggi. Termasuk juga proses testing, diperlukan untuk menjaga bug yang ada keluar dari zona produksi.

Melakukan refactor

Diakui atau tidak perangkat lunak lama kelamaan akan mengalami penurunan performa. Untuk itu untuk membuat kode menjadi optimal dan kualitas perangkat lunak tetap terjaga melakukan refactor secara berkala perlu dilakukan, bahkan kalau perlu dijadwalkan. Refactor adalah proses memperbaiki struktur internal sebuah sistem perangkat lunak tanpa mengubah fungsionalitas dari sistem. Dalam proses refactor, dilakukan modifikasi perangkat lunak untuk memperbaiki struktur, mengurangi kompleksitas atau untuk membuatnya lebih mudah dimengerti. Tanpa refactor, sebuah program akan semakin rumit dan memerlukan biaya yang mahal jika dilakukan perubahan di tengah jalan.

Membangun tim yang bersemangat dan produktif

Selain masalah teknis masalah psikologis juga berpengaruh. Tim yang akan bersama-sama melakukan sprint pengembangan harus dalam suasana yang kondusif, yang bahagia. Dengan demikian hambatan-hambatan yang ditemui bisa dikerjakan dengan mudah dan tepat waktu karena pikiran anggota tim semua berfokus pada sprint. Diakui atau tidak kondisi dalam tim bisa berpengaruh pada tingkat produktivitas.

Kualitas Teknologi Sering Diabaikan Startup saat Pengembangan Produk

General Manager Infinys System Indonesia Dondy Bappedyanto / DScussion

Masih seputar tentang bagaimana startup menyikapi proses pengembangan produk teknologi. Di awal tahun 2014, saya pernah mendengar General Manager PT Infinys System Indonesia Dondy Bappedyanto mengatakan bahwa masih banyak startup di Indonesia yang kurang peduli dengan kualitas teknologi. Continue reading Kualitas Teknologi Sering Diabaikan Startup saat Pengembangan Produk

Pengembangan Produk Startup Cocok Menggunakan Metodologi Agile dan SCRUM

Kualitas produk software dapat tercipta melalui proses pengembangan yang benar / Shutterstock

Salah satu kunci utama kesuksesan sebuah startup teknologi adalah kualitas produk atau solusi yang dikembangkan. Dari survei kecil yang saya lakukan kepada beberapa startup, mereka cenderung kurang disiplin mengikuti kaedah rekayasa perangkat lunak yang ada. Meskipun kebanyakan mengatakan menggunakan Agile Method, mereka juga mengatakan bahwa masih setengah-setengah dalam mengimplementasikannya. Continue reading Pengembangan Produk Startup Cocok Menggunakan Metodologi Agile dan SCRUM