The original idea for Conveyor was that every project represents a Git repository, and every task in that project was a Git branch. And while this simple workflow allows you to break your work into manageable chunks and to focus on writing code, there are plenty of scenarios where you need more flexibility.
That’s why we built subtasks. They offer several benefits.
Software development in 2019 seems more complicated than it was ten years ago. This is one of the main reasons we decided to build Conveyor.
We’ve been so busy working on Conveyor that we didn’t set aside time to share any details about how we’re building it, what makes it special, and the technical challenges we had to solve along the way. This post is the first of a series that will give you a look behind the scenes.
The first version of Conveyor is now ready and open to everyone. It’s our take on a new type of development workflow that helps keep developers in the zone, and teams in sync without the redundant systems and steps. Gone are the days of stale branches, painful merges, and“What’sthe status?” You just do your work, and your team is in the know. Automagically. Conveyor replaces your Git client, hosted version control service, and task management with a single, integrated development workflow.
With version control and teams, conflicts are virtually inevitably. They’re never fun, and they’re often scary. Conveyor does what it can to make conflict resolution simpler and more human friendly.
Git is awesome and incredibly powerful. Describing and implementing the concepts that Git relies on for its full power requires a pretty robust vocabulary. Fetch. Pull. Push. Merge. Branch. Commit. Rebase. Stash. Revert. Blame. Cherry-pick. These commands enable all sorts of flexibility for teams to use Git in the way that works best for them, but it also puts a lot of additional burden on developers. Conveyor relies on this flexibility under the hood, but it takes a more natural language approach to translate the functionality into words and phrases that fit better with your development work.
Developers are constantly writing status updates each and every day as they’re branching and merging significant changes to their codebase. By and large, however, developer tools don’t do as much with this information as they potentially can.
Software development isn’t simply writing code. We’re all jumping between version control, a text editor, a terminal window, and a Finder window. Sometimes one of those windows gets closed or hijacked for another task, and you lose your spot. You either have to open a new one and navigate there, or try to find the original window and go back to where you were. It’s small, but these little disconnects break your flow. Conveyor helps streamline those interactions.
Imagine that you’re working on some code, but then something small, but urgent, comes up. So you switch gears to go work on that other thing, but then you need to quickly get back to that code you were working on before. Sometimes, it’s easy, but other times, the context switching throws off just enough that it’s hard to get back to what you were working on. The “Current Task” bar in Conveyor plays a little part in making that a little easier.
One feature of Conveyor that will benefit teams is visibility. Most agencies understand the pain of finding the best way to share the progress of a project with a client. So too for teams who have non-technical team members. How do you give people in these roles insight into your projects without confusing them or showing more than you want to?
We’ve done a lot of research interviews over the past two years and a lot of the teams we talked to used Craft. But we wanted to focus in on this audience and get more detailed results on how they used Craft and where they experience annoyances in the process.
Shortly after we started brainstorming and sketching out ideas for what would later become Conveyor, we agreed that we needed to build a desktop client for the concept to work. Being a web dev company with no experience building desktop applications, we needed to learn how to do that. And quickly! Our feeling was that we could start with building an app for Mac only. Then if the product took off, we could invest time in a Windows app separately. Right away the debate started: Should we build the app using native Apple tech stack or use a web stack such as Electron?
It would be great if we could remove the number of technologies that are involved in building websites and apps. Even if you attempt to just stick with the bare bones basics, there is a lot of complexity. Conveyor attempts to help reduce some of the tangential expertise that's required to build for the web so you can focus on the building your software rather than learning to use dozens of tools for that building.
From running Beanstalk, we know there are plenty of teams still using Subversion (SVN). We also know many of those teams have an interest in switching to Git. At the same time, when SVN is what a team knows, a switch like this is intimidating. You still have deadlines to meet and there’s a learning curve to understanding the nuances of Git!
After nearly 2.5 years of active development, we decided to rebuild the entire client from native to Electron. While this meant that the product launch would take even longer, we decided it is worth it to deliver the right experience.
With Slack, Trello, Basecamp, Jira, email, and so many other ways to communicate, it’s tough to keep everything in one place. How can Conveyor help you to stay afloat when there’s so much going on?
Even a team of 3–4 people have to work at managing their processes. It requires less work and thought than larger teams, but it still takes your time and energy. Once a team grows beyond 10 people, this becomes even more true. As we talked to development teams of different sizes, we heard a consistent theme. People in leadership positions have some tasks that make their job a little harder.
We love Git at Wildbit. Years ago when we switched over from SVN, its performance and flexibility blew us away. Now after running Beanstalk for ten years and listening to thousands of developers, we realized things could be better.
It’s hard for a busy team to have a consistent process. It’s harder yet to ensure that everyone on your team is up-to-date on this process and adhering to it from project to project. This applies as much to version control as any other part of your workflow. Conveyor can help.