Custom software development

In our approach to the software development process, we use several basic models, depending on the complexity of a project and business requirements (Agile, DevOps).

The software development methodology complies with the SDLC (Software Development Life Cycle) method.

All the steps used in this method clearly define the stages of the software development life cycle and are quite simple.

Each step in the development life cycle culminates in the final product required for the next stage of the cycle. We follow six main steps in the software development process:

default image alt

Requirements for the developed software products (SP) are determined at this stage. For most projects, this step is very important. At this stage a joint project team is created and Project Managers are appointed, both from the developer's side and from the client's side. Moreover, at this stage of the project, besides business analysts, all categories of team personnel participating in the project are already working.

At this stage, a contract for a pre-project study is concluded, which ends with creating technical documentation, consisting of a Technical Design Document (TDD), Project Plan and Test Plan, as well as proposed terms and cost of implementation.

In the work course, a detailed analysis of the functional requirements, the existing IT landscape, security, data migration issues, integration of the future solution with external subsystems, selection of appropriate technological tools for development, analysis of the timing, cost, licensing component of the project, the possibility of future modernization, support options and costs.

After completing the requirements analysis and approval of the technical documentation, the project team can move on to the next stage of development - product design.

default image alt

At this stage, the software product design is coordinated based on the Design Assignment and the capabilities of the selected technological tools, the options for the design of user interface (UI/UX) are coordinated.

At this stage, the project team can prepare a prototype of the future product for the client to approve the general concept. This allows the customer to preview the prototype of the future system and provide feedback at an early stage of development.

The product design layout also serves as the basis for the next step in the development cycle. The next stage includes the actual development/coding process.

At this stage, the final version of the specification of requirements and project documentation may be adjusted, and a contract for the software supply is concluded.

default image alt

After the product design stage, as soon as the development team receives the final requirements specification and design documentation, software developers can proceed directly to creating software. In addition to programming, at this stage developers also perform unit testing to identify potential problems as early as possible, during the development stage.

At the same time, depending on the degree of software completion, all team members may participate in checking the convenience of the user interface, the correctness of business logic, and the correctness of integration with external subsystems.

At this stage, data is migrated from/to external subsystems, as well as setting up all reference data, including role-based security for system users.

After this phase, the team can move on to the next phase of development – testing.

default image alt

After the software development stage, the team proceeds to full-fledged testing of the solution. The whole team is in a constant process of troubleshooting.

At this stage, some the future direct users of this software form a team to obtain information about the final readiness of the software, validation checks are carried out, the final software product is tested according to the requirements and UI/UX design from the point of view of the end user.

At this stage, the software developers themselves perform software testing together with the testing team and the customer's project team.

Next comes integration testing. This is when the interaction between individual modules and/or external systems is checked.

A mandatory element of testing at this stage is load testing, usually on the customer's equipment, or in the relevant centers of our partners that offer hardware or cloud solutions.

If the application no longer contains critical remarks, the implementation process takes place.

default image alt

As soon as the software product passes the testing phase, the process of its implementation can begin – i.e. software transfer to the customer's product servers. This stage includes final testing, including load testing and setting the date of transition to commercial operation.

If at this stage any improvements and/or corrections are required due to the client's feedback, or any errors occur, unnoticed at the testing stage, they are eliminated and the timing of the transition to commercial operation is adjusted.

Software deployment usually involves setting up a product server on which the software will run. Such server may be one of the customer's company's own servers, or else it may be hosted in the cloud using, for example, Oracle Cloud, Amazon Web Services, or Microsoft Azure.

After deployment, the next step is maintenance and operation.

default image alt

After all the above steps have been successfully completed and the software product has passed the implementation stage, the product requires further maintenance. This includes solving current problems, further software upgrades, updates related to changes in versions of third-party software used, updates caused by various requirements of market regulators.

In case of a significant increase in the user base of the software product, it may be necessary to optimize the software for the fail-safe system operation.

All software products supplied by our company are provided as constructors for potential further software development, including that performed by the specialists working for our clients and in the open source.

Our competencies

Integrated environments and software development utilities
  • Embarcadero Rad Studio 
  • Oracle JDeveloper
  • PlsqlDeveloper
  • DBForge Studio for Oracle
  • Sybase Power Designer
Programming languages
  • Object Pascal
  • C++
  • PL/Sql
  • Java
  • JavaScript
Component models, frameworks
  • JSF - JavaServer Faces
  • Java Servlet
  • Oracle ADF
Protocols and data exchange formats
  • XML
  • SOAP
  • REST
  • JSON
  • COM
  • OLE
  • WinSock - Windows Sockets API
  • WebSocket
Component libraries
  • Developer Express
  • Direct Oacle Access
  • ODAC
  • FastReport VCL
  • FastCube VCL
Platforms, DBMS, system technologies
  • Oracle Database
  • Oracle Gateway
  • Oracle Weblogic
  • GlassFish
  • Oracle SOA
  • Oracle VM Server
  • Oracle VM Virtualbox
  • VMware ESX
  • FireBird DB