How Hipchat supports Nomad Suite development workflow - Valiantys - Atlassian Platinum Partner

How Hipchat supports Nomad Suite development workflow

For a team developing an innovative product, collaborative work represents a true challenge. If each team member works alone in his corner, this  is clearly a recipe for disaster. So the team spends hours on endless meetings, this is valuable time wasted for the project, sometimes conducting to delay the delivery of a key feature.

Atlassian tools, such as Hipchat, offer to agile teams who pays high attention to the quality of their product a true collaborative solution. In this article, we have invited Joel Cogen & Stephane Amant from Belighted to share with you the toolset their developers use to work efficiently together.

For a few months here at Belighted, we are all committed to release what could be a new breakthrough into the service related ERP world! We crafted it using such amazing tools as AngularJS and other trending ones!

But in our way to achieve such a challenge, we needed to put in place a workflow which needed to be as complete as possible in order to allow a high quality level of crafted code as well as traceability and as easy and lean as possible in order to focus only on features development.

In order to make things as smooth as possible for everybody, we rely on a few great tools, integrated together so everything that can be is automatic.

Starting a feature

As with any agile project, features of Nomad Suite are described as stories, ordered by priority on the popular Pivotal Tracker.

The first step is therefore to start the first story in the backlog. This lets everybody know who is working on what and, because we use HipChatfor internal communication and we hooked both tools together, all stakeholders are notified.

deals development

Next, we create a new feature branch, with a clear and concise name — it is destined to be pushed, so it shouldn’t confuse other developers. Some of us like to add the story ID from Pivotal, but the truth is we don’t really have a strict pattern. Feature branches are extremely important to us because they allow you to experiment at will, commit, share your changes, and rollback if need be, all without disrupting the work of other and, most importantly, staging and production deployments.

On rare occasions, we do commit directly on master, but the change must then meet two conditions:

  • It doesn’t need review by another developer. This is true for very small bugs, typos and some settings changes, but not much else.
  • It must be trivial enough that if you get interrupted, it can be stashed or discarded, and easily applied when you come back to it.

Continuous reporting

At every push to GitHub, the team is notified on HipChat. This is a great way to let everybody interested know how the feature progressing.


Our CI, Semaphore, is also notified, and will let you know if all tests are green through — you guessed it — HipChat. This allows developers to not run the entire test suite, as some tests can take a few minutes. It is perfectly OK to break a feature branch.


Finishing up

Once the feature is implemented, tested, and all tests are green, the feature branch is ready to be merged into master.

Or is it? Now is the time to look at the commits, and squash the branch if necessary.

As for branch names, we don’t have explicit guidelines on commits and messages, but here are a few things we hate to see, from bad to worst:

  • Incomplete (not functionnal) feature
  • Untested feature
  • Broken tests
  • “wip”

All commits should reference the Pivotal Tracker story ID and the last one should say it finishes it, so GitHub can update the tracker for us. The story is now automatically marked as finished, but it still needs review. Time to open a Pull Request on GitHub.



Because we want to make sure this is the best code we can write, and we can all learn something from somebody else, all changes need to be reviewed by another developer. It can be anybody — the important thing, like with pair programming, is to have another pair of eyes, but we will sometimes ask someone with particular expertise to do the review.

After a little back and forth (with amended commits and forced pushes), the reviewer can finally decide to merge the feature. He is also reassured by Semaphore, which tested the branch and reports status on the Pull Request.



After the merge, Semaphore will run tests on the new master. They should all be green, so it will deploy on Heroku for us (and yes, notify HipChat). Our custom deploy script also uses the tracker-git gem, so stories will now automatically be delivered.

Time for the next story!..

HipChat integration

Hoping this post could help people looking for an efficient way of organizing their job !

A warm thanks for the Belighted team for sharing this with us! If you liked this article, please support their project. You can like them on facebook, follow them on twitter or just visit their website.

Cutted Triangle

Subscribe to the Valiantys Newsletter

Registered request ! Subscribing... This is not an email An error occured

In accordance with our privacy policy, we are committed to respecting your personal data.

Contact us

Our Atlassian certified consultants will be happy to answer you.

Join us

We're building the next dream team - Are you in?

Follow us

We use cookies for the operation of our website. This is to improve its use, to personalize your experience, and to compile visitor statistics. By continuing to use this site, you consent to this policy. You can manage the settings and choose whether or not to accept certain cookies whilst browsing. For more information, see our privacy policy. Our privacy policy

Privacy settings

In order to facilitate your navigation and to provide you with the best possible service, we use cookies to improve the site to the needs of our visitors, particularly according to the number of visitors. For more information, please read our privacy policy. Our privacy policy


Google reCAPTCHA is a system designed to distinguish humans from computers, so that bots are unable to maliciously fill out forms on behalf of a human being.


Used to send data to Google Analytics about the visitor's device and behavior. Tracks the visitor across devices and marketing channels. Used by the social sharing platform AddThis to store the user's usage history of the AddThis sharing widget. Registers a unique ID that is used to generate statistical data on how the visitor uses the website.


Targeting Cookies: Targeting cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant advertising on other sites. They are based on uniquely identifying your browser and internet device. You can turn off the use of cookies for targeted advertising here. When the button is green, targeted cookies are on. When the button is red, targeting cookies have been turned off.

Social Media Cookies: These cookies are set by a range of social media services that we have added to the site to enable you to share our content with your friends and networks. They are capable of tracking your browser across other sites and building up a profile of your interests. This may impact the content and messages you see on other websites you visit. If you do not allow these cookies you may not be able to use or see these sharing tools.