HEROIC Software Development Process
Tags: beginners, career, discuss, startup
Published: 2021-06-17 18:44:53

At HEROIC our software development process is at the heart of how we produce quality mobile At HEROIC our software development process is at the heart of how we produce quality mobile applications. We leverage continuous delivery (CD) tools to speed up the delivery and quality to our esteemed customers. In this post, we will go through the HEROIC Process.

 

## Customer Brief
The first step is the customer brief.  This document will be used to define the requirements, stakeholders, and scenarios in which the mobile application will be used. The customer brief is a series of questions that are designed to extract the necessary details for the wire-frames, user interface(UI) and user experience(UX) design to be developed.

![image-5](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ri3qn687s2cx3jdhjgun.png)  
 
## User Interface Design
The next step is the UI/UX design. Here the design team use Adobe XD and Adobe Illustrator to develop screens, typography, colour scheme, user flow, etc. Adobe XD is a tool used to develop prototypes that can be shared and animated with the customers and other users to carry out early user testing and gain feedback all in real-time. A lot of time is spent here as we iterate on the design and learn from customer feedback to ensure that all parties are on the same page (excuse the pun).

![image-6](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fscx8otttj82kfp5c761.png)
 

## Application Architecture
When a consensus has been reached on the user interface the stage is set for the architecture to be developed. The architecture will consist of the features, the infrastructure that will support the mobile application, the interfaces between the features, and the data flow between features. This phase is where the engineering teams will meet and discuss various solutions to deliver an optimised application. These brainstorms will also form part of the list of tasks needed to implement the software. These tasks will feed into a backlog which will be then prioritised by the scrum master into weekly sprints. Jira is used to track the deliveries and manage the weekly sprints.


![image-7](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2db8bamfbbgbxipi2kbn.png)
 


## Implementation
The implementation is done using the flutter framework. Flutter is Google's UI toolkit for building beautiful, natively compiled applications for mobile, web, desktop, and embedded devices from a single codebase. Each feature will have associated tests. These tests will be automated by the Codemagic continuous integration (CI) build and run nightly. 


![image-9](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kvn0benirbfflhckyahq.png)
 


## Quality Assurance
The quality team will develop integration and user acceptance tests to ensure that all the software from the development team is of production quality. The QA team will configure the CI machine to deploy the software to the google play store and the apple app store. The google play store can be configured to have a select group of users that will receive the updates. This is very powerful as it allows us to develop software in a CD fashion and get customer feedback almost daily. This means that we can embed both speed and quality with our product delivery.


![image-10](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n7nyua255snssphjhmnv.png) 


## Conclusion
The quick turnaround time between development and feedback requires upfront investment into CD tools. These tools and our HEROIC process ensure the speed of delivery and baked in quality into our products