Professional Documents
Culture Documents
Development process
High-level development process, release and change management
Table of contents
1. Project Setup
1.1 Metrics
1.2 Coding Standards
1.3 Source control management and commit policies
1.4. Code review
1.5. Best practices
1.6. Tools
2. Continuous Integration
2.1. Environments description
2.2. Pipeline
2.3. Tools
4. Definition of done
5. Deployment
5.1. Configuration management tools
5.2. Automated deployment tools
6. Release strategy
6.1. Versioning policy
6.2. Release notes
8. Documentation
8.1. User manual
8.2. Software design document
8.3. Test plan
8.4. API documentation
8.5. Tools
9. Change management
DMA Tech - Development Process 3
1. Project setup
!
1.1. Metrics
Metric Value
Code base
Master branch for released code
Develop branch used for merged features
Release branch for release candidates
Hotfix branch for immediate/urgent fixes in master code
Commit policies
The Jira ticket will be present in the commit comment, so it can be referenced in
release notes.
Bitbucket
DMA Tech Bitbucket will be used
All developers will be granted access to bitbucket
DMA Tech - Development Process !
Code reviews are public, all developers can and should do code review.
Rely on developer responsibility, features will be merged when at least two other developers
have reviewed the code.
Focus mainly on improving the static code quality
Respecting best practices
Respecting code standards
Provide unit and integration tests with respectable coverage;
Possibility to review work in progress (WIP)
Avoid reviewing important design decisions only at the end of development
Important design decisions should be documented
Summary for what to look for in a code review
Focus on respecting all described in this document.
DMA Tech - Development Process 8
1.6. Tools
Static code analysis will be performed with the following tools. This process will be a part of the
continuous integration process.
Checkstyle
2. Continuous Integration
2.1. Environments description
Proposed solution:
1 dev environment in which reviewed features are integrated.
Demo for integrating tested features from dev environment
PreProduction should be closest to production, to be used for pre validating features to release.
2.2. Pipeline
2.3. Tools
Jenkins
Maven
Nexus
Sonar
DMA Tech - Development Process ! 11
3.2 Tools
SSLLabs
OWASP Zed Attack Proxy (ZAP)
4. Definition of done
Code is written
Unit tests are written for business logic code
Code is reviewed by other developers
Important architecture decisions are documented
Feature is checked by developer on staging (DEV)
Feature is checked by QA member on staging (DEV)
DMA Tech - Development Process ! 12
5. Deployment
5.1. Configuration management tools
For environment configuration we use Ansible. This allows us to automate the server configuration
and provisioning.
6. Release strategy
6.1. Versioning policy
Versioning policy to be defined. Versions should be defined at project level. The mobile application
should be aware of API versions.
Release strategy:
Provide release notes containing released features.
Release plan to guarantee service availability and backwards compatibility
8. Documentation
8.1. User manual
The user manual delivered with the project will have the following contents:
A guide on how to use the main function of the system
A troubleshooting section detailing possible errors or problems that may occur, along with how
to fix them
A FAQ (Frequently Asked Questions)
Where to find further help, and contact details
A glossary
8.5. Tools
Confluence
Swagger
DMA Tech - Development Process ! 17
9. Change management
We define the change management as following:
Thank you!
www.dma-tech.com