Image for post
Image for post
Source: https://www.freepik.com/vectors/people People vector created by pch.vector — www.freepik.com

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. …


Image for post
Image for post
Source: https://www.freepik.com/vectors/design Design vector created by stories — www.freepik.com

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 is a space where your users can interact with the software or digital device that you created. The process of creating user interfaces is called UI design, and is focused on making UI which is pleasurable and simple to use. …


Image for post
Image for post
Source: https://www.freepik.com/vectors/work Work vector created by stories — www.freepik.com

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

Refactoring is a process of fixing or cleaning up the internal structure of the code without changing its external functionality. By refactoring our app, we can improve the design, structure, and implementation of our code. …


Image for post
Image for post
Source: https://www.freepik.com/vectors/abstract Abstract vector created by vectorjuice — www.freepik.com

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

Deployment is the act of making the software you created available for use. For example, when developing a website, you deploy your product to the worldwide web. …


Image for post
Image for post
Source: https://www.wallpaperflare.com/docker-logo-docker-containers-minimalism-typography-wallpaper-284651

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. …


Image for post
Image for post
Source: https://www.freepik.com/vectors/people People vector created by pch.vector — www.freepik.com

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 that we can pinpoint the issue if a certain test fails. This also improves the performance of your tests, as connecting your tests to an API, database, or other external dependencies takes time to do so. …


Image for post
Image for post
Source: https://www.freepik.com/vectors/mobile Mobile vector created by stories — www.freepik.com

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” so to speak. …


Image for post
Image for post
Source: https://www.freepik.com/vectors/business Business vector created by katemangostar — www.freepik.com

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 have agile. As one of the most popular project management methodologies to date, agile is an amazing framework to apply to your development team in order to meet your deadlines and produce high-quality products. …


Image for post
Image for post
Source: https://marsner.com/blog/why-test-driven-development-tdd/

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.

TDD in practice is actually a cycle, where we first write tests that fail, then we write the minimum amount of functionality to make that test pass, then finally we refactor the program to improve it without changing its external behaviour. …


Image for post
Image for post
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 clone your repository, branch from it, merge to your branch, and many more. …

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