By doing profiling, we can measure how good or how bad our application is based on the non-functional aspects such as performance and memory usage.


Project Manager: Functionality?

Lead Developer: check

Product Manager: Suitability with the requirements?

Lead Developer: check

Product Manager: cool, now it's time to deploy the app to the play store.

A few moments later

Product Manager: Oh gosh, our app rating too low. To make it worse, many of our customers complain that our app is too bloated. Can you find the root cause of this?

Lead Developer: Ok lemme profile the app first.

Lead Developer…

Pada dinamika software development yang sangat cepat dan dinamis, setiap harinya, developer menyumbangkan atau mengubah kode suatu perangkat lunak setiap jam atau bahkan setiap menit. Dari situlah perlu diperlukan sistem QA untuk memastikan perubahan kode yang terjadi tidak merusak kode yang sudah sebelumnya sudah berjalan. Sistem QA ini masih memungkinkan dengan hanya mengandalkan manusia (dalam hal ini developer) saja apabila perangkat lunak yang dikembangkan masih sederhana. Namun bayangkan apabila perangkat lunak yang dikembangkan cukup kompleks dimana dalam pengerjaannya melibatkan banyak developer yang saling bekerja sama. Tentunya akan sulit apabila proses QA ini dilakukan secara manual oleh developer. Belum lagi pada…


Sebagai backend developer, tentu saja kita tidak bisa terlepas berurusan dengan database, terutama mendefinisikan/mengubah skema dari database yang ingin kita buat serta mempopulasi data pada database sehingga mempermudah pengujian. Kedua aktivitas tersebut dapat didefinisikan sebagai data migration (proses mendefinisikan/mengubah skema atau rancangan data dari database) dan data seeding(proses mempopulasi database dengan sekumpulan data). Proses data migration ini tentu saja masih bisa dilakukan secara manual apabila skema yang dirancang mempunyai entitas data yang sedikit dengan menggunakan query SQL. Namun bayangkan apabila jenis entitas tersebut banyak. Tentu saja akan memakan banyak waktu & tenaga apabila dilakukan dengan mengeksekusi query SQL satu per…

Docker enables us to ship the software anywhere without worrying compatibility issues

Compatibility is one of the deployment issues. That issue arises when some feature implementation requires a package that turns out that package only available locally. While in a production environment, that package doesn’t available so the problem that’s stated like in meme could happen. How about we configure it directly in a production environment? The problem is, the configuration process itself is quite cumbersome especially when there are a lot of packages required. Is there any tool that can ship that working local environment packages configuration to the…

Scrum is all about being adaptive and deliver value for each iteration.

Scrum Origin

When you are involved in the tech industry or software development stuffs where the pace is quick & very dynamic, “change” is just an everyday thing. This kind of thing also is known as a common enemy especially for the development team. Agile methodologies serve as the answer for this issue on the development flow which is scrum is one of those methodologies. There’s a common misconception where scrum=agile. Now let’s talk about scrum & agile to fix that kind of misconception.

What Is Agile?

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.-Martin Fowler

What defines a cool programmer? Some say a cool programmer is a programmer that can create complex logic. Others say that a cool programmer is a programmer that creates CRUD applications in no time. Well for me, a cool programmer is a programmer that can create code that really sparks joy. That means the code that is created not only just functional or optimized, but also code must be readable & understandable by someone who didn’t even barely see the code…

Mock memungkinkan kita untuk membuat unittest yang benar-benar menguji suatu unit di software (bisa class atau function) tanpa mempedulikan dependensi.

ilustrasi mock pada test (


Katakanlah Anda merupakan seorang front-end developer yang ingin membuat sebuah website yang membutuhkan API eksternal untuk memperoleh data sehingga Anda tidak tahu bagaimana implementasinya dari API tersebut. Misalnya, Anda ingin menerapkan TDD dalam proses pengembangan website tersebut sehingga tentunya langkah awal yang perlu dilakukan adalah membuat unit-test. Anda ingin menguji unit kode yang menampilkan data dari API yang dimaksud apabila berhasil serta menampilkan halaman error apabila data yang diperoleh dari API mengalami kegagalan. Bagaimana mengatasi permasalahan dependensi antara unit yang…

ah yes, the real version control


Often, as a programmer, we need to collaborate with other programmers especially on a software project. To make sure that the collaboration runs well, we need a collaboration tool that manages the software codes that we are working on. Here comes Git. Think of collaboration tools like google office, office 365, but it’s far more sophisticated. A tool that can for example cherry-picking which change(s) can be applied or version tracing & control, all in one tool. That’s basically what Git really is. Progress or change in git is represented as a node of a tree structure that’s called Git…

Just a TDD meme

In this article, I wanna talk about my experience with Test Driven Development (TDD) and its implementation on software engineering projects.

Disclaimer: since it’s based on my experience, this article can’t be really correct so take this article a bit of grain of salt.

What is Test-Driven Development?

Well, basically test-driven development is we write the test code first before writing the actual implementation. The purpose of TDD is to make our code more robust and cleaner. The TDD itself has cyclic three phases:

  1. RED, in this phase, we create a test code for the implementation that will handle every possible scenario that could…

persona example (

In this article, I wanna talk about persona (yeah, not the game/anime franchise one) and its importance on the product development process.

What is Persona?

Before, let’s talk about the definition of persona in the product development context. Personas can be defined as a collection of one or many fictional persons where each person has its own motivations, goals, and difficulties or concerns. Those personas represent the potential group of users whose gonna use your product and are gathered based on a thorough user research process. Therefore, we can’t create a persona randomly. …

Krisna Ihsani

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store