COVID-19 has undoubtedly exacerbated the feeling, but who else thinks collaborating or merely communicating with your teammates on code is far from convenient, especially when it comes to quick problem resolution?
As software engineers, we are all too familiar with being stuck on a problem for hours, whereas it’s solution turns out to be a single line of code or even less. Let’s have a deeper dive into one such basic, however frequent situation.
Say my teammate works on an issue that I happen to be more familiar with than them. So my teammate is stuck and can’t be bothered to resolve the issue communicating. Why? Because it is a pain in the a **!
1. Instant messaging: In a casual workflow setting, my teammate could attempt to explain the problem directly through an instant messaging service, say Slack. Since I work within a different context than my teammate, it would likely take a few communication iterations for me to comprehend the issue entirely. Once I understand the problem, it takes another few iterations for me to transmit the solution fully. This whole process most likely involves copy-pasting snippets of code and takes up a considerable amount of both our time. It’s not only time! Miscommunication drains energy, taking away developers’ most productive time 🚴♂️ 🚴♂️ 🚴♂️ Resolution time: hours?
2. Issue and PR threads: Instead of interrupting our workflows, we could be threading on a PR request or an issue. Though I do like that the relevant communication takes place in the appropriate places, resolving to this channel does delay the point of resolution. Depending on the currently assigned workload and the degree of its asynchronous nature, a single developer may stay stuck due to a single bottleneck. Being blocked leads to frustration on both the developer and management front. Resolution time: days?
3. Screensharing: Yup… No thanks!
No channel has proven very useful for quick and seamless problem resolution. That leads me to GitLive (https://www.git.live), a project I am currently involved in as COO and which I want to introduce here. GitLive is an IDE plugin that adds a realtime layer to the transactional git workflow. The plugin provides an integrated team environment which syncs with your repository hosting service team’s composition. It gives you realtime access to your teammate’s local working copy subject to privacy settings that can be modified. Furthermore, with a simple mouse click, you can request a collaborative session, allowing you to type in your teammate’s local files! That’s pretty cool, in my opinion.
- I get rid of the iterative draining communication to understand my teammate’s problem and it’s context.
- I seamlessly add a line or two of code to bring my teammates back on track.
Resolution time: 5 min!
Yes, probably not that easy, but I’d love some insight on the most significant pain points you guys are facing in your daily dev communication flow, as well as your thoughts on GitLive. Throw it at me 🥊 😁