Category Archives: Engineering

Case Study: Medlert.com on Atlassian’s OnDemand Software Development Tools

The original version of this post I first published on Medlert blog here on the September 24th, 2013. Reposting here incase readers of The Road to Silicon Valley (#TRTSV) missed it.

I am a Co-Founder & CTO of a San Francisco based startup in the health sector called Medlert. Medlert gets you the fastest medical emergency response when using our mobile apps connecting through Medlert’s emergency platform. You can learn more about Medlert here: https://www.medlert.com/medical-emergency-alarm-system-features

Like many startups in the early days, we experimented a lot with a different set of software development & collaborative tools to manage bugs, chat, project management (agile stuff), document storage, code repository etc… that long list of stuff you gotta do to keep the wheels of the machine greased up. Like many, we found the defragmentation of multiple tooling and login accounts a nightmare. More work than it’s worth. Even though most of these tools were free, the overhead was not worth it.

Good set of software development & collaborative tools need to:

  • Minimize overhead – be complementary not a headache to get things done
  • Easy to use – one consistent experience with minimal ramp up period to get staff using it
  • Integrate with a common industry project management life cycle – think Agile
  • Accessible anywhere – web based (cloud) single sign on (SSO) over a secure connection
  • Affordable for any team – especially for small teams in the early days

The search

I am an Aussie, and strangely enough I have never heard of Atlassian until few years back when working in Silicon Valley running the Coupons.com International Engineering team. There I got exposure to early Atlassian tools like JIRA, Confluence et al.. and they started to slowly grow on me. I still didn’t like the fact that we ran these tools internally and had to have people manage them. The cries of Tomcat brought shivers down my spine.

When we kicked off Medlert (The Fastest Emergency Response) I admit I did not think Atlassian. I wanted everything for free and so we ended up using host of other free tools like Asana, Pivotal Tracker, Trello, Google Docs etc etc… That quickly changed as mentioned pains of defragmentation & integration made me revisit Atlassian website, finding Atlassian OnDemand. There it was, a single hub/solution to solve our pains. A cloud based offering package with all the tools we needed in 1. Win!

Atlassian OnDemand

We started with the free month trial and today are a happy paying customer. The pricing structure is ridiculously cheap for what you get. The diagram below depicts our use of Atlassian tools with more of the Atlassian suite of tools coming online (gray circles) in the next few months.

medlert-internal-tooling

Tools used at Medlert to get stuff done faster

How we use Atlassian OnDemand at Medlert

atlassian-logo

JIRA – tickets

JIRA is a very powerful tool for ticket creation, management & tracking wrapped in an Agile software development process (sprints, stories and epics). Complementary to it, JIRA Agile formerly “GreenHopper” allows us to manage knowledge work with an emphasis on just-in-time delivery through Kanban boards. This proves us with a very high level overview of what is in the next release, being worked on and completed.

We have about a dozen “Projects” ranging from iOS to Corporate site to Platform setup in JIRA. This allows us to separate tickets into their correct channels and gives us a high level visibility across Projects, Individual contributors, Status of tickets, type of tickets like bugs/improvements etc. My favorite are Burndown charts and Velocity charts when it comes to planning. We can see work load, progress and team’s ability to resolve commitments per sprint.

Confluence – knowledge base

Confluence is a wiki used as a knowledge base. In the early days we used Dropbox & Google Drive. As the team grew this didn’t scale too well with our needs. Confluence is a great replacement with security down to the user level for sensitive knowledge.

We now store all our documents, discuss product designs using the threaded commenting features and document everything directly in Confluence. For newbies coming on board all they have to do is point their browser to our Confluence hub to find all they need to come to speed.

With JIRA integration any ticket pasted into Confluence gets automatically recognized and connected. Very neat and allows anyone within the company to move between the knowledge base wiki and related tickets.

HipChat – chat client

HipChat is not just a chat desktop & mobile client between teams but also a communication tool for services. All those circles above send appropriate messages to their designated rooms. The beauty of this is that you can just hang out in HipChat and see the company’s activity from all the tools we use. For example:

  • JIRA’s activity stream gets sent to our “Alerts” room in HipChat.
  • Confluence activity stream also gets sent to the “Alerts” room in HipChat.
  • ZenDesk customer support requests get streamed to our “Customer Support” room.
  • NewRelic, a 3rd party server & app monitoring tool, pushes Red Alerts to our “Alerts” room too.

Now this isn’t a replacement for those tool’s notifications. The right people still get those but it helps to keep everyone in the company who is interested at anytime updated on what is going on. More on other integrations here: http://help.hipchat.com/knowledgebase/topics/10037-integrations

We also have dedicated rooms for when working with contractors and other rooms for specific topics like:

  • Firehose: when making releases and/or system updates this is where all the activity happens.
  • Platform: for platform discussions and sharing of notes,
  • Product & Marketing: for as the name implies, sharing ideas around product & marketing
  • and few others.

Bitbucket – git source control

Having previously used GitHub we found BitBucket just as good if not better due to the integration between JIRA tickets and source control.

BitBucket has a feature called “Hooks” which allows you to associate an action to a change in the repository. For example, when code is checked into a Medlert Repository, the email service fires an email to Medlert Admins informing them of the checkin with a link to Bitbucket. Same hook sends a notification to HipChat Alert room. Instant visibility of activity on the Medlert Repositories.

You can use the shell command or Atlassian’s SourceTree GUI app to manage your Bitbucket repository.

An example: a typical day in the Medlert office

Medlert staff is geographically spread. As tickets are created in JIRA (either automatically from other tools or manually) in their appropriate Projects, the project leads manage the ticket life cycle. A ticket life cycle can follow an Agile process of being scheduled into a Sprint or addressed immediately based on severity. When the Agile process kicks in, the Project lead (which could be an engineer) will work within JIRA Agile to push everything along.

As JIRA tickets are completed, watchers (anyone with a vested interest in that ticket or its creator) gets notified via email. Also a Kanban board gives further insights into progress.

As JIRA tickets and Bitbucket code repository checkins happen, all notifications are also sent to HipChat via Hooks. All Medlert employees have visibility of this activity. HipChat is great and we use it daily for communication in private and public rooms vs clogging up email.

Most Releases are done ad hock. Our fault tolerance infrastructure and release process allows us to push & reverse code using automation. All the way to the relational database which is structured around code models. As releases happen emails go out to the admins updating them of start and end builds.

Now we never push releases directly to production. There is a staging environment, a scaled down mirror of production, which is used to do UAT (User Acceptance Testing) by actual users we recruit via UserTesting.com.

Our infrastructure tools from NewRelic to AWS monitoring paint a picture of hardware & application health throughout the whole process.

Atlassian Summit

Atlassian Summit - Collaborative ToolsThe beauty here is these tools can be used in many different ways to cater for your needs. I’m sure there are things I could improve on or change here. That I’m looking forwards to in a weeks time when I attend the Atlassian Summit to not only learn about cool new features but also find out from others how they are maximizing this investment. Lookout for me at the Summit.

I’ll be sporting a Medlert white shirt and Medlert gray jacket. Say G’day!

I hope this post has answered and provided you with insights into how Atlassian OnDemand tools can be used to help your startup move fast. Any questions please comment below.

~ Ernest