For those who are diving into the computer science or software engineering world, you may be asked by your teacher, classmates, or colleagues to use Git to help the development of your new application, especially if you are working in a team. As a noob who is reading this article, you must haven’t understood Git at all! That’s why you are here, aren’t you?

What is Git?

Git is a free and open-source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

This is the definition that is written on the official website of…

Photo by Science in HD on Unsplash

Traditionally, to develop software there is a software development team that deals with the source code, a quality assurance (QA) team that tests the application (app), and IT operation team that takes care about the deployment and monitoring.

Above’s framework is OK, but it is not responsive to change. Using this framework, every time a change is demanded, each team has to do much paperwork to communicate while passing the app. It is simply because each team are less integrated with others, a team does not know what other teams have done. A QA team does not know what the…

Photo by Jefferson Santos on Unsplash

Refactoring is one of the necessary stages in software development. If you had experienced using the test-driven development (TDD) approach for developing your software, you might notice that it has its own refactoring phase after the green phase. Even if you are not using the TDD approach (although you should), you may still refactor your own code consciously with some refactoring knowledge or unconsciously using your “feelings” on what is right. I hope by reading this article, you can make yourself consciously refactoring by using the knowledge.

To learn more about refactoring, we have to learn about the term technical…

Usability testing (UT) is one of the method that can be used to gather knowledge about the customers. From that event, we can identify user interface design flaws, design that the customers feels wrong. In this article, I am only going to cover how to make a UT report. The usability testing itself is already explained in another article of mine.

A UT report explains everything happened in the UT. It consists everything from the beginning to the end, from the research question to the recommendation.

I am currently developing an application with my friends called Sistem Informasi Penilaian &…

Photo by michael schaffler on Unsplash

Developing software nowadays is not an easy task. Not only the developers have to deal with the coding, but they also have to deal with other stuff such as the frameworks and architectures that are interdependent on each other. These many tools make an inflexible complex system that is too difficult to be changed or distributed. This is where the Docker comes in.

What is Docker?

Docker is an open-source platform that enables developers and system administrators to easily create, test, and deploy applications.

In standard modular units called containers, Docker bundles an application with all the packages and dependencies, such as libraries…

Photo by NordWood Themes on Unsplash

Let’s say, you decided to make an application with your friends. You have completed all the required design steps, such as concept testing (problem validation) and making the prototype, or maybe you have built the application. Now, one of the remaining steps is to test your application or prototype for the target customers.


Your application or prototype is the solution to the customers’ problem that you have validated earlier in concept testing. For example, you have validated a problem that some people need to be tackled. While finding and validating the problem, you might have also identified their personalities, needs…

Photo by Quino Al on Unsplash

A team, by definition, is a group of individuals that are working together to achieve their goals. They can consist of just three members up to an entire army. They are dependent on each other to achieve the common goal in which they have determined. Collaboration is an essential key that cannot be erased in a team. In fact, a group of individuals can be defined as a team only if they have complementary skills and are collaborating.

“A team is a group of people who are interdependent with respect to information, resources, knowledge and skills and who seek to…

Max Duzij — Unsplash

Test-driven development (TDD) is a software development process or life cycle that is begun by converting the software requirements, a new feature request or change request of the existing feature, into test cases before writing the code of the requirements. It is a reversed process of the traditional development where developers write the code first and then write the tests that fit the written code. In TDD, developers make failing tests and then write code to make them pass.

Why TDD?

Ultimately, programming is hard. Often, we are smart, so we succeed. TDD is there to help us out when we’re not…

What does the title mean?

The word clean, according to Merriam-Webster means, to rid of dirt, impurities, or extraneous matter or to rid of corruption. Then, what does code cleaning means? To clean our code means to get rid of impurities, “dirt”, or corruption from our code.

There are actually several terms as the alternatives of impurities which are code smells, bad codes, dirty codes, etc. In this article, I will stick with the term dirty codes, but do not be confused if you found other terms. It usually means the same things.

“Clean code is code that has been taken care of. Someone has…

You are new in the software development world. You already know about developing applications (apps) on your own and now you are trying to develop a new app, but you know you cannot do that by yourself, maybe due to the big scale of the project or you don’t have some knowledge needed to develop this new app. You might have started to gather your classmates or colleagues that wanted to help and have made a team.

Then, you might think about what approach you might use to complete your goal of making a working app and might come up…

Figo Muhammad

Student at Universitas Indonesia

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