At Addteq, we’re proud Atlassian experts so it should come as no surprise when we say we extensively use Atlassian tools in everything that we do, especially during Android development. Typically we use Confluence during the design and requirements gathering phases, JIRA, Bamboo, and Fisheye during development phases, Bamboo for builds and deployments, and Greenhopper throughout the entire process for agile project management.
Atlassian’s GreenHopper is an agile project management tool; we use it to manage our scrum sprints. While some sprints may be short, with a few being as short as a week, Greenhopper gives the development lead a useful overview of on-going development tasks and what is being done at that moment. With GreenHopper the managerial team is also able gain insight into specific features or aspects of the project taking longer than expected to complete. This insight is valuable in determining whether it is beneficial to proceed further with it or if it would be better to abandon that feature for the time being. Since all of Atlassian’s tools integrate so well together, during our scrum planning session from GreenHopper we can see issues created in JIRA for the project and just drag them into the sprint plan. After the sprint is planned, the developers start their work, and issues can be dragged and dropped into columns for completed, in progress, and to do depending on their status. When the development lead drags the issues from column to column, their status in JIRA is automatically updated as well to reflect the changes.
Before beginning actual development, using Atlassian’s Confluence becomes timesaver allowing quick easy UI designing and requirement gathering. When we begin designing an application, the first step we take is to set up a space in Confluence for the application. Once we’ve created a space, we can begin adding pages to it. The first page in our space is always a requirements page where members of the development team and managers can contribute to the list of requirements and features destined for the application.
Once the requirement gathering stage is complete, we begin our User Interface (UI) discussion. Confluence assists in this stage as well through a useful plug-in from Balsamiq for UI mockups.
The plug-in gives our UI team the tools they need to create a prototype quickly and efficiently. By being on our Confluence site, the development team and managers can comment on the mockup from anywhere around the world and the UI team can quickly make the changes. Since mockups and requirements can evolve quickly and often, Confluence provides a central stage and space for our documentation and related elements such as videos, recordings, drawings, etc. This function has been one of the biggest advantages of Confluence for our development team. It does not matter whether the person is in our office or if they are across the country on a trip, the central space gives them easy access to what they need. They can interact with whatever it is they need on the Confluence site, or they can simply download it with the click of an icon and have a local version. Then there is the formal approval process after the requirements and mockups are complete; conveniently there is an option in Confluence to export the documents as PDF or as a Microsoft Word document. This export option does all of the formatting and indentation so it is very easy to simply “Export as” then print. There is a multitude of ways to share information with teammates today with the evolution of the cloud and cloud storage, but nothing we have used compares to the interconnectivity of Atlassian’s development suite of tools.
Once the mockups are complete, the development lead breaks the application into tasks and sub-tasks and uses Atlassian’s JIRA to assign these tasks to the development team. Using JIRA, the development lead can track a developer’s progress and clarify any issues that arise from the development team. While the our main use of JIRA for Android development is the issue creation for tasks, JIRA also provides a quick glance at other pieces of Atlassian’s development suite such as Confluence and Bamboo. From JIRA’s main dashboard, the development lead can see open issues, graphs of open and resolved issues, a quick look at recent builds of the project from Bamboo, and a feed with updates from Confluence, Bamboo, and Fisheye.
BUILD AND DEPLOYMENT
One of the most important Atlassian tools that we use during development is Bamboo. Our instance of Bamboo is configured to use a Git repository we set up for each Android application. We configured our builds to run every time a commit is made to the main repository. Bamboo provides instant notification to developers, letting them know if the build their commit resulted in a failed or was successful build. If the build failed, Bamboo also allows the development lead to create an issue in JIRA and assign it to the person responsible for the failure. As development comes to an end, Bamboo is used again to deploy the application to various testing environments. The testing environments in Android are particularly important since there are so many different devices with each having slightly different sizes, different sensors, and even different versions of the Android operating system. Bamboo provides a way to automatically deploy and test the application on the different devices and emulators. If you havent checked our last blog on continuously deploying Android apps using Bamboo, definitely do so by clicking here.
This is how we use Atlassian’s tools in our Android development. If you’d like to learn more about Atlassian’s tools and how they could help you with your software development or if you would like to inquire about Addteq’s services, contact us at addteq.com.
By Matthew Burnett – Addteq Mobile Development Lead