Source: People vector created by pch.vector —

When working in a team, one essential skill excluded from your job requirement is people management. How you communicate, cooperate, and behave with your co-workers would be the main factors to determine how well you do as a team. How well you do as a team determines the quality of your work.

In this article, we’ll discuss the benefits of developing your people management skills, as well as some handy tips to improve your workplace environment as a team.

People Management

People management is the art of communicating, cooperating, and directing people, for example with your co-workers in your workplace. …

Source: Design vector created by stories —

While making good programs is enough to appease programmers, it is not enough to please your customers. Think of the apps you use every day, why do you use that app in particular and not the ones owned by their competitors?

Chances are, the reason has to do with the app’s design. This is why nowadays, UI design has become crucial to attract users, should you be making a digital product.

If you’re wondering how you could make your application stand out in its design, then you’ve come to the right place.

Let’ start with the basics.

User Interface

A user interface…

Source: Work vector created by stories —

Refactoring is a way to improve your code without changing its external behavior. This is done to transform your code from a mess that only a compiler can read, to a beautiful script that would leave your fellow developers in awe.

One way to refactor your app is to apply design patterns, which are a proven solution to a certain issue on your code. There are many design patterns out there, and chances are the issue you are facing already has a design pattern made just to solve it.


Refactoring is a process of fixing or cleaning up the internal…

Source: Abstract vector created by vectorjuice —

In order to release your product to the general public, you would need to deploy it. Nowadays, deployment can be done automatically instead of manually, this process is called continuous delivery, or CD for short.

You could also automate all processes prior to deployment, such as running tests automatically. This process is called continuous integration, or CI for short.

Hence the act of automatically building, testing, and deploying can be shortened to CI/CD, or continuous integration and delivery. Let’s discuss these terms one by one.


Deployment is the act of making the software you created available for use. For example…


Today’s tools for software development are so numerous that it’s difficult to keep track of all the technologies used in a project. This leads to difficulty in migrating the project to other systems or machines, as we struggle to reinstall each and every dependency used on the previous machine, and also get the right version of every single dependency.

By using docker, we can “contain” all our tools and dependencies in a container. Afterwards, we can pass this container image around to other machines, or even other developers. …

Source: People vector created by pch.vector —

It is not uncommon for a certain class, function, or component to depend on external functionalities to make them work. For example, a class in Java might call a function from another class, or the fronted of an application would fetch a get request from a backend API.

This creates a problem for testing, as we cannot fully determine whether the tests fail because of bugs in the current component we’re testing, or it’s because of faults on external components that it is dependent upon.

To counter this issue, we need to make sure that our test is isolated, so…

Source: Mobile vector created by stories —

So you’ve made your unit and functional tests for your product. You then made the code and voila! The test passes, your code coverage is high, and now your code is perfect, right?

Not quite.

Remember that we as developers are building the products for our customers. If they don’t enjoy using our product, then no matter how many automated tests you made for it, they simply wouldn’t accept it.

For this reason, we need to test our product further, this time focusing on how our customers will use it. This is because the tests we made before lack “humanity”…

Source: Business vector created by katemangostar —

What’s most important in a software development process?

Is it the team? The quality of the product? The timing of the release? Or is it the maintenance after the product is released to the public?

The answer is all of them. All aspects mentioned above are all needed in order to develop great, maintainable software.

But then how do we make sure that all of the aspects are attended to? If we focus on one thing, won’t that sacrifice another? Is there a way, a framework, to guide us and our team on our development journey?

Fret not, for we…


I get it, we all do. Testing is not exactly the most fun thing we can do in development.

But you know what’s even less fun than testing?

That’s right, debugging.

If only there was a way to anticipate bugs and errors in our code before it actually happens. That would save us so much time and stress that we can use in other parts of our life.

That’s where Test-Driven Development comes in to save the day. Test-Driven Development or TDD is basically the act of writing tests first before you write any code or functions in your program.

Photo by Pankaj Patel on Unsplash

If up to this point you were a lone developer, you might have never even thought of needing to use git. However, when working in a team, you would definitely need a tool to control work between multiple developers within the same project. This is where git comes in, as it will allow you to track the version of your application, and coordinate work between you and your fellow team members.

What is Git?

Git is a version control system, specifically, it’s a DVCS (Distributed Version Control System). With git, you can commit your work into a repository online. Your coworkers could then…

Rayhan Arwindra

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