Virtual Team Events – Gaming Night

If you are working in software development it is likely that your team is somehow distributed, eigther due to local distance or home office work. Outsourcing coding tasks to countries with lower labor costs looks promising to many managers, but often the challenges of communicating over a large distance and in a different language are underestimated.

The problem of distributed teams

In my current project, which is located in Germany, we collaborate with developers and testers  from Romania, that are members of our agile teams. Due to the physical distance, we face the common challenges of knowledge transfer and building a good team culture and personal involvement.

Lately the projects financial situation was bad due to overruns in development, mostly caused by lack of communication between the german and romanian devs.  The project got some management attention and after a root cause analysis the big question was:

How do we improve the relationship between the distributed team members?

In one of countless status calls with the management, a consultant who was hired to help us improve the efficiency pointed out how important it is to cultivate personal relations by visiting each other and have non-work related team events. “Well, we can’t do virtual team events, right?” was the reply of my project manager.

 

This made me think. There are many ways that people interact in a virtual way and not just for working. One that came to my mind immediately was gaming. There are many online multiplayer games that people can play together all over the world. Our dev team is relatively young and most developers I know like playing video games. The idea of gamification is spreading to other areas and also to the working spaces – so why not?

So the idea was to schedule an after-work event where we meet online and play some games together – a project Gaming Night. I proposed the idea and the other developers loved it, soI decided to plan the event.

What you need

We decided to pick only free-to-play online games, so the barrier to join the event is as low as possible. The ideal case would be a browser game, that does not even require installation or a beefy gaming machine. These games are rather simple and the long-range entertainment is rather low. We collected some ideas:

  • skribbl.io is a free browser game. You can create a private room and invite other players. One player picks a secret word and has to draw it –  the other players have to guess and get rewarded if they guessed correct.
  • World of tanks is also free to play, but requires installation. The players can create private games where they battle each other with tanks.
  • Team fortress 2 is a team-based shooter where players can pick different classes of soldiers and battle the other team.
  • Fortnite Battle Royale is a 100 player PVP game where up to 4 Players can team up and fight other players on a map that randomly gets smaller and smaller. The last standing man or team wins. The game principle is similar to Playerunknown’s Battlegrounds which is the current top hit in the gaming community.
  • Blizzard Heroes of the storm is a action strategy game where players can control a hero of their choice form the Blizzard Universe. There are two teams competing on an arena-like map where they have to conquer the other teams base.

Second you need a way to communicate during the games. There are multiple options like discord or teamspeak. We picked discord because it is easy to use and free. And last but not least, pick a date where most of your team members have time, we usually use doodle to organize our events. So that’s all you need, setting this up does not take much time (except installing the games might take a while depending on the internet connection). Put your game face on and have fun 🙂

Conclusion

Our first event was great fun and we already scheduled the second. Our team was relatively balanced, we only had one pro-gamer there, the rest where beginners (especially in that game) but we picked the teams so, that also the other team could win, if they used good tactics. I had a lot of fun and even if this does not improve our efficiency at work, we had a great evening together. We will see what the future brings.

What do you think about this? Do you have ideas for other games? You want to try this out in your company? Please let me know in the comments or dm me – I am looking forward for feedback and ideas!

An agile journey | Part 1_Introduction

In the last time I found myself obsessed with thinking a lot about agile software development methods and the whole idea around microservices, DevOps and continuous integration and deployment.

I think it started with reading the “Lean Startup” and “Lean Enterprise” books and listening to a lot of tech-podcasts covering microservices. These books really got me and helped me a big deal with understanding the fundamental ideas behind the above mentioned concepts and how it all fits together in a certain way (at least I think I got it …somehow).

My interest in these books was highly motivated by the fact that my current project faces a lot of trouble that affect my everyday work-life (and my private life as well, due to overtime and working through weekends). Deadlines are exceeded, scope has to be reduced although everyone on the team works his ass off and more and more people are pulled to the project and everyone is under constant stress.

Reading those books (and several others, I will link a list of books somewhere) and listening to podcasts, describing awesome architectures and this culture of getting things done on my way to work ,was such a big difference to the world I found when I arrived at the office, that I started to question more and more aspects of the way we worked, but also saw great potential in applying the things I heard and read.  Like every average worker would do, I started to complain about the points that frustrated me to the person I thought was in charge and capable of solving this issues.

The effect was depressing. Nothing happened, it always resulted in “yeah…we really should to this sometime” and everybody “being to busy to improve”. And things got worse, the project team was really unsatisfied and overworked and at some time, the project-manager resigned and left the company. A new project-manager was assigned and everybody was confident that everything will get better. But nothing really changed…I started to discuss my ideas in the team, talking to other engineers and architects, trying to plant little seeds of hope and pushing people to the direction I thought was best. And I was surprised as most people agreed and saw my suggestions as a way out, or even developed thoughts in the same direction.

Now it is 2017, a new year and yet still no specific actions have been taken, even though everybody sees, that we need to change the way we work and there are a lot of good ideas on improvement. I think this is due to uncertainty or the lack of experience how to implement these ideas in a practical way and of course the lack of time, because the workload and pressure did not really decrease. It is a circle.

I decided to stop talking and complaining and take action now to do everything I can, to strive towards an agile organization that delivers high quality software in an efficient way that people enjoy working in.

The “agile journey” is going to be a diary-like series of blog-posts on the actions and progress it takes. I have not worked in an agile project so far and lack any practical experience, but I am convinced, that this the right way for my project. I will try capture as many impressions and experiences I make on this journey in these posts and hopefully it leads to some productive discussions, new ideas or maybe even help somebody out there, who finds himself in a similar situation.

Lets get this done!

Side project – Building my own little software engineering lab

As a developer or software architect I always strive to explore new technologies, build some stuff by myself, try something or just hack around for fun. For most of these things, it is sufficient to have my stuff running on localhost, but the real fun starts with really distributed systems.

So my plan was, to build my own infrastructure to run stuff on using raspberry pis. They are quite cheap, don’t consume that much energy and are sufficient for most of my use-cases.
As I succeed with some of the things I wan’t to do, I will try to post a new article here.

The steps I already did:
– setup raspberries
– setup git repositories on raspberry pi
– run Jenkins on raspberry pi
– run docker on raspberry pi
– run docker container with mongo DB on raspberry pi

Next steps:
– run some of my node.js applications on raspberry pi
– automation with Jenkins

If you are interested in one of these topics, please let me know!

tech-stack