Infrastructure

Project management system

As part of our infrastructure, we use the free open-source application Redmine. Redmine is a flexible project management web application. By using it we plan our product development and delivery, we assing and monitor the execution of each task, and share the documentation needed. Also, we receive feedback from the users for an eventually arised problem. The whole bugs management, from reporting to fixes in production, becomes more effective. Our clients have access to the system not only while we support their product, but still while we do the development and integration.

 

Continuous integration and build system

Apache Continuum is an enterprise-ready continuous integration server with features such as automated builds, release management, role-based security, and integration with popular build tools and source control management systems. Continuum helps us improve quality and maintain a consistent build environment for your applications.

Source management and comprehension

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. Using Maven helps our team with:

  • Making the build process easy
  • Providing a uniform build system
  • Providing quality project information
  • Providing guidelines for best practices development
  • Allowing transparent migration to new features

Version control system

Subversion is an open source version control system. The Subversion project have seen incredible success over the past decade. Subversion has enjoyed and continues to enjoy widespread adoption in both the open source arena and the corporate world.

Tools don’t compensate

There is a well-known paper from 1986 titled “No Silver Bullet” by Dr. Frederick Brooks. … An essential point is that it’s fundamental mistake (so far, endlessly repeated) to believe there is some special tool or technique in software, that will make a dramatic order-of-magnitude difference in productivity, defect reduction, reliability, or simplicity. And tools don’t compensate for design ignorance.

Craig Larman