pl

We have been building our experience since 2001.  We work based on proven and constantly improved standards. They guarantee the high quality of the developed software, security and stable operation. Precisely defined project management processes also guarantee transparent and predictable cooperation with the client at all stages: planning, design, production, testing, maintenance and implementation of the subsequent versions.

Gathering and analysis of requirements

  • We employ experienced analysts
  • We create static and dynamic prototypes (UX) (Axure, HTML)
  • We create test scenarios and use cases

The process of gathering requirements begins with the Business Requirements Specification (BRS). These describe the company's business goals to be achieved by the developed software. Such a document is written from a business perspective and contains only general requirements to be met by the new system. It is usually created by the client before the start of the project. If necessary (for larger projects), our analysts prepare a Vision Document based on the BRS document. It is a concise document, which initiates the project. After the document is approved by all project participants, we proceed to gathering user requirements. This usually takes place in a series of meetings-workshops / interviews, which go through each system functionality inscribed in the analyzed business process. Analysts create use cases or user stories during these workshops. These documents describe the process of user interaction with the application in detail (interactions between systems are also possible). Occasionally, interface prototypes are created as a form view. Such a view sometimes enables one to better imagine the behavior of the system and to improve the ergonomics of the user interface. When designing user interfaces, we are guided by the elaborated principles of usability and the principles of reasonable access to the data — in order to find the trade-off between user requirements and system load. Along with the user requirements, other requirements are collected, including those that are non-functional (e.g. to determine application availability, data retention time in the database).

We invite you to read the linked article, which details the requirement analyzing process at 3e.

Project management

  • We use agile methodologies based on iterations (2-3 weeks)
  • We create unit and functional tests, run after every update code in the repository (SVN)
  • Prior to the implementation of the project, we gather requirements and create possible detailed technical specification (SRS)
  • We collect, record and update all applications in the Redmine system

Ensuring quality and safety

  • We operate based on the Test-Driven Development (TDD) methodology, involving the creation of engines for testing at the time of building (and extending) of the system
  • Database versioning
  • We run automatic functional tests (Selenium2). We are the authors of an open source library for developing automated tests in PHP
  • We use the practice of continuous integration (Hudson)
  • We comply with safety rules based on OWASP TOP 10
  • Our solutions meet the requirements of the Inspector General for Personal Data Protection
  • We have a separate team responsible for quality assurance: 3 testers, including 1 holding the ISTQB certificate
  • We create and maintain current test scenarios/scripts
  • We run manual and automated tests
  • We test based on the xUnit framework
  • Our solutions are tested on all browsers. We use functional tests based on Selenium2

More information on Quality assurance methods

Our competencies

Web technics

  • Java/ JVM
    • We create enterprise solutions compatible with J2EE (JEE)
    • SpringFramework, Spring MVC, Hibernate / Eclipselink
    • Jetty, Tomcat, Weblogic
  • Node.js, Express web apps
  • PHP, we use mainly Yii Framework
  • Single Page Applications - JavaScript, HTML5, ReactJS

Mobile applications:

  • iOS native apps
  • Android native apps
  • Hybrid mobile apps (phoneGap + Single Page App)

Desktop and legacy technology:

  • Electron - kiosks solution: node.js (javascript)
  • (legacy) Delphi - we have created and still maintenance many desktop apps
  • (legacy) Java / Swing

Databases:

  • PostgreSQL,MySQL,
  • Oracle, we have have extensive experience in developing solutions using Oracle 10g/11g also using PL/SQL.
  • MongoDB
  • Apache Solr - full text search

Practices:

  • Automated unit and functional tests (We use Selenium platform for testing web applications), adapted elements of TDD (Test Driven Development)
  • Continuous integration (Hudson)

Linux server administration:

  • Servers configuration and administration
  • Configuring Failover and HA
  • Monitoring IT environments: nagios, cacti