Online collaboration for software projects

August 17, 2016

I had the chance to meet Jonathan Lawerh (from Ghana) in a mobile development camp. We quickly connected and started discussing about the benefits of online collaboration for software projects. I asked him to write his motivations and point of view with all of us. Enjoy it!


 

After graduating with a second class degree from Kwame Nkrumah University of Science and Technology, I felt the need to gain some practical working experience in a software development firm to gain first-hand knowledge of what life of a software engineer entails.

I have loved every minute of my work as a software engineer, especially developing websites and Web applications that fits client’s business needs and, more importantly, developing a groundbreaking mobile application named MoJa which featured as an African innovation at WISHQatar2015.

I soon realized that although I enjoy the complexities involved with software development, especially working and collaborating with local teams, I am not going to be satisfied with working on local projects. The reason is that I want to develop software for companies worldwide and also work on projects from different geographical locations so as to work with the best developers in the world in order to further improve my experience in the process.

Although I have worked on projects that have gained international recognition, I believe working in a team of software engineers from different locations would help me thrive my experience with the best in the technology industry.

Online collaboration is a powerful tool that software developers leverage on to build cutting edge applications. Years ago software companies had a strict and tighter policy for their employees to work in-house. “Smart” businesses now look beyond their boundaries to assemble a team willing to work to drive the company’s goals. Online collaboration has brought about the birth of remote working. Remote working may never have been a success without powerful tools for online collaboration like github, bitbucket, sourceforge, etc. These tools have become the platform for software engineers to collaborate and work remotely. With a platform like bitbucket you get to host your source code in an online repository and make it available for remote contributions.

Many people have shared their experience working remotely and I have been privileged enough to work with a team in a remote fashion. It’s a fun and challenging environment. One of the challenges you are likely to face is establishing a common working ground for all team members to work from. When that common working ground is established the rest is healthy competition. Team members get to complement each other especially when a member may be lacking In a particular field.

The question that most people tend to ask is how do you code without getting in each other’s way? The answer is simple, just have a clear list of functionalities with each functionality detailing all the tasks and also assigning these tasks to the team members. In this case, you can use Trello boards to organize your projects including adding timelines to your tasks.

When the team establishes a complete workflow right from project organization through to assigning tasks to individual team members, there is a perfect working relationship and collaboration. There may be occasional conflicts and in this case it is always advisable to leverage on the power of version control. With version control, you can create multiple versions of the same project, you get a complete access to the changes that were made to the code over time and you can backtrack on any changes made if necessary.

Online collaboration with remote teams brings out the best in you as a software engineer. You get to work with the best in the industry and gain experience also.

Many people are of the view that team interaction is a drawback of remote working, but team interaction does not necessarily mean physical interaction. There are more honest opinions since you don’t need a face-to-face interaction with team members. Everything relies on an efficient and effective communication, and nothing better than an online collaboration tool to keep track of the progress of the project.

Another issue for some people neglecting to accept remote work is the different time zones of team members. This actually does not make much of a difference. You should see it as a way of having a 24 hours running project: when you are asleep, a team member may be awake and working. Once more, an online collaboration tool is crucial here to keep track of the project.

Working remotely brings out some sense of healthy competition. Every team member understands that performance is key to the success of the project, therefore is willing to spend some extra bit of time to learn new technologies and implement them in that regard.

Working remotely means working at your own time and in a condition that makes you more productive. The office may not necessarily be the best environment to work. Some developers may only visit the office as a usual routine, but may not necessarily use it to do real work. From experience most developers feel more productive in the comfort of their homes or working alone at night.

After working remotely I have enjoyed every bit of it. I do not feel any pressure from the work environment, I get to work at my own time and I get the opportunity to test my skills with the best developers available. I also get the opportunity to work on my own project to help me grow as a software engineer.

Working with a local team in an office makes me feel there is more time to catch up with colleagues in the office, but working remotely makes me feel a sense of urgency since I think any delay on my part would stall the progress of the project. In this regard I feel more motivated working in a remote team. I have come to understand that the most successful projects were developed by remote teams. After all you can only find the best in remote places.


 

What is your experience collaborating on online software projects? Did it impact your career somehow? Do you find it more engaging than working always with the same people in the same location? We are looking forward to reading your opinion in the comments.