We’ve been thinking a lot about what it means to work on a team lately. Most often, developers are working on the same codebase, but are not really working together. More often than not the first time a teammate of your sees the code that you have written is when you’re considering the feature to be complete, and you’ve sent it for code review.
When doing other types of work such as working on a blog post or a specification, on let’s say Google Docs, it’s natural for the author to write an initial draft and then share it with a colleague. By default, your colleagues have edit access but can also opt for leaving suggestions, when to use an edit or a suggestion is left for their own judgement.
In the world of writing software, there isn’t anything that is near as flexible and straightforward as a Google Doc.
As we’re all painfully aware, software has semantic meaning in a way that natural language doesn’t (making a typo doesn’t crash your document), multi-cursor editing of the same document in real-time is only practical if you can synchronise on who’s working on what. If I try to compile the app while someone else is in the middle of writing something, the odds of a compilation error are very high. So we can’t code in a doc.
If we’re not sitting behind the same computer at the same time or using a multi-cursor pair programming tool, almost all of us are used to giving and receiving feedback using the slow and cumbersome process that is Code Review.
Code Review is interesting in that the more feedback you give, the more work you transfer to the author. And the result of the Code Review is often a laundry list of code to write and commands to execute, and you as the reviewer can’t practically help the author to do it. This leads to a slow cycle where one engineer tells the other engineer what to type, almost word for word.
In Sturdy, we want to change how we collaborate on code as a team, and enable you to meaningfully help each other.
Where you can give feedback in way that’s more like working together, and where receiving feedback isn’t a burden.
It’s called Suggestions, and allows you to literally give feedback with one click.
Some context: when working with Sturdy, you connect a directory on your computer to a Sturdy codebase. This directory becomes fully managed by Sturdy, and you control it entirely from the web.
Let’s see how it works! In this example, my co-founder Kiril is taking a look at one of my workspaces, where I’ve been working on a Fizz Buzz program.
Kiril sees that the program only does the “fizz-buzzing” for the number 501, instead of for all numbers from 1 to 50 as we have planned for it to do.
Kiril knows that I’m busy working on something else right now, and decides that he want’s to help out to complete the program.
By clicking “Open on src/my-backend on …”, a complete copy of my working directory is made available to Kiril on his computer. Any unsaved changes that he might have had are automatically saved, and will be restored when he comes back to his own workspace.
He’s now in “Suggesting” mode, and to make suggestions — all he has to do is to type them in his favourite editor (rumours say that it’s GoLand).
From my point of view, suggestions are appearing in real-time, and I can decide to take the suggested improvements if and when I want to.
Taking the feedback is easy, I’ll click on Kiril’s avatar to see his suggestions, and from there, it’s just one click to take the feedback.
When I take the suggestion, the code updates instantly on my computer! 🤯
This works incredibly well! We can both take and give feedback at our own pace, while still making giving and receiving feedback lightweight and fast.
After Kiril is done giving feedback, he’ll switch back to his own workspace, and his working directory will automatically be reset to how it was before.
Giving feedback only takes one click, and it’s the same to take it — and neither one of us had to run any commands on the command line, or figure out how to pull a branch that’s non-fast-forwardable!
Suggestions are available now to all teams and users on the Sturdy invite-only Beta.
Suggestions also works great for large files, and many files at once, and you can pick and chose only the suggestions (or part of a suggestion) that you want to have, and discard the rest.
For me, the ability to help each other out earlier in the development lifecycle is a natural continuation of the trend to Shift Left2, and we’re looking forward to see how this workflow will be embraced in development teams of all sizes.
In the coming weeks we’ll ship more features related to early-stage collaboration on feedback, stay tuned!
Thanks for reading,
Want to work at Sturdy (funded by Y Combinator), and change how developers work on code? We’re hiring in Stockholm!