Development Process

Development Process

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.

Need additional info? Feel free to drop us a message.

Technologies

Technologies

Jamax development is focusing on mainly Java related technologies. Yet, we have no problems about learning and switching to new technologies. Ideally the application stack that we recommend consists of the following technologies:

  • PostgreSQL: DB engine
  • Java Entities: Java Model
  • Hibernate: Persistence API
  • Spring Framework: DAO and business logic
  • Spring MVC: Server side view layer
  • HTML5, CSS3, JavaScript, jQuery, AJAX, jQueryUI: Client side view layer

Over the years Jamax development team has worked with all major Java related technologies. New technology will be just another challenge in our portfolio. Here is a short list of technologies we feel confidence to work with.

  • Presentation Layer
    • Spring MVC, Apache Tiles, Servlet, etc
    • HTML, HTML5, CSS, CSS3, etc
    • JSP, JSTL etc
    • JavaScript, jQuery, AJAX, etc
    • jQuery UI, KendoUI
    • Dynamic lists, grids, search engines, etc
    • Various form validation frameworks
  • M2M Technologies
    • Web Services
    • SOAP XML, XStream
    • JSON, Jackson, GSON
    • RESTful API
    • RMI, Corba etc
  • Middleware and Data Layer
    • Spring
    • Hibernate
    • EJB
    • JPA
    • TopLink
    • JDBC
  • Databases
    • PostgreSQL
    • MySQL
    • Oracle
    • MSSQL
  • Application Servers, IDEs, Build Frameworks etc
    • Apache Tomcat
    • JBoss
    • Eclipse, STS, etc
    • Netbeans
    • Maven, Ant, etc
  • Unit Testing APIs
    • JUnit
    • Hamcrest
    • Mockito
    • Power Mock
    • Spring Test, Spring Test MVC
    • Selenium
  • Other Technologies
    • Spring Security, Spring Batch, etc
    • Internationalization I18n
    • Linux, Unix, Windows, Android
    • Google Maps
    • Jasper Reports,Apache POI
    • LOG4J, SLF4J, Logback
    • Reflection, Multi-threading
    • Amazon Web Services
    • MBeans
    • Wowza API
    • Wireshark packet capture
    • Node.js, RabbitMQ
  • And many, many more

Interested in our services? Feel free to contact us.