Today I'm excited to announce a new app named Ship.
The goal of Ship is to help software product teams communicate more effectively about their Continuous Delivery processes - increasing deployment frequency, reducing cycle time, and giving a new place to celebrate success. Today's version of Ship is a Mac desktop app combined with a service that interacts with Github Actions. To get started with Ship see our brief user guide. To learn more about Ship, read on.
I've been using techniques made popular by the agile software world for over 20 years. These include Continuous Integration (CI) and Continuous Delivery / Continuous Deployment (CD). Both of these ideas are about how a whole team can merge their work together on a frequent basis, with CD pushing that work through to users. The ability to make entire organizations more effective through CD has been explored through works like Accelerate, and the DevOps movement in general.
While CI and CD tools have been developed over the years to reduce the amount of manual work required during their respective processes, all of these techniques still rely on great communication between team members. In the early / mid 2000s I'd often work in “team rooms” where everyone involved with software delivery - developers, product owners, ops engineers, and testers - would sit together. As part of our routine we would turn around in our chairs and talk to our colleagues about the status of our automated processes.
These days teams rarely sit together in one building, let alone one room. But the communication needs of CI and CD are still here. Slack and similar tools try to fill this gap, but often CD-related Slack channels turn into a firehose of data. Within this torrent it's easy to miss important updates, and hard to drill into specific problems or updates without those questions getting washed away. Surely there's a better way?
A meeting of minds
Late last year I was chatting with Kiran Bellubbi. Kiran has successfully founded and led two previous companies, and is an “old-school agilist” like myself. As a product owner he's experienced the incredible value of being in the same room as his engineer colleagues - being able to rapidly iterate and give feedback, moving products forward at great speed. He described to me his desire to know as soon as possible when a new release from one of his current teams was available, and how he could access that release. In the “team room” an engineer would have called over to him and so he'd know in seconds. In this new distributed world he needs to follow Jira updates and Slack channels and hope for the best.
In parallel, I'd been thinking a lot about how engineers - developers, Ops folk, and testers - could better talk to each other about their deployment pipelines when separated geographically. Especially for when things go wrong, and people need help. Again, back in the old days we'd use tools like big TV displays, and sound effects for different types of events, so that people would absorb the current state of the team without having to think too hard about it. Today this idea of highly targeted tools has largely disappeared, replaced by chat apps and the ever-present flood of email.
After a couple of conversations we realized we were talking about the same problem - to help software product teams communicate more effectively about their Continuous Delivery processes. We could combine our ideas and efforts, and build something new. What we've made together is Ship.
Communication tools are most effective when they give timely and relevant information, and also when they are highly responsive. Because of this we've built Ship as a desktop app, along with a global menu bar component. Notifications pop-up as soon as a useful event occurs, and you can drill into the desktop app to see more context. Alternatively, the menu bar icon summarizes the current state of your CD world, and you are only ever one-click from immediately knowing the status of each workflow.
Ship shows a wide range of events, including:
- Detail of every successful and failed run for a workflow, including who was part of that change, and what new code went into it
- Announcements of new features, along with how a user can try them out, as soon as they are ready. These announcements are paired with the workflow run that they are associated with, immediately providing more context
- Alerts of when something has gone wrong in a pipeline, and who is working on fixing it, if anyone
- Reactions to updates, allowing new celebrations among teammates
Getting started with Ship
Ship is not itself a CI or CD automation tool - we integrate with other tools. As such we needed to pick something to work with first, and we went with Github Actions. We also needed to integrate with a source control tool, and the easier decision here was to pick Github. When you get started with Ship you'll add a Github App to your Github organization which will send all source control, workflow, and team updates to Ship.
Ship is both a Mac app and a software service. You can download the app here, and when you start you'll be prompted to login to Github, and add Ship to your organization if it hasn't been added already. There’s not much more to it than that, but we do have a brief user guide here.
Further, while we don't think Slack is an awesome way of providing announcements and timely updates, we do think it's a great place for discussion. Because of this we tightly integrate with Slack for when a conversation is the best way for a team to move forward. If you want to get started with Ship today then you'll need to use Github and Github Actions, but Slack is optional.
We hope that many people will be as excited about Ship as we are, and if that's the case we look forward to providing many more integrations in the near future.
Ship and Symphonia
Most of John and my day-to-day work is still working with our great Symphonia clients, and we don't expect this to change any time soon. Ship has given us an extra chance to use a lot of the same AWS techniques we use with clients for a project of our own - yes, it's built entirely serverlessly! Our favorite work as Symphonia has always been how to help teams work more effectively, and Ship definitely fits this spirit.
Let us know what you think
If you use Github Actions, please try Ship out and let us know what you think via the inbuilt feedback mechanism. Alternatively if you have questions, want to use Ship with other tools, or just want to keep up to date with what we're up to please drop me a line, or join the waitlist.
We think we've found something very useful here. We hope you do too.