Software development

We develop software based on state-of-the-art software engineering methodologies. We follow the Agile Manifesto principles and we develop software mainly using Python, Ruby, Django, C, C++, ROS, Javascript, Node.JS, PHP, MySQL, PostgreSQL and Git. We support open source and we collaborate with open source communities enabling our customers to embrace open source.

Our engineers work with our customers to identify their business problem and to select the most suited software tools to successfully implement all phases of our software development lifecycle:

  • Requirements elicitation: We use methods such as interviews, questionnaires, workshops, brain storming, use cases, role playing and prototyping to collect requirements from stakeholders.
  • Requirements analysis: We analyse the requirements and produce a list of the functionality that the software should provide. The overall result is the system as a whole and how it performs.
  • System design: We define the architecture, the components and the interfaces of the software. Here we design how the system will work in order to satisfy the requirements produced in the previous phase.
  • Development: We use best coding practices to build the code for our applications. During this phase more analysis sessions and demonstrations of progress are scheduled with the customer.
  • Testing and deployment: We use interoperability tests, unit tests and stress tests to validate the work performed. We also use several techniques to evaluate user acceptance where the customer has the opportunity to test the system and validate the functionality against the specifications. During this phase a pilot system is also deployed to a staging environment.

Please let us know if you wish to receive more information.