How do you develop a live coding platform? Well, by developing it live. :)
It’s no surprise that working remotely is growing. The benefits are great, but what about the problems that it might generate? We started working remotely one year ago while building a screen recording tool and very quickly we noticed the convenience but some real new challenges on how we were working. Basic interactions suddenly were slow and with a lot of frictions:
- If I’m facing an issue with my code, how do I ask for help?
- How do I know what other people are working on?
- How can I learn from the people I work with?
I’m not going to talk about the benefits of working remotely, we all know you can work from any location, have a flexible schedule and no commute. I’m actually interested in the new issues faced by the people when they are working remotely.
We identified three main challenges:
When you are not in the same room you must be intentional about talking to others. Is not as natural as meeting someone in the coffee break and having a quick chat. It’s also hard to know what your teammates are working on. If you are just 2 or 3 people is kind of easy, but if the team is bigger you are going to lose their progress and also their struggle.
What about when you need to ask for help? We noticed that having simple technical doubts required much more time and effort to solve. This made our interactions slower and sometimes we avoided asking for help at all.
When talking to other programmers, we discovered that mentorship and onboarding a new teammate is a big challenge.
Accountability is hard to replicate when you are not in the presence of other people. We know that this impacts people’s productivity when they are not disciplined. We also felt sometimes working without a purpose or not building a culture. Just like accountability, recreating momentum and the feeling of achieving something fades when you don’t have the standard social interactions with other people.
We actually didn’t face this (maybe because we were just 2). However, a lot of developers that we interviewed expressed that they are worried that their efforts might not be recognized by their managers and this might affect their promotion. When we talked with the managers we could understand the other side and that they were concerned about not feeling the team and knowing how is everybody.
How to solve this?
We believe there’s going to be a space that developers can work with others as if they were in the same room. Where is easy to learn from others and store what you know in a simple format. We are building it and it’s called GitDuck.
With this platform you can stream in real-time your code linked to the video timestamps, so you can click on the code and watch the programmer working. You can see the code side-by-side with the video, so you can easily understand the full context.
To build this platform, we are working live most of the time and sharing our progress via our profiles. We internally use it for documenting all our progress, doing video code reviews and just asking for help between ourselves. You can check us at https://gitduck.com/drag0s and https://gitduck.com/thiago.
We are seeing people using it for:
- Async pair programming
- Recording tutorials or walkthroughs
- Video code reviews and
- Live coding
Check it out and let us know what you think. :)