Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Avoiding Software Failure using Atlassian Ecosystem

Let us admit, software is meant to be broken. Sometimes it breaks because people write horrendous puzzle of code for machines to understand correctly, sometimes developers are more involved in personal goals and ignore to care at the right time, and sometimes it is just the way of software to self correct itself.

 

If we go deep into the dilemma of the software failure we will see a pattern. A pattern where each failure is mostly because of these reasons,

  • Requirements are misleading or incomplete
  • Requirements are not tracked properly into implementation, and finally,
  • Implementations are not thoroughly validated.


If we carefully examine the above-mentioned reasons of failures we will find that this is mostly because of the tool-chain that we are using. Here, I must admit the Atlassian ecosystem is a great help in resolving these predicaments. I have been using this ecosystem at fullest to keep failure away from systems that I maintain, and I feel that everyone must look into this ecosystem before finalizing their stack.
We will dive into ecosystem using the below diagram, which is the depiction of a current stack that I prefer to use.

 

apps.png

 

The stack here is divided into three sections,

  1. Requirements
  2. Implementation, and
  3. Validations

Requirements

Requirements, the source of all truth, there are a couple of bits to it, collecting it from stakeholder and later managing it in a suitable format. In requirement collection, we deal with understanding, and atomisation, whereas, in managing, we have to format them and make them suitable for implementation. If we lack discipline here software failure is inevitable. Requirements ought to be well structured, properly versioned and must be available for collaboration at all times. In the Atlassian ecosystem, you can cover all these peculiarities using Confluence.

Confluence is primarily a team collaboration software, with built-in features like versioning, and blueprints. Nowadays it comes with lots of built-in templates that you can use to kick start your project’s requirement collection. It is also secure, and expendable using plugin ecosystem built around it. Overall, with suitable practices it can cover almost all aspects of requirement management solutions.

 

Implementations

As an engineer implementation is what I’m mostly concerned about. The clarity and maintainability of your software are determined in this stage. In Atlassian ecosystem there are lots of tools that can help you in your implementation, there is Jira Software for project management, there is Bitbucket for code collaboration and then there is Bamboo for to ease your deployments.

Jira Software is closely linked with Confluence, our requirement management solution, so you can easily transform your requirements into stories and issues and plan your sprints to distribute tasks among your team members. Jira Software is a one-stop solution for agile teams, and it provides a wonderful platform to track your development pace, manage periodic releases and generate reports for stakeholder so that they feel confident in your progress. Another cool feature in Jira Software is Workflow, you can always start with built-in workflows but the true power of Jira Software is unleashed when you create a custom workflow to match unique processes followed by your team.

Softwares are all about code, and with the introduction of code version control systems like GIT, half of our problems related to code collaboration is solved, but for another half like integration with Jira, code security, and code quality we can always rely on Bitbucket. Bitbucket comes with all the features that you might need to make your code more maintainable in different kind of team settings. You can also improve your CI/CD life-cycle with Bitbucket using Pipelines, a configuration as code solution comes bundled with Bitbucket.

For deployment and testing needs of code, Atlassian provides you with a solution called Bamboo. You can use Bamboo to build, test and deploy. This tool is not purely about implementation but it also covers a certain part of validation. Bamboo is also quite easy to configure, and your DevOps team will feel at home while using it. It comes with excellent support for Bitbucket, so you can trigger your build/deployment workflow anytime you like.


Validations

We are now in the last section of software development, validation i.e. testing and quality assessment. Albeit this is the last step in our software development life-cycle, but the consequences of not managing this properly will be most dire, the cost of your software might increase manifolds, the quality of your software can turn horrible, and with time bugs will pour in from all sides.

Atlassian itself doesn’t provide a solution for validation but third party plugins build around Jira Software available in the marketplace are a great help. You can choose any solution build upon Jira for this. Here the connection with Jira Software and Bamboo is important so that your software life-cycle can be easily maintained, and remain consistent with time.

 

In conclusion, the Atlassian ecosystem is one-stop, batteries included, solution for all software development needs, and with the careful assessment, you can always build your stack and workflow using Atlassian tools.


I will be happy to share more insights into my stack and will be gracious to learn about your stack.

TAGS
AUG Leaders

Atlassian Community Events