Working With Humans, Virtually

Dinda Inas
7 min readMay 25, 2021

People Management

Building software alone is really — rare and — tough work. Why? Because building software is a lot — like really a lot — of work, even more, we don’t possess all the skills to develop a fully-functioning software. We need other people’s help and skill. But does working with people immediately removes all the trouble when developing a product? Obviously, and sadly, nope. It reduces some, but also adds some — if we don’t know how to properly do it.

Because we are working with humans, who have different lives, characters, ways of thinking, feelings, moods, and so on. It may not be that hard if our tasks do not relate to each other’s — but of course, it is. Our tasks while developing a product must be interconnected. And so, problems may arise if we don’t know how to properly manage people.

People Management

People management is the act of organizing employees and building teams to optimize work productivity. In my current project, it is more focused on building teams. People management is important because a poorly managed team can impact the workflow of the project negatively. Many bad events may happen, like missing deadlines, arising interpersonal conflicts, etc. But there really are challenges in managing people.

Challenges in Managing Software Development Team

Managing a software development team has its own unique challenges. Because developing the software itself is already difficult, then what about managing people who develop the software?

Here are some of the challenges that I mostly experience myself:

Developer burnout

Coding is relatively monotonous and solitary work. And it is sometimes — no, often — hard to find a solution to your significant problem — on the internet, etc. And because you code it alone, it often feels more stressful. Even more in this pandemic, people do their work virtually so they hardly even communicate with the other team member when working on their task.

If not careful, it’s easy to miss the signs that a team member is burning out. And it is dangerous because burning out can make them unreachable and at last, your team may miss the deadline.

One of the solutions that I can think of is by asking them to code together! This is actually based on my own experience in doing my current project. I was really stressed when having a hard problem while coding, and I felt so alone. And sometimes I found that in my team member too. Thus, we do a virtual meet every once in a while to code together — so that we don't feel so alone nor feel hopeless.

Lack of prioritization

Building software requires a lot of different tasks. Each task may interconnect with the other. Without prioritization, the workflow of the team may be slow. If one of the team members that work on a highly dependable task does not notice that it should be highly prioritized, it may be finished just before the deadline, and so it slows the other tasks down. I myself experience this too. The solution that my team then thinks of is to make a target for each task together.

Managing remote work

Software development is usually worked remotely. It is actually great for focused development work, but also more risk on communication problems. But not only in software development, in this pandemic, it also occurs to many others too. And communication problems are real, it affects the workflow hugely.

The solution that my team use is having a virtual meet twice a week to communicate each member’s progress. And when we meet a long holiday — this is dangerous for we tend to forget about our tasks — we try to still update our progress by chat in our group.

Essential Skills

From the challenges above, there are some skills that I feel are needed for people management.

Be a Friend

Even though we are put together on a team to finish a project, it’s not always about the project that we need to talk about. We can talk about other things, such as our life, school tasks, some funny stories, and many more!

Being your team’s friend will make it easier for you to communicate, and at last, integrate your work with them too. That way, you wouldn't need to be afraid to ask about their progress or ask them to explain something, and they may become more active in response to you.

Clear Communication

Living in this pandemic year, we know that everyone is facing their own difficulties. Living remotely to each other has a huge potential for communication problems. We need clear communication to avoid misunderstandings and to truly understand the situation that each member and the team face.

For example, in my current project, we regularly meet to talk about each other’s progress.

We also exchange progress on holidays so that we don't lose information regarding our project’s tasks.

This way, we know what’s ongoing and what’s urgently in need of help.

Helpfulness

Our team members may have different weaknesses and strengths. To achieve our team’s goal, we need to help each other if they found difficulties and feeling a lack of skill to solve it. Here is some example from my current project.

In the first picture, I offer my friend a meeting to code together. Actually, I asked her this because I noticed that her story point has yet to improve. I thought that maybe she met a hard obstacle and it must be better to not be alone in that kind of situation.

The second picture shows that my friend is the one who asks me first for a meeting. This convinced me that she had actually been needing help, but never actually asks for it.

Those pictures above show that by offering help to your team member, they may be more open to you, and easier for them to reach out for help. This way, it is easier to know what’s the problem that the other members have and the faster to solve it.

Encouragement

Encouragement is really important, moreover in this pandemic year. We may not know what each of our team may have been through to finish their tasks. We need to give support and give confidence to our team members to makes them feel better about finishing their tasks.

The pictures above are the example on my team group chat. We give information to the others in the group when we may be late on finishing our task (based on our target deadline) because of some things we might need to do first. And then the other team member will accept and encourage the others. This way, we feel more supported.

Invite feedback

We often cannot see what do we lack. We need to be open to feedback to improve our work. In my current project, we have a biweekly retrospective session to talk about each other performance in the past week. When talking about it in a good manner, it will make people realize and afterward improve their habits.

In the sprint retrospective session, my team lists the good and bad things from the past sprint. Then, we also list the actions we need to start/stop for the next sprint. This way we got feedback from others that we may not notice. Thus, we can improve our team’s work in the next sprint.

Self-Reflect

Regardless of all the essential skills mentioned above, I think the most important skill needed is to be able to reflect the way we work in our team for every period of time. Because without reflecting it, we won’t know if there’s a problem. Thus, we can’t even improve the skills mentioned above.

Based on my experience, the skill to reflect on one’s self is really important when working on an agile team. Because an agile team should be able to self-organize. They solve problems by continuing to reflect on the team’s work and individually improve to overall be a better team. That way, they can work fast and productive.

Those are some ways to help you manage your software development team. Hope it helps!

--

--

Dinda Inas
0 Followers

undergraduate computer science student