Tag Archives: agile

Fasilkom UI Agile Coaching Session

With the lecturer

A great news comes from my college (Faculty of Computer Science, Universitas Indonesia): one of their courses, software project developent (PPL), will using agile rather than old methodology (Waterfall).


It’s such a great news, since i realized, when join in industry, especially in startup ecosystem, we mostly using agile process. Why? because we usually work with uncertainty problem that sometimes easier to be handled using empirical approach rather than planned upfront approach. And agile process usually missed or didn’t get enough attention inside the courses. I remember it only contained in software engineering course, mostly theory, without any practical lesson. So, me (during that time) should learn from external resources :(. But that’s okay, as a student, there’s no boundaries to learn since there’s an internet isn’t it?.

So, a week ago, Rizky (also a founder of Agile Campus) tell me that Pak Ade Azurat (PPL lecturer) needs help to coach his students. This coaching session has a purpose to make sure all students have basic understanding of agile before they jump into the practical development. Of course it will be YES for me for the invitation!.

Then, here it is:

This coaching session basically only covered basic Scrum, included all inside Scrum guide and a little bit best practices (see some my experiment in Scrum and agile process here). Below are some best practice we share:

How to define a MVP:

How to make an estimation in agile development process using planning poker:

How to do a task planning

Thank you so much Pak Ade, Kak Maya, Pak Adin, & Rizky for the opportunity. It’s an honor to share and also learn from you guys and all Fasilkom students.

Thank you for making one of my bucket list checked: become a guest lecturer.

It’s a wrap!

Improvement Visibility

In HappyFresh tech-product team, another sprint means another experiment.

One of requirement from agile organization is improvement. Your organization should improving every hour, every day, every time. Improving means increasing positive things or removing negative things. How to be able discover that? usually some of agile organization do kinda sharing session between the employee and decide some improvement. But unfortunately the improvement sometimes comes with “top-down” approach, from top organization managerial, not comes from employees.

I’m grateful to have colleague & manager who value an improvement as a shared responsibility.

In Scrum framework there’s a session to accommodate that necessity, it’s called sprint retrospective. For those who don’t know retrospective session please read guides from Scrum.org here: Scrum guides. This is the example how we hold a retrospective session: Retrospective: Apresiasi dan Mesin Waktu.

Let’s jump into the problem and experiment.

Problem: Sometimes the improvement/action items from retrospective session still not “checked” by PIC (person in charge) of the action items by the end of the sprint.

Pre-condition: I usually use Confluence to documenting all action items, improvement, anything from retrospective session.


  1. Are they forgot to did the task/action items?
  2. Are they just forgot to check the items on Confluence?
  3. Are they just haven’t read the Confluence?
  4. Are they??

Hypothesis/Expected Result: If i make it more visible, it will raise the possibility of the items will be “checked” by them. “Checked” means they did the action items to avoid previous sprint mistakes.

So, what i did in previous sprint:

  1. I still used post-it in the retrospective session.
  2. But, rather than using Confluence to documented the problem and the action items, i used offline materials.
  3. I used A2 paper to put all post-it (contain with issue and problem).

    Avengers Retrospective

  4. I put that offline retrospective documentation close to team’s table, to make sure it’s visible by the team.

    Put it close to your team’s table

  5. The other advantage of this approach is, team also able to reviewed it in/after/before every daily scrum session.
  6. It’s kinda give them indirect pressure to avoid similar issue/mistake by did the action items.
  7. Additional tips: we also able to use offline retrospective documentation from previous sprint as a benchmark for the next sprint retrospective session, just to make sure the mistakes isn’t repeated.

And here’s the Result:

It’s all CHECKED.

Seems like make it visible will increase the awareness of the issue that lead to improvement. It’s not about something that should be pushed, it’s all about shared responsibility. Showing a commitment to improve shouldn’t because of reward and punishment from the organization.

What i want to also highlight: result isn’t the most important one from this approach, instead of learning process itself. So, i think it’s okay to not got all the action items checked by the end of the sprint as long the team has realized that they shouldn’t repeat any mistake in the future. Not repeating 1 or 2 mistake from 5 mistake is still improvement isn’t it?.

So, let’s help them to improve!



All HF Definition

Just did a little experiment again.

Goal: To make team more aware with all of our definition
Preferrable outcome: More quality, less bug, less missed, and easier communication and coordination

We used to put all of our definition on Confluence. But it turns probably less people who remember all of this things, even less people read the page. I believe some of them have made all of this definition as their standard but as part of coaching, you need to make sure all of them have at least similar standard. Because agile development goal is high quality product, so we don’t have any excuses to reduce that due to time, scope, and any other parameters.

Do you think it will increase the awareness? maybe.
Do you think it will increase our product quality? probably.

At least we try, and learn from it later.

Tips on how to create definition (of done, etc):
1. Use clear parameter
2. Every items should be easy to define whether it’s passed or not
3. Make sure every member of scrum teams is involved during the definition process
4. Okay to put high standard, but also okay to build it iteratively
5. Let it rolling!

Will share the result on the next article (later)

Scrum User Group Jakarta Meetup – January 2017

Today (Wednesday, January 11th, 2017), HappyFresh will host Scrum User Group Jakarta meetup.

Please come if you’re interested, or if you’re curious on how our tech-product process going. See the details here: https://lnkd.in/fTJSPhP

For those who cannot join the offline meetup, you’re still able to join via online (streaming):

Topic: Scrum User Group Jakarta Meetup at HappyFresh
Time: Jan 11, 2017 6:45 AM (GMT+7:00) Jakarta Join from PC, Mac, Linux, iOS or Android: https://zoom.us/j/911518142

See you tomorrow!

NB: I’ll share the meetup documentation in the next article (later)

Retrospective: Apresiasi dan Mesin Waktu

“Beberapa dari kita hanya ingat akan ketidakpuasan, sehingga lupa akan apa yang telah rekan kita kontribusikan”

Sprint lalu saya mencoba modifikasi Sprint Retrospective yang biasa dilakukan oleh tim.

Biasanya kami menggunakan metode Mad-Sad-Glad (akan ditulis pada artikel lainnya), namun kali ini saya ubah sedikit agar sedikit cocok (atau dicocok-cocok-in) dengan tema akhir tahun. Metode kali ini saya coba namakan Apresiasi dan Mesin Waktu.

Alat dan bahan:
1. Post it 2 warna, usahakan gunakan warna cerah
2. Spidol secukupnya

Aturan main

  • Persiapan:
    • Post it warna pertama, tim harus tulis ungkapkan rasa terima kasih atas bantuan, pekerjaan, atau apapun yang telah dilakukan rekan satu tim-nya. Susah tapi harus dipaksa. Mengapa? karena tim harus dilatih agar bisa menunjukkan respect dan empati terhadap satu tim-nya. (Tips: satu post-it hanya boleh berisi satu poin. Jangan tulis poin yang berbeda untuk beberapa orang dalam satu post it. Alasannya akan dijelaskan di bawah)
    • Post it warna kedua, tim harus bisa menjawab pertanyaan: “Seandainya kamu diberikan kesempatan untuk kembali ke beberapa hari saat sprint baru dimulai, apa yang ingin kamu perbaiki?”.
    • Biarkan tim berfikir dan berdiskusi sambil menulis, namun tetap harus dalam koridor dua poin di atas.
  • Diskusi:
    • Tim satu-persatu ungkapkan poin pertama (apresiasi) dengan lantang sambil memberikan post-it tersebut kepada rekan yang sedang mereka apresiasi. Rangsang anggota tim yang diberikan apresiasi untuk dapat memberikan respon balik terhadap rekan yang sedang mengapresiasi (contoh: “Terima kasih juga ya”). Lakukan satu per-satu sampai seluruh anggota tim mendapat giliran.
    • Tim satu-persatu ungkapkan poin kedua (mesin waktu). Lakukan satu per-satu sampai seluruh anggota tim mendapat giliran.
    • Dari poin kedua, biasanya akan keluar berbagai macam hal yang ingin diperbaiki – ini merupakan cara lain untuk merangsang tim mengungkapkan permasalahan yang terjadi selama sprint.
    • Contoh poin kedua (mesin waktu) yang berhasil ditangkap pada Sprint Retrospective lalu:
  • Hacking:
    • Dari permasalahan-permasalahan tersebut, ajak tim diskusi untuk menemukan akar permasalahan/root cause. Karena belum tentu solusi yang diberikan masing-masing orang merupakan solusi yang objektif dan efektif untuk menyelesaikan akar permasalahan yang ada.
    • Seperti Sprint Retrospective lainnya, akhir sesi ditutup dengan menuliskan seluruh action items yang telah masing-masing pribadi sepakat untuk lakukan berdasarkan proses hacking yang sudah dilakukan sebelumnya.
  • Improvement:
    • Cek masing-masing action items, encourage tim agar bisa melakukan action items yang telah di-commit agar permasalahan yang sama tidak terjadi di Sprint berikutnya.

Menarik, bukan?
Selamat mencoba!

Atau kamu tertarik untuk merasakannya langsung?. Yuk gabung bersama kita di https://www.happyfresh.com/careers/jobs/tech-product/. Proses kita memang belum sempurna tapi kita berkomitmen untuk terus improve agile process yang kita miliki. 

NB: Jika berkenan, setelah mencoba mohon tuliskan di kolom komentar ya bagaimana hasilnya, plus apa yang tim teman-teman rasakan.