Latest from Pinion
12 January 2021
How to use slack as your command center for software projects
Being a stakeholder in a large software development project increasingly means keeping track of what’s going on across multiple different systems. The planning of the development is less and less managed in word documents and spreadsheets, and more and more tracked in specialized software. Confluence, Jira, DevOps, Github, CI/CD services and more are typical systems to keep track of if you want to know what’s going on at all times. In this article I’ll show how you can have each of these services post updates to a slack channel, so that you can keep an overview of what’s going on from the one place you're always ON.
I’m going to be focusing on Atlassians SaaS suite, more specifically Confluence, Jira and Bitbucket together with Laravel Forges server management system linked to slack in this article. You will however most likely be able to do the exact same things with other similar systems including Microsoft Teams.
Confluence - the truth is in the cloud
Confluence is you place of truth in the cloud for all information about a project. Here you can keep important files, share links, and organize the content in pages that are linked together like a wiki. Confluence is the place where your top level stakeholders work, your product owners and business analysts.
In your Confluence space you can navigate to Space Settings -> Integrations -> Slack notifications and use Add Subscription
Adding, editing or commenting on a page in Confluence shows up in your slack channel. Here you can interact with the confluence message directly from Slack.
Jira - Planning and executing the development
Jira is where you plan the development of a project with your development team. Here you divide the projects and Epics, stories and tasks and plan your work in sprints and versions. As the development team work on the tasks they transition them between different statuses: “TODO”, “IN PROGRESS”, “QA”, “DONE”. These status changes, as well as comments on the stories can be pushed to a slack channel, and even interacted with.
Find your project in Jira and navigate to Project Settings, Select Apps, and select Slack Integration. Here you can connect your Jira project to a channel on your Slack.
Now your changes in Jira are showing up in slack like messages in the channel.
Here you can interact with the stories adding comments, assign the story to someone or transition the story to a different status.
Git - Bitbucket
There are several popular git repository services on the market. The most famous being GitHub, recently bought by Microsoft. But because of the tight integration with Jira we are using Bitbucket from Atlassian.
Pull requests and merges to branches can be posted to a Slack channel so that you know exactly when new code is available for review.
Navigate to your repository on Bitbucket and find the Repository settings and Settings under SLACK. Here you can Add subscription and have bitbucket push messages to Slack.
Pull requests and merging show up in Slack and you're even able to interact with them here.
CI and CD - Bitbucket and Laravel Forge
Automated testing for your code is a life saver when your project has reached a certain volume and you can create unit tests that will automatically run when new code is merged into your your develop branch and master branch. If these tests fail you can have them notify the team in slack.
Similarly if you use a continuous deployment system like the one built into Laravel Forges server management system, you can get notified when the new code is deployed to the server.
Navigate to your server and site on Laravel Forge, and select the Notifications item on the menu. Here you can configure and connect the Laravel Forge to a Slack channel, and if a deployment fails or is successful, it will push a message to the channel.
At a glance, you can see that some stories were worked on in Jira, code was committed to Bitbucket and new code was deployed to the server. No need to ask anyone or log into multiple services to see what is going on.
UptimeRobot - is the website up?
Last but not least, you might want to get notified if the website or web app that the team is working is down at the moment. For this you can use a service called UptimeRobot. This service will ping your URL on regular intervals and notify on both email and Slack if the website is down.
Have someone ever asked you: “did you see the changes in Confluence?” Or better yet have you ever asked your development team “is the new code deployed yet?”. Integrating all the activity in your project to a Slack channel allow you to easily stay on top of things in the app you always keep open.