Reuse of existing assets. To reduce complexity and speed up overall development process in most of our projects we reuse pre-developed components through service oriented architectures and leveraging higher-level tools, frameworks, and languages.
Automatic Code Generation. Each and every ETNA Software developer is specifically trained to create code generation tools. When there is a certain pattern in the software architecture, we create a code generator, which produces the required code. Once we’ve decide to improve the functionality, we change the generator and momentarily regenerate any amount of code that follows that pattern.
Version Control. Allows us to keep track of all changes to the source code, fix errors in earlier versions of the system and release patches accordingly.
Issue Tracking. Any change requests and bug reports are stored in a special database, prioritized by the project manager, passed to the developers and then to testers. This process ensures that no customer’s request is ever forgotten.
Automated Testing ensures that the system remains functional even if we are rebuilding it daily. Also allows us to emulate a heavy load in order to carry out performance testing.
Fast Release Cycle. It is critical that the customer is able to evaluate the software as early as possible, to check if his needs are met and to make necessary changes to the requirements. We have all resources to make releases weekly and sometimes even daily.