Weekly Report #14 — Irfan

Tri Ahmad Irfan
May 29, 2016 · 3 min read

Saya membantu memberikan feedback terkait design dari wireframe di Balsamiq (final) yang dipropose oleh teman-teman. Saya memberikan feedback apabila ada design yang bisa dijadikan lebih intuitif/logis, serta apabila ada design yang belum diupdate sesuai dengan hasil produk akhir HappyStock

Analyse Design & Evaluate Alternatives

Saya melakukan proses analisa design sistem dari HappyStock beberapa kali, antara lain ketika:

1. Menentukan rumus OOS Rate

Pada awalnya kita hanya menyimpan satu jenis OOS rate saja, yaitu OOS rate dari awal sampai sekarang, namun kami rasa itu tidak merepresentasikan dengan baik kondisi item saat ini. Tapi jika kita membuat penghitungan beberapa waktu terakhir saja, itu juga tidak merepresentasikan dengan baik kondisi item karena tidak bisa mendeteksi peak time order (item volatility).

Pada akhirnya kita menyimpan dua jenis OOS rate yaitu lifetime rate dan timeframe rate. Lifetime rate merupakan perbandingan dari order yang out of stock dengan order total dari awal item tersebut masuk ke database hingga sekarang. Timeframe rate merupakan perbandingan dari order yang out of stock seminggu terakhir. OOS rate akhir didapat dari maksimal antara lifetime rate dan timeframe rate.

2. Menentukan rumus Threshold

Rumus threshold awalnya dihitung dengan mencari efisiensi dari sistem HappyStock, dan efisiensi sendiri dihitung dari lifetime OOS rate untuk semua item dengan membandingkannya dengan OOS rate hari ini. Apabila efisiensi naik, maka threshold juga akan naik dengan rumus tertentu, begitu juga sebaliknya. Menurut saya metode menghitung threshold ini terlalu kompleks dan rawan kesalahan, jadi saya mengusulkan agar threshold dihitung langsung berdasarkan dari OOS rate. Pada akhirnya threshold dihitung dari timeframe rate rata-rata dari semua item untuk Supermarket tertentu. Jadi setiap supermarket memiliki threshold masing-masing, alasan lain juga karena behavior pelanggan dan kondisi stok pada setiap supermarket berbeda-beda.

3. Menentukan rumus rekomendasi Item Replacement

Pada awalnya kami ingin menentukan item-item replacement menggunakan approach Machine Learning. Namun karena kita tidak bisa mendapatkan data asli sejak awal, kami berpikir ulang untuk menggunakan metode statistik saja. Hal ini juga dikarenakan kami belum terlalu menguasai teknik machine learning untuk Product Recommendation.

Metode untuk menghitung rekomendasi item replacement yang kami gunakan saat ini adalah menghitung replacement yang telah dipilih oleh customer pada setiap order, dan memilih item-item yang paling sering dipilih oleh customer. Apabila data tersebut tidak tersedia, maka item replacement didapat dari produk yang memiliki kategori sejenis.

Applying Suitable Algorithm & Data Structures

Setelah menganalisa design sistem dari HappyStock dan alternatif yang diajukan telah disetujui oleh teman-teman dan stakeholders, ada dua backlog yang akhirnya saya kerjakan, yaitu:

1. Menghitung Threshold rate

Threshold rate saya implementasi dengan membuat tabel Threshold baru di database, beserta Modelnya di Rails. Tabel threshold sendiri perlu dibuat karena setiap supermarket akan memiliki threshold masing-masing. Jadi akan ada 1-to-many relationship antara supermarket dan data threshold.

2. Menghitung rekomendasi Item Replacement

Rekomendasi item replacement saya implementasi juga dengan membuat tabel replacement_item di database, beserta modelnya di rails. Setiap stock item akan memiliki daftar item replacement masing-masing,

Secure Deployment

Secure deployment adalah cara untuk melakukan deployment secara aman, dan apabila aplikasi telah terdeploy dengan sukses, keamanan tetap terjaga sampai deployment selanjutnya. Saya menggunakan capistrano dengan sistem autentikasi SSH (Secure Shell) untuk mengamankan proses deployment. Kemudian, setelah terdeploy kita juga menggunakan sistem autentikasi dengan sistem login menggunakan email & password agar pihak-pihak yang tidak berkepentingan tidak bisa mengakses aplikasi HappyStock.

User Installation & Deployment Manual

User installation & deployment manual saya tulis di ReadMe repository dan di Google Docs: https://docs.google.com/document/d/1SIHcbGhw0pCaEr8LerLn7Ph4pJCx9wVuBDa6-h0wSEg/edit#

Red Panda

We are @firza_pratama, @idadidut, @irfan3, @kennabila, @pnteresa, and @shylla working on a challenging Software Engineering project at HappyFresh. Here, we share our stories.

Tri Ahmad Irfan

Written by

Software Engineer @Stoqo. Former Software Engineering Intern @Twitter. CS Graduate @Univ_Indonesia.

Red Panda

Red Panda

We are @firza_pratama, @idadidut, @irfan3, @kennabila, @pnteresa, and @shylla working on a challenging Software Engineering project at HappyFresh. Here, we share our stories.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade