Membangun Skema Teknis Yang Baik untuk Produk Startup (Bagian 2 – HABIS)

 / Shutterstock

Ini adalah bagian kedua dari dua tulisan. Silakan simak tulisan bagian pertama di tautan ini.

Produk aplikasi saat ini dituntut untuk tersedia di berbagai jenis platform, minimal untuk Android, iOS dan web-based karena pangsa pasarnya tinggi. Banyak pengembang meyakini bahwa porting aplikasi dengan tools tertentu tidak akan lebih baik dari pengembangan aplikasi secara native untuk platform tertentu. Benarkah demikian? Kami membahas topik ini dengan Direktur Samsung R&D Institute Indonesia (SRIN) Risman Adnan.

Risman menyampaikan:

“Saya melihat ini sebagai bias in thinking karena adanya generalisir permasalahan. Pemilihan native tidaknya kode aplikasi tergantung kebutuhan. Saya tahu banyak yang bilang bahwa kode Xamarin atau Phone Gap tidak lebih banyak dibanding native Java di Android atau Objective-C di iPhone. Diskusi seperti ini harusnya ada dalam design room sebelum aplikasi dibuat, dan sangat tergantung dengan requirement.”

Menurut Risman untuk tipikal aplikasi yang butuh performa tinggi, seperti pemrosesan grafis misalnya, mungkin harus native untuk terhubung ke library OpenGL/Metal/DirectX agar lebih opetimal. Namun untuk line of business app yang membutuhkan produktivitas pengembangan, change request yang dengan frekuensi tinggi dan tipe perangkat pengguna yang berbeda, mungkin akan lebih tepat memilih single-code-based dengan dukungan tools multi-platform ala Xamarin.

Pemikiran yang juga sering salah menurut Risman adalah orang mengira bahwa dengan single-code-based  prosesnya akan lebih mudah. Praktiknya banyak hal yang justru lengah dan menjadikan celah bugs untuk aplikasi. Pada dasarnya semua tetap harus dipikirkan dengan matang dalam design session. Kejadian ini bukan hanya seputar mobile apps, di web back-end pun juga masih sering terdengar perdebatan soal platform stack, seperti pemilihan antara PHP vs ROR, Python vs Java dan sebagainya.

“Apapun pilihannya semua harus didiskusikan dalam design session, dan semua keputusan yang diambil harus memiliki basis fakta dan pemikiran yang tepat,” tegas Risman.

Disetujui bahwa produk yang bagus harus dikaitkan pada teknologi yang tepat, beberapa pertimbangan dari sisi development harus diperhatikan secara matang

Pemilihan teknologi stack aplikasi harus dipertimbangkan dengan baik sesuai fokus bisnis, karakteristik proyek, kultur pengembangan, kemampuan pengembang, dan pertimbangan lain yang relevan.

“Untuk tipikal aplikasi B2B misalnya, mereka akan bergantung pada legacy yang ada di kustomer, biasanya Java atau .NET, Oracle atau SQL Server. Untuk B2B apps yang harus melayani jutaan pengguna, teknologi stack-nya akan berbeda pula agar mendapatkan tingkat responsiveness, concurrency dan fault tolerant yang memadai,” ujar Risman mencontohkan penerapan teknologi pada pengembangan aplikasi.

Faktor ketersediaan exeprtise juga kadang menjadi petimbangan penting. Risman mencotohkan semua yang bisa dilakukan oleh program Java bisa dibuat di C/C++ dengan performa lebih cepat, tapi apakah itu yang jadi prioritas ketika expertise di C/C++ development membutuhkan waktu 3-5 tahun untuk dicapai? Misalnya di Indonesia, mudahkah mencari graphic engineer yang memahami pemrograman GPU, OpenGL dan OpenCL? Atau security engineer yang dalam di Crypto dengan native C/C++?

“Jadi pertimbangannya akan tergantung pada skenarionya. Tidak ada shortcut, harus dipikirkan dengan baik karena setiap bisnis dan organisasi itu unik dan tidak bisa didikte oleh pemilihan teknologi yang under-thinking. Mungkin sering kita membaca mengenai pemilihan teknologi stack di Google, Twitter, Microsoft, Samsung and Facebook? They think a lot as they have billion size business to protect and run. Mereka punya divisi sendiri yang memikirkan hal tersebut dan membuat standardisasi, seperti tim engineering/productivity excellence.

Process, methodology, and toolset are important after we got the fundamentals work well

Risman mengatakan bahwa tak dipungkiri banyak tim pengembang yang mendewakan proses – TDD, Continuous Integration, Agile or SCRUM, tetapi fundamental di sisi individual tim belum terbentuk. Metodologi dapat membantu tim yang terdiri dari individual yang capable. Skill gap, discipline, time management, code skills and endurance, dan problem solving skills adalah sesuatu yang mendasar. Tentu saja metodologi bisa membantu produktivitas dan meningkatkan kualitas, tapi setelah fundamental tersebut dimiliki oleh anggota tim.

Software engineering adalah proses maraton yang membutuhkan kedisiplinan, fokus, dan energi semua anggota tim. Strategi untuk memilih metodologi terkait dengan efektivitas dan produktivitas pada dasarnya adalah strategi untuk mengatur to-do check list dari semua anggota tim agar bisa menyelesaikan pekerjaan secara terstruktur dan produktif. Jika masih bisa diatur dengan tools sederhana, kenapa harus dengan yang kompleks?

“Banyak tim yang merasa sangat produktif yang tools yang mahal dan kompleks, sementara yang mereka kerjakan bisa dilakukan hanya dengan strategi sederhana seperti memisahkan brain vs labor tasks dalam tim development. Jangan overkill dalam problem solving, pahami masalahnyadengan baik dan tentukan strategi.“

Kendati demikian, Risman juga menggarisbawahi bahwa beberapa toolset dan teknik pengembangan mutlak dibutuhkan karena sangat sulit mengaturnya secara manual. Seperti version control, unit test, continuous integration, build/release management, code review dan task list. Semuanya sudah sudah tersedia di komunitas open source karena memang sangat dibutuhkan. Permasalahannya bukan di tools, tetapi di komitmen tim engineering yang menggunakannya.

Business and technical co-founders is romantic story but hard in reality. Lucky if you have them married as couple

Bisnis adalah terciptanya sinergi antar elemen ahli yang berbeda / Shutterstock

Risman mengatkan dengan tegas bahwa tidak benar bahwa hanya engineer yang terlibat dalam membuat produk. Dan tidak benar bahwa orang bisnis berkontribusi kecil.

“Apakah Anda tahu bahwa SVP Product Development di Google, Jonathan Rosenberg dan Alan Eagle menyandang gelar MBA, sementara Larry dan Sergey adalah [kandidat] PhD di Computer Science? Atau mungkin VP Samsung R&D Institute Indonesia Alfred Boediman PhD dengan latar belakang finance? Good product comes from good marriage between business and technology, great one comes from crazy-stubborn people among those couples. Untuk menjadi software engineer hanya dibutuhkan common analytical logic dan high school math level di mana semua orang memilikinya. Tapi proses membuat software adalah proses kerja sama individu-individu yang mau berpikir dan memecahkan berbagai masalah dalam satu tim, walaupun dengan latar belakang masing-masing. It’s the physics of the people where ego and individualism will not help much.”

Riman melanjutkan, “Saya percaya bahwa semua orang bisa menulis kode dan diberi pemahaman teknis – walaupun bukan R&R (role dan responsibility) utamanya dalam organisasi. CEO misalnya, prioritas utamanya adalah hiring dan think and run the business, bukan coding. Tetapi sebagai engineer terkadang hanya butuh saling percaya antar anggota tim.”

Pola pikir seperti itu harus dirombak. Jangan pernah terpikir bahwa kode C++ lebih susah dibanding memecahkan business puzzle. Semua anggota tim mengemban dan memikirkan semua masalah dan mengambil keputusan dengan insights yang cukup. Masalah dalam membuat software yang berkualitas sangat banyak, bukan hanya di level kode dan teknologi, tapi menyangkut bisnis bahkan operasional. Dan  itu tidak bisa dihasilkan dengan single mindset.

Mungkin yang lebih mudah adalah mendesain R&R model yang tepat dan menciptakan sinergi antar anggota tim dengan komunikasi yang baik. Setiap langkah dalam pengembangan produk adalah proses mengambil keputusan yang membutuhkan fakta dan solusi yang benar-benar dipikirkan dari segala aspek.

“Selain masalah ego individu, saya melihat ini lebih ke organization design and communication problems. Ketika kita membangun produk, tim manajemen produk dengan latar belakang bisnis mutlak dibutukan dan mereka harus komunikasi dengan baik, bekerja secara harmonis dengan tim engineering dan test. Tentu saja ini yang paling sulit, memimpin tim, memberi mereka common goals dan battle-field di mana mereka harus bertempur bersama tidak secara individu. So, remove the egocentric, team up and fight in the battle together!

Bagaimana potensi startup di Indonesia saat ini dan di masa mendatang dalam kaitannya dengan pengembangan produk yang berkualitas?

Menurut Risman pangsa pasar Indonesia itu sangat besar dan akan menjadi warisan bagi anak-anak muda saat ini. Butuh level of execution yang tepat untuk bisa menjalankan suatu bisnis yang melahirkan profit. Dari apa yang Risman saksikan di Indonesia saat ini, level of execution kebanyakan masih seadanya, masih terlilit “wishful thinking” yang kejauhan.

Banyak anak-anak muda yang belum memahami bisnis dan industri, tidak memiliki manajemen dan nilai kepemimpnan, hanya dengan kemampuan teknik coding terjun untuk menjalankan bisnis software yang sangat kompleks dengan harapan mendapatkan angel/seed funds.

“Biasanya anak-anak muda yang baru lulus yang mungkin belum pernah terlibat dalam maraton yang nyata serta mengalami kegagalan. Di setiap exit interview saya sering bertanya, masalah terbesar apa yang pernah mereka selesaikan dengan bangga sehingga berani starting-up? Jawabannya biasanya mengenai mimpi, dan mereka melihat itu sebagai karier dengan kemampuan teknisnya. Faktanya, teknikal hanya bagian kecil dari entrepreneurship game, sangat kecil untuk menjamin kesuksesan dengan kondisi mereka.”

Tentu saja ada yang berhasil melakukannya, seperti Mark Zuckerberg, Steve Jobs, atau Bill Gates yang memulai di usia muda. Tapi kita harus jeli melihat ambisi, ekosistem, latar belakang, dan paling penting “mentor” di belakangnya. Tidak hanya memiliki kemampuan belajar dan berpikir yang super, mereka memiliki mindset untuk mendengarkan mentornya.

“Jarang sekali founders yang saya temui memiliki karakter tersebut, tetapi mereka masih sangat muda dan punya waktu banyak untuk membuat banyak kesalahan dan belajar secara positif. Itu membuat saya cukup optimis dalam 5-10 tahun ke depan selama mereka bisa belajar dari kesalahan.”

Perjalanan startup membuat produk berkualitas dan menciptakan profitable business adalah perjalanan panjang yang jauh dari cerita romantis. Yang sebenarnya adalah kerja keras dan pengorbanan yang sangat besar selama masa pembelajaran.

Starting-up dengan kondisi yang lebih matang setelah bekerja dan memahami bagaimana suka duka menjalankan perusahaan akan berisiko lebih kecil terhadap kegagalan. Bekerja dengan fokus di perusahaan yang memilliki tim yang tepat, budaya dan proses mungkin bisa menjadi sekolah yang lebih baik untuk awalnya, sambil memikirkan model bisnis yang akan dijalankan.

Setelah merasa siap baru terjun.

“Nekad mengikuti lomba lari maraton 1000 kali bolak-balik di gunung yang besar terkesan super heroic, tetapi sama saja aksi bunuh diri, tanpa persiapan yang matang,” pungkas Risman.

Leave a Reply

Your email address will not be published.