Jumat, 28 Februari 2014

Cerita Diskusi Panel dalam Kopi Darat Februari 2014

Dalam kopi darat Februari 2014 lalu, kami mencoba menghadirkan format baru dalam kopdar yaitu: diskusi panel. Diskusi panel kali ini mengangkat tema Python di Startup. Kami menggeser waktu diskusi panel menjadi sesi kedua, sehingga tak semua panelis bisa hadir.

Berikut ini adalah cerita diskusi panel dengan panelis: Selwin Ong - dari stamps customer loyalty sytem dan Daniel Clemente - zocko social commerce; dan dengan moderator Theresia Tanzil.

Sesi Moderasi

  • S: Selwin
  • D: Dani

1. Please introduce yourselves and your startups.

S: Stamps adalah semacam customer loyalty management yang bekerjasama dengan restoran-restoran dan merchant lainnya. Cara kerjanya mirip seperti stamps / kupon / poin yang kadang customer dapatkan ketika berbelanja di retail offline. Misalnya ketika membeli bubble tea, customer akan dapat stamp yang dikumpulkan untuk kemudian ditukarkan dengan satu bubble tea lagi. Stamps mengadopsi sistem yang sama tapi basisnya digital. Stamps menyediakan platform yang dapat diakses dari website, iOS app, dan juga ada integrasi dengan POS. Selwin menjelaskan secara singkat cara kerja Stamps yaitu misalnya customer ke satu restoran, lalu di POS customer cukup menyebutkan email address saja. Setelah data alamat email masuk, sistem akan otomatis mengirimkan email notifikasi ke customer tersebut menginformasikan jumlah stamps yang sekarang customer itu miliki.

D: Zocko ada di tengah-tengah konsep toko dan konsep jejaring sosial. Zocko membantu toko menjual produk mereka, dan memberikan kesempatan bagi para social influencer untuk berbicara tentang produk dan membantu memasarkannya. Zocko dibangun berdua, menawarkan kesempatan mendapatkan uang untuk social influencer. Tim Zocko datang dari Barcelona, sampai saat ini sudah berbasis di Indonesia selama 7 bulan lebih, dan mau mulai serius untuk pasar Indonesia. Bekerjasama dengan pasar Indonesia dan juga dengan incubator dari Barcelona.

2. Why Python?

S: simple, code yang bersih, readable, memudahkan teamwork, dan proses training SDM yang relatif mudah (learning curve tidak besar).

Untuk proses rekrutmen, Selwin mengakui pengguna Python yang masih jarang dibanding PHP, yang memang menyulitkan proses rekrutmen. Stamps berbagi satu tips adalah dengan merekrut fresh graduate untuk kemudian diberi training Python.

D: Ketika proses pemilihan stack untuk Zocko, Daniel mempertimbangkan antara lain Django di Python, dan framework Dancer di Perl. Dani akhirnya memilih Python karena lebih mudah untuk diajarkan kepada temannya, dibanding Perl.

3. What's your stack?

D: django 1.6, Postgres, packages utk social network integration, API. Untuk HTML framework, Zocko menggunakan Zurb Foundation, jQuery. Saat ini Zocko berjalan di satu server saja, berfungsi untuk app dan database. Ada rencana untuk menggunakan Cloud server ke depannya.

S: django, ubuntu 12.04, Postgres, memcached, in house open source project untuk queue library: RQ. Untuk datastore RQ itu sendiri, Stamps menggunakan Redis. Queue library digunakan untuk memanage background jobs sehingga memberikan user experience yang real time tanpa terpengaruh seluruh proses background seperti task pengiriman email.

Selwin dan Daniel berjanji akan mengshare requirements.txt yang mereka pakai di Stamps dan Zocko.

4. What's the most difficult problem you've solved during the development?

S: Technically keeping it simple. Selwin berbagi opininya bahwa Amazon EC2 terlalu kompleks dan melibatkan banyak proses dan komponen. Selain itu Selwin mengangkat issue yang seringkali terjadi di cloud, yaitu bottleneck pada I/O, dan pertimbangan arsitektur yang terlalu kompleks menurutnya bagi sebuah startup kecil. Stamps hanya menggunakan S3 untuk backup.

Saat ini Stamps hosting di Linode VPS dengan managed service.

Selwin mengatakan salah satu isu yang cukup menarik pengerjaannya adalah tentang thumbnailing. Sekarang menggunakan easy-thumbnails, pake S3 kurang bagus karena ada asumsi storage di local disk.

Belum ada solusi, mengembangkan modul sendiri django-thumbnails, released di github.

D: Dani menambahkan untuk di Zocko menggunakan django imagekit untuk kebutuhan thumbnailing. Library ini memiliki banyak capability misalnya filter black and white.

Menurut Dani, kendala tersulit untuk Zocko adalah mengembangkan sambil juga berpikir tentang masa depan. Karena nature of startup yang banyak perubahan, apa saja yang akan diperlukan, dan juga bagaimana membangun sistem dengan komponen reusable.

5. Development team size

Tim inti development Stamps ada 4 orang. Untuk designer menggunakan tim designer perusahaan induk.

Selwin berbagi tentang perusahaan web development company yang menelurkan Stamps. Salah satu proyek karyanya adalah Indonesia Mengajar.

Ke depannya Selwin ingin lebih fokus ke tipe bisnis product based dibanding custom development.

D: Zocko 2 core development team, 2 freelance.

Dengan menggunakan django, Zocko membutuhkan pengerjaan 2 bulanan untuk rilis.

Sedangkan stamps 3 bulanan untuk menghasilkan iterasi rilis produk versi pertama. Sejauh ini sudah 1 tahun 3 bulan berjalan dan terus dilakukan development baru dan refactoring.

6. What's your business model?

D: Social commerce / affiliate marketing.

Mengenai conversion rate Zocko sendiri, Dani mengakui sebagai CTO kurang tahu pasti, tapi Dani menyebutkan sudah ada beberapa social influencer yang menghasilkan sales.

Zocko menghasilkan uang dari deal dengan merchant yang memasang produknya dan mendapatkan sales di Zocko.

S: Stamps bertindak sebagai partner para merchant dan menawarkan software untuk loyalty management. Sistem charge per bulan, per outlet.

Lalu Selwin menjelaskan sedikit tentang alur teknis dari sisi merchant. merchant driven. Stamps menyediakan API yang harus diakses dari sistem POS para merchant. Stamps memiliki partnership dengan situs solusi delivery produk makanan yaitu KlikEat, dimana setiap pelanggan yang bertransaksi di KlikEat akan mendapatkan Stamps.

7. Advantage dan disadvantage in using Python

D: Advantage: Simple, cocok untuk scripting. Disadvantage: Unicode handling di Python lebih merepotkan sedikit. Upgrade Django juga sedikit merepotkan karena harus mengupdate user model.

S: Selwin sekilas berbagi tentang issue concurrency dan package management yang belum se-mature sekarang ketika 3-4 tahun lalu. Tapi secara teknis tidak dirasakan kendala yang terlalu besar, namun Selwin lebih merasakan kendala di proses recruitment.

Selwin menekankan bahwa untuk membangun startup yang berhasil, teknis bukan satu-satunya faktor yang menentukan. Faktor seperti business model, tenaga sales, dan timing kesiapan pasar.

D: Menjawab pertanyaan apakah akan menggunakan Python lagi untuk proyek berikutnya, Dani mengatakan dia akan mempertimbangkan bahasa lain dalam hal ini Javascript dengan perkembangan JS yang pesat dimana fleksibilitas dan perbedaan antara client based development dan server based development menjadi kabur. Tapi untuk server development Python masih menjadi pilihan utama.

Proses recruitment di Stamps dan Zocko terus berjalan, dan membutuhkan banyak tenaga baru, kedua perusahaan ini membuka lowongan untuk para developer Python.

Dani memberikan contact information untuk yang tertarik mengenal lebih jauh tentang kesempatan berkarir di Zocko, nama incubator Bacerlona adalah Creative Hothouse dan bisa juga langsung ke alamat email dani[at]zocko.com

Sesi Tanya-Jawab

Adin: penggunaan Redis untuk session saja atau yang lain juga?

S: Penggunaan Redis di Stamps sebatas untuk session management dan queue datastore, menggunakan capability PubSub di Redis.

Selwin berbagi opini tentang hype NoSQL dimana tidak semua kasus cocok menggunakan skema non relational. Selwin menyinggung pertimbangan tradeoff read vs write speed di NoSQL, dan perkembangan NoSQL yang mulai mengadopsi sifat SQL. Jadi untuk database utama tetap dipilih PostgreSQL.

Adin: penjelasan tentang detil web server apakah Tornado, nginx, dll

S: nginx untuk static asset files dan gunicorn untuk application servernya. Stamps 100 ribu user, CPU util rendah, 2 GB RAM, 1 VPS Linode $40 / month

D: 16 GB RAM. Server sekarang masih di eropa, ada rencana untuk menggunakan CDN Singapore based. nginx, gunicorn. Sekitar 3000 user, dan tidak semua selalu aktif di situs Zocko.

Sigit: Development methodology, development flow di startup kalian.

S: Analytic user behavior untuk menentukan fitur berikutnya yang akan dikembangkan. Selwin berbagi opininya tentang testing di sebuah aplikasi, bahwa dirinya tidak terlalu menekankan semua modul harus memiliki unit test karena membutuhkan waktu juga untuk menulis testnya, hanya untuk modul-modul tertentu yang memang rumit.

D: Aplikasi masih under heavy development, sehingga belum ditekankan unit testing. Dani lebih suka menggunakan cara rule checking sederhana dengan assert. Rule atribut semua lengkap, dan valid nilainya.

X: Do you require everything to be in Python? Hardcore Pythonista?

S: Tidak, choose the most suitable tool for the task. Nilai plus jika ada interface yang bagus dengan Python. Stamps sedang tertarik mengadopsi Elastic Search versi baru untuk mengatasi bottleneck ketika search dalam reporting.

D: Tidak, yang penting semua komponen dapat berkomunikasi dengan baik.

Adin: gimana interoperability antara komponen dengan bermacam-macam bahasa? Apakah ada yang perlu pakai SOCKS?

S: Kuncinya API yang bagus. Nggak masalah mau lewat HTTP atau lower level di SOCKS.

D: Sama, mencontohkan library Tastypie untuk membangun REST API. Semua cukup HTTP. Web server menggunakan SOCKS karena memang beroperasi di layer yang lebih rendah, tapi secara aplikasi belum dibutuhkan level yang lebih rendah dari HTTP.

Adin: Python Windows - Linux compatibility, saran bagaimana supaya meminimalisasi barrier to entry ke python dimana beginner yang kadang takut dengan command line di Linux, tapi menghadapi incompatibility / behavior / support python yang berbeda under Windows.

D: Dani kurang sepaham dengan ideologi Windows, no opinion on this compatibility issue.

S: Masih ada room of improvement untuk Python development under Windows, tapi Selwin sendiri tidak ingin fokus disana, tapi lebih fokus ke pengembangan library yang berguna dan robust untuk komunitas open source.

Zaki mengangkat wacana fasilitas dan program training dari komunitas Python Indonesia, Adin share tentang Python yang akan masuk menjadi kurikulum di UI, dan siap memfasilitasi / kontribusi wacana training ke depannya.

Last question: What's your next milestones?

S: Constant release. Major feature is to implement Elastic Search.

D: Pengembangan tool untuk kategorisasi produk secara otomatis untuk fitur Search By Color (deteksi warna).

Links:

Podcast

Rekaman podcast diskusi panel.

Tidak ada komentar:

Posting Komentar