Dev Story: How Android Build Variants Save Social Life

“I want to hang out with my friend”

“Wait, we need to test this app in our client environment, please adjust our app so that it can running in there”

“Okay”.

“I just heard that they have at least 5 environment include production”

“Um, okay”.

“We need all of them to be installed in one device too, so please make sure that the service is not overwrite each other”.

“…”.

That sums up the problem. If you’re a freelancer or working as android developer in software house before, you can usually find something like this.

Well, there is nothing wrong with that but if you happen to get into situation like the conversation above then it must be really annoying. I know someone that said something like “It just short project anyway so let’s make it with less effort” and well… it’s somewhat true but not like this 😉.

Instead writing important variable hardcoded like that, we need to make sure to put it in the right place. Let’s use build types for it.

But how about 5 different application environments that must all be installed in one device? Relax, you just need to update your build types like this.

Oh it looks good, then how about we make admin and customer version then make sure that admin/customer version of their client A has different behaviour with client B? Um, okay. Let’s use product flavors for that.

Next, you just need to pick the build variant based on environment & type then build/generate it…and voila you got it.

Too much effort? Honestly no, next time you got into conversation like that, it should be piece of cake. They really will save your time, trust me :D.

“Now, let me hang out with my friend…see ya”.

Intern Stories: Why Do I Love PKL?

Well, hello people.

I want to share my experience about “INTERNSHIP” atau lebih tepatnyaPKL (Praktik Kerja Lapangan). Yap, saya sendiri sebagai penulis masih sekolah kelas 2 SMK di SMK 10 Jakarta jurusan RPL (Rekayasa Perangkat Lunak).

PKL adalah suatu kegiatan yang sudah diwajibkan ada di semua SMK se-Indonesia. Hanya saja durasi tiap sekolah yang membedakan, biasanya 2–3 bulan, tapi ada juga yang sampai 6–12 bulan. Saya PKL/Magang di salah satu perusahaan pembuat aplikasi mobile atau biasa disebut Software House, yang berada di daerah Jl.Bangka, Jakarta Selatan bernama Flipbox. Nah, sebenarnya topik pokok pembicaraan yang saya ingin ceritakan adalah bagaimana sih PKL itu? dan apasih suka duka yang saya rasakan selama PKL di Flipbox.

Well, PKL itu tidak jauh beda dengan bekerja orang normal pada umumnya, bedanya di sini kita hanya “menumpang” untuk belajar dan merasakan apa rasanya bekerja. Saya sendiri sebenarnya masih terlalu “buta” untuk memasuki PKL ini. karena pelajaran yang saya tekuni di sekolah kurang terpakai di sini. Waktu kelas 1 sampai kelas 2 semester 1, saya menekuni bidang desktop menggunakan bahasa C# dan IDE Visual Studio. Namun yang saya temukan di dunia PKL justru biasanya adalah WEB dan android. Untuk web sendiri, saya kurang begitu berminat namun pelajaran ini di sekolah sudah lumayan jauh. Dan android, ya android adalah bidang yang saya sangat minati namun untuk pelajaran di sekolah ini lah yang paling tertinggal. Tapi, saya berani mencoba dan sudah siap mental untuk kena omel sebenarnya hehe.

Saya meminta perusahaan agar saya di masukan kedalam project android dengan bahasa pemrograman yang sangat sangat awam bagi saya, yaitu kotlin (sebenernya mau java sekalipun saya bakal tetep gatau apa-apa sih haha). Untuk awal-awal saya diberi tugas untuk membuat layout, lalu setelah layout saya masuk ke bug fixing, yang mana saya bener-bener lama buat ngerjain ini dan bener-bener bingung diawal-awal. Untungnya banyak orang-orang di perusahaan yang ikhlas merelakan waktu dan kesabarannya untuk mengajarkan saya, meskipun saya sering salah tangkep informasi, tapi mereka bisa memaklumi ya walaupun terlihat ekspresi kekesalan di wajah-wajah mereka ini XD.

Lalu bagaimana saya bisa mengerjakan bug fixing ini dengan posisi di mana saya masih sangat awam dengan bidang android ini? kalau menurut saya, yang saya lakukan hanya mencoba dan bertanya dan mencoba lagi, kalau tidak bisa-bisa juga biasanya orang-orang Flipbox yang akan meng-handle kerjaan saya hehe. Dan perlu diingat, bertanya di sini tidak harus sama karyawan perusahaan ya, bisa juga dengan mencari referensi lain seperti google.

Next, Hal yang saya suka dari PKL disini adalah sifatnya yang jauh berbeda dengan sekolah. Jika di sekolah kita dimarahi guru karena tidak selesai dalam mengerjakan tugas, mendapat nilai 0 dan hukuman. Namun di Flipbox, jika tugas yang dikasih melebihi waktu yang di targetkan, mungkin kita hanya ditegur tetapi tidak sampai mendapat hukuman secara langsung. Dan yang paling saya suka adalah perbedaan bagaimana mereka menerima pendapat antara orang-orang Flipbox dan guru-guru di sekolah. Saya senang berpendapat di Flipboxkarena mereka tidak memandang siapa yang berbicara, namun mereka memandang apa isi dari pendapatnya. Jika memang pendapatnya berguna untuk dipakai, maka mereka akan mempertimbangkannya untuk dipakai. Sangat jauh sekali dengan sekolah, sekolah kurang peduli dengan apa yang murid-muridnya rasakan, contoh: guru kurang peduli siswanya ada berapa kali ulangan/PR dalam 1 hari, intinya jika memang guru ingin memberi ulangan/PR maka mereka akan memberikannya begitu saja tanpa bertanya kerjaan kita yang lain. Jika di Flipbox, kalau memang task kerjaan kita sudah terlalu banyak, maka kerjaan yang lain biasanya akan di diberikan kepada orang yang kerjaannya lebih sedikit. Inilah hal yang sangat saya sayangkan di sekolah yang di mana harusnya murid bisa berkembang lebih luas, namun menjadi tersendat karena guru-guru pun kurang memperdulikan pendapat & keadaan muridnya.

Berikutnya, hal yang saya tidak suka dari PKL ini, saya kurang merasakannya, mungkin bisa dibilang tidak ada dibanding sekolah. Selain saya mendapat pengalaman bekerja, saya juga mendapat ilmu-ilmu yang tidak saya dapatkan di sekolah.

Intinya, PKL ini sangat berguna bagi saya dan murid-murid SMK lainnya karena banyak sekali ilmu dan pengalaman yang tidak saya dapatkan di sekolah namun saya dapatkan dari PKL ini.

sekian, dan terima kasih.

Developer Stories: What It Means to Become a Supervisor.

There is a time when your company hire someone from outside or maybe an intern to accelerate the development process of a project. When that time is come, usually someone in your team will be sacrificed to be supervisor for him. If you ask why sacrificed, sure there is something wrong in your head as a developer or programmer, not in bad meaning tho 🙂.

Supervisor itself is not a bad idea. If you happen becomes a supervisor in your team then you must be happy cuz that’s one of proves that you are trusted. Trusted enough to get some extra task like collaborate, reviewing & communicating (tutor and clean up mess included :D). So be proud mate.

I’ve been experiencing become supervisor a few times, either for intern or freelancer, and almost all of them ended up in failed (in my opinion tho). The reason is like performance result is under average, late delivery, and etc. But then, question pop up, why? Of course before we decide to hire them, we did interview, test or briefing, but then why? Why they must fail? Well, almost all of the reason are possibly true, something like the task is too much or they are not good enough. But in my case I simply do it wrong.

Why I simply state that I simply do it wrong? Well, it’s because I don’t behave as a good supervisor and there are three key point that I think I didn’t do it properly and it will be a game changer if I did, they are…

Planning

Simply ask yourself triple if-fail question, what you need him to do? If he can’t do it, what will you do? If It fail, what will you do? If it still fail, what will you do? If you stuck or seeking help in second or third question then I think you should take it more serious cuz it will be the mark of his downfall.

Researching

Supervising someone without knowing much about him maybe not a problem but if you know that you don’t know much about him & not doing something about that is the worst. When it comes to this, researching it’s not only about the project/task, people/personality included as well. Don’t do same mistakes on same person, you will regret it.

Passion

When you are not sure with yourself, how can you make other person believe it. First thing first make sure you are ready and lovely to work for it, if you are not ready then just say that you can’t. Don’t make new guy take all the weight and fail when you are in charge. Show him that you eagerly work together and make him excited so that he contributed willingly.

Learning from my mistakes, I decided to setup my own plan based on company goal then trying fill the three key point that I lack and implement in my latest job as supervisor. My latest job as supervisor is supervising new guy that hired as the developer on my division in his probation time (about three months). To be honest, if we see it from company view there is so many goals that needed to be achieved but let’s take a simple goal and that is…

“Makes him sign a full time contract and can replace me when I’m not around”

If any of you wonder why sign a full time contract is come first, well…that’s the main point for the probation guy. We need to make sure the both of us (company) and him happy to work together. If we can’t do that, the feels is same with keep a girlfriend safe just for someone come and marrying her :’).

So to achieve that, after meeting personally with him I decide to divide my role into five phase and setup parameter as a flag so that I can go to next phase…

First Phase

Role: Teacher

Quote: “You can ask me anything and let me explain all of it to you”

Parameter: Subject prepared with basic resource and said that he ready to enter the battlefield (development process).

Second Phase

Role: Mentor

Quote: “You are doing good, keep up the good work”

Parameter: Subject has finished his task before deadline (of course with approval by Quality Assurance)

Third Phase

Role: Reviewer

Quote: “Are you sure? Please prove it”

Parameter: Subject can decide the estimate time and finish his task just as he said then do his first refactoring.

Fourth Phase

Role: Wise Person

Quote: “Go look and feel other division”

Parameter: Subject crossing division/platform and finish his work in there.

Fifth Phase:

Role: Teammate

Quote: “Lovely to implement this one next time”

Parameter: Subject contributing to our current library or make a library.

On this chance, I try to implement role play game, like changing my role for every phase then slowly decrease my presence in his area and make sure work environment is conducive and good for him, so he can adapt quickly and showing his potential.

At the final evaluation, he is currently in fourth phase and when it comes to evaluation, the result looks promising, not only he can finish his tasks almost on time, he received positive feedback from other teammates (about 3 out of 4). Of course it still not perfect because he still doesn’t do some of his responsibilities and I’m still not doing all of my role properly, but at least for some reason the important goal is achieved. He decide to sign new contract and somewhat I can rest peacefully when sick :D.

And…

That was a long story, but well…every person maybe need different approach so make sure you planning after meet and research about him. If you wonder why it looks too much work for supervising just one person then you might be in wrong direction. Supervising someone is much work and it cost more than your usual work but if you do it properly and owned it, trust me, you will see something different and then realise that there is more from it. It’s not only about work, but people too.

So What It Means to Become a Supervisor?

In my opinion as a developer/programmer, it means a call for brotherhood is coming up. Be proud and good brother to someone :D.

Originally published at https://medium.com/flipbox/what-it-means-to-become-a-supervisor-877ce5fded6c