Software Development Services

At Zanaris our focus on software development is both on Mobile and Web applications across multiplatform environments.

Here are a few key ways that we focus on delivering world class development;

Web Development

Responsible for designing and implementing new features and functionality.

Establishing and guiding the website’s architecture.

Ensuring high-performance and availability.

Managing all technical aspects of the CMS.

Mobile Development

Responsible for designing and implementing new features and functionality.

Ensuring high-performance and availability.

Managing all technical aspects of the app.

Work closely with other developers and customers to ensure an effective, visually appealing, functional and intuitive implementation.

Software Development Process

The software development process is divided into the following phases;

.1

Defining

.2

Development

.3

QA/UAT

.4

Deployment

.5

Monitoring & Security

Management Process

We follow agile methodologies, with small frequent iterative releases.

The details are dependent on the needs of specific projects and clients.

They will fit under one of two patterns: Scrum or Kanban.

Scrum

Scrum has periodic releases which will be one, two or three weeks apart. Each of these is called a sprint. At the beginning of each sprint, there will be sprint planning which will determine what functionality will be worked in during that sprint. At the end of each sprint will be a release which is pushed to production.

Kanban

With Kanban there is also small frequent releases but of varying sizes. As work is completed (including testing) it will be pushed to production. This may result in a few releases in a week then a few weeks between a release, depending on the size of the work being done.

Our Approach

The software development lifecycle is defining what needs to be built. There are two process tracks with in defining depending on how large the change is.

Story & Defect

Small changes to functionality and defects are added directly to Trello, bypassing the feature defining process. This is done with cases where the functionality changes, or fix can be clearly defined in short paragraph and screenshots.

Feature

Features are large items functionally which require some thought before developing. These will usually involve multiple discussions with stakeholders to understand the details of the business requirements, creation of wireframes, mocks, and user flow.

Development

Source Control

GIT is used for source control; developers work on feature branches. Peer code reviews are done through pull requests when merging to common branches.

Design Review

There is a design review with an architect when major changes are being done. A change is considered major when a module needs to be created, a new third-party library, integration point or database table needs to be added.

Testing Process

QA

Testing is done throughout the development of new features, consisting of a combination of manual and automated tested.

Automated API: Postman test suites are created for testing API endpoints. These are run through the CICD pipeline. They are run as a primary part of regression, covering primary use cases.

Automated UI: Where applicable, test scripts for the UI are created with TestSuite or Katalon as part of regression.

Cross Browser/Device: Validating visual look and feel across browsers and devices is performed with LambdaTest.

Exploratory Testing: Manual exploratory testing is done on new features to rapidly get feedback on new code as well as finding edge case issues during regression.

Smoke Test: Smoke tests are quick manual tests to make sure primary functionality is working in a new build.

UAT

User Acceptance Testing (UAT) is feedback from the client to make sure how the application/a new feature meets expectations. The Definition phase will never bring out all the detail a live system will. It is crucial to have active engagement from the stakeholders to make the project successful. UAT is an iterative process where feedback is needed for the release of any feature.

Stakeholder Meetings: Part of the stakeholder meetings (Project Management) is to review feedback, gathered during user acceptance testing.

Staging Environment: There will be an environment where stakeholders can test the application. In the case of mobile apps, there will be staging versions of the app available for both Android and iOS.

Development Management Process

The following procedures are in place to monitor and secure the production environment;

Logging

All application, system and database logs are sent to a central logging system.

Availability Monitoring

Cloud provider-based monitoring tools are utilized to monitor system availability and performance, generating alerts with specific predefined threshold.

Security Scanning

Monthly security scans are run and reviewed to check for vulnerabilities in the application and third-party libraries.

Health Check

Meetings and/or reports provided by the Zanaris team to the client to provide updates on the current status of project tasks. Health checks ensure that we can act proactively and respond in the most effective way.

Deployment

Deployments are done through automated test scripts in a CICD pipeline. There are two or three environments, where code is deployed to.

Production

The live environment customers use

Staging

The environment used for UAT to preview the next release before going live.

DEV/QA

The integration environment used internally to test (on some projects DEV/QA in combined with staging).

The following process and tools related to automation of deployments;

Environment

Cloud environment setup and modification is scripted with terraform. These scripts are version controlled in GIT.

Web API Build & Deploy

Applications are built and deployed with a Bucket Pipeline (or other similar build pipeline tool). Build actions are triggered by a merge to a specific branch in GIT (production, staging, etc.).

Mobile App Build

Mobile Apps are built with Azure App Center. iOS Apps are sent to Apple TestFlight and Android Google Play Console where they can be made available for testing and pushed live in respective stores.

Automated Testing

Automated test scripts are run through the Bitbucket Pipeline.