How to build a good environment from an SE point of view?

Inês de Matos
6 min readJun 25, 2021

--

So I truly believe I’m living the dream of every Software Engineer, where I am in a complex challenging project, with a supportive leadership and management, a good team, having also a safe space to grow with such a nice working environment.

Home office with a computer, one headset, some books and an e-ink tablet
Home office — remote work

Our team

To give you some context, my current team was the result of a split from a bigger one, moving to a different project. The former team already had a good working environment and we tried to bring some positive aspects from it.

At this point we were starting a team in a whole different scope with different expectations from each other. Most of the members already knew how to work together, but now we would be given more responsibilities for the first time due the small size of the team. Therefore everyone would easily be subject to being in the spotlight. I mean this is nice for personal growth, because with more responsibilities we also have more opportunities to show our value and grow as professionals. With time, there were people joining the team and naturally they would also follow us.

The Growth

Our team got stronger than ever, we were 5 devs: 2 juniors, 2 mid and one senior (our team is bigger, but I just want to focus on the engineering side), but actually each one of us has a different and unique trait that makes the teamwork even better. That’s one of the things. If we enhance that trait we create unique value for that member, in that way, one will be feeling more worthy and accountable in the team, because they know they are giving differentiate value. After a while of working together as a fine balanced team, our team received a positive feedback from management, in a way that they started looking at us as a role model team for others within the cluster.

So…this is f-ing huge!! Like…wow…

Of course this doesn’t mean that every team should be working like us, because each team as a different variety of personalities which make those teams totally distinct with different strengths and weaknesses.

So what is a good team?

From what perspective is this “good” being applied? If we are only looking at results, sure, a team can deliver super fantastic results in time, but then does that mean that you are enjoying it? Not entirely.

The meaning of “good team” doesn’t mean you have a good working environment. You can still achieve good accomplishments in a team that only has the results in mind, although the way that makes you feel matters the most to assess the reality about the quality of your team. If you have a teammate that is feeling awful and frightened to work within your team, then your team is not working properly. There can be many reasons for this (considering only environment related issues):

  • no voice in the team
  • not being listened
  • no space to grow
  • no structured workflow
  • no close relation with the peers
  • clueless about decisions
  • constantly making tasks that weren’t expected for the job they signed in

Probably there can be more reasons behind it. For those reasons out of our range we can try to understand it and escalate to someone more competent, otherwise for the most of them we can probably help if we just pay more attention and try to act upon it.

In the end you can just ask yourself, “Am I happy?”.
Your happiness matter dude ! :D

Our way

So what can probably make us that good? Well this might be super subjective because it might be different for your team, but these are the bullet points that has been working for us:

  • We settled on ways of working that are not closed to changes, so any now and then we change it according with the feedback, experience and performance of the team if something doesn’t work or is lacking. This give us a structure way of working and allow us to be aligned, be a little more efficient and independent. For this we have several definitions but I would like to point out that we have a section only for “Our philosophy” before anything else…
Our philosophy in the team from a wiki page section
  • We make sure that everyone makes part of decisions or at least everyone is aware of them and can share their thoughts and opinions freely without judgment. All questions and ideias are allowed
  • I think we have the luck of having a big proactive spirit, which actually makes a huge difference when tackling the tasks and user stories. This makes product and leadership very happy 😁
  • Everyone is open to changes and experiments. It’s okay to change a little bit to understand if that makes us better at work.
  • Being able to learn is also a big thing, since we are constantly working with unknowns and not knowing is totally fine
  • Aside from being a student, everyone can be the driver of some topic and teach others no matter the maturity of their skills.
  • We have space for creativity, so everyone is free to apply their ideas if they find them useful for our team and/or work
  • Give a sense of responsibility, accomplishment and growth. This motivates everyone I think…
  • We have a huge supportive spirit when someone needs help. We tackle issues as a team and not as individuals, despite each of us being responsible for our own work.
  • Anything we deliver is always looked in the name of our team. If something goes bad we take the fire as a whole and we support at any cost if someone fails at something. No one has to feel loneliness if we are a team.
  • We aim to give constructive positive feedback. I think this is a must have regarding your position… With this I don’t mean we don’t point out bad things, we just care about the way we give it.
  • Besides all this, communication is always important. We use Slack a lot to open questions and to share ideas/decisions with the team.
  • We say good morning every single day in our team’s channel. I know it can be silly but believe it or not it kinda of shows that you are open to the team in that day and people can start talking to you. I may have to admit: we are a cute team! :D
  • We make sure that we always have good and funny conversations non work related. This improves the bonding a lot!

How do we try to achieve this good environment in a remote perspective?

So one year has passed and my team was formed during the pandemics, so everything was done remotely and we were forced to do things different:

  • Starting with pair programming — We do this a lot for many reasons! I think this one is actually the major answer for this question. Doing this allows everyone to feel accompanied in a daily basis; most of times no one is alone; we can have natural conversations like we would have in a real and physical environment. This creates a huge bonding between the teammates, because they are unifying their forces to solve some problem or to achieve some result with a lot of engagement.
  • We try to be more present in the team using streaming voice software. This goes side by side with the pair programming point, which increases the amount of opportunities to have non work related conversations and therefore enhances the bonding (like I said before).
  • Having more team buildings online with games and activities
  • As an individual, is good to participate in these ideias along with the team in order to avoid isolation and the feeling of being aside.

It can be nothing special for most of you out there, but I hope this can somehow be helpful for someone and their team to achieve a better working environment. If you have something that adds more value to this topic, please feel free to comment so we can learn and enlighten each other.
Have a nice day!

--

--

Inês de Matos

Software Engineer @ Web Summit. I try to bring humanity into a such digital world.