The ultimate goal of any software development project is to deliver high quality and functional software, on time. To meet this goal, Jamax Development Team adopted a development process that evolved over several years of experience. We strive to use agile methodologies during the development process, and the software we deliver is tested before delivery. Some of the tools that we rely on are:
- Jira for project management
- GIT/SVN for source control
- Sonar for source code quality
- Jenkins for continuous integration
Jamax is an exceptional, open-minded, flexible, experienced, and very dedicated expert team. The development process at Jamax forces the developers to stick with the highest coding standards while implementing actual requirements.
How do we ensure code quality?
The development cycle is divided into one or more sprints. Each sprint is split into doable requirement chunks: Tasks. We rely on Jira and plug-ins for the Agile infrastructure and project management. Each task requires one or more commits to the code repository (SVN, GIT) to implement the actual task requirement.
Each commit triggers a job on our Continuous Integration (CI). Each CI job runs the complete project build and checks if the build is destabilized, i.e. if the commit contains some code that cannot compile, or if there are failing tests. An unstable build triggers a red alert and CI sends an email to the team demanding build stabilization ASAP. This feature protects against commits with non-compiling code, and code that is not passing existing tests.
If the build is stable, the next step is the Sonar code quality check. Sonar with plug-ins performs a series of tests. The most important one is the coverage test. If the code is not covered with tests at least 50%, the build will fail. This feature forces developers to cover their new code with tests immediately.