How we work
We have built our success on our ability to listen to your needs, provide you with consultation and analytical insight into your business processes, lead you through transparent and predictable cooperation and constantly improve our standards.
Quality assurance - our main principle
As a software developer, we on regular basis produce and expand software solutions that are reliable enough to keep extensive, multi-million business ventures running and thriving for years. That means quality has to be one of our main obsessions - and it is. Our applications run for years without unplanned downtimes. How we do that?
- We begin the quality assurance process with the project’s business analysis. At this stage we plan future testing scenarios, describe critical points and estimate possible traffic. We identify the most sensitive areas that influence quality, like system integrations and sensitive environment components, etc.
- At the coding stage we apply peer code reviews, every piece is checked by another developer. Your applications are built in with the use of the continuous integration approach - changes are updated to integration servers where all the basic functionalities are continuously and automatically tested. About 15% of our resources are allocated to procedures maximizing regression and eliminating code deficiencies.
- Developed functionalities are passed to our Quality Assurance department. First, regression tests are run, to find any inconsistencies with code that already exists. Then we apply automated test scenarios of all the APIs. Finally, the dedicated testing team perform manual testing scenarios of front ends, mapping all possible user journeys in the purchasing process.
- After the application is installed on the production environment it must prove itself under heavy traffic. Performance testing is the field of our outstanding expertise. We simulate a large amount of concurrent users, while simulating the most complex site-use scenarios. The information obtained isused to optimize the infrastructure to achieve maximum performance.
Security assurance - so you can sleep well
We understand how important the minimisation of risk in all areas is to the overall health of your business. Taking this into account we have integrated security assurance procedures deeply into our processes.
- Much like we do with regards to quality we gather detailed information about your security requirements at the initial business analysis stage. We identify the most sensitive data and potential vulnerabilities, and recommend the appropriate technical stack. Our applications regularly pass, external audits by specialised security companies - we encourage you to hire third a party auditor. At your request we successfully implement industry-specific security requirements
- We host your applications in a highly secure data cluster, protected by top-notch backup and recovery solutions and are continuously monitored by 3e maintenance team. Your apps environment are regularly updated, we also routinely follow the guidelines of OWASP - an organisation monitoring the most dangerous Web application security flaws.
- Your legal security is no less important for us. We take care to prepare transparent and concise agreements tailored specifically to your needs. These agreements, cover all the essentials like the project scope and phases, user acceptance criteria, payment obligations, confidentiality, SLA requirements, licensing and intellectual property rights. We follow General Data Protection Regulation (GDPR) rules, what enables us to take the role of a Data Processor and sign the required data processing agreements.
Profound business analysis and documentation - understanding makes best software
We are here to help you solve your problems. Analysis and documentation of your requirements is therefore a key to overalll success and your satisfaction. Even following the agile approach (which we usually do) we highly recommend writing down the requirements for the first iteration and then gradually expanding on them throughout later development. Having all needs discussed and written down makes the project well defined and predictable, this helps us and yourself stay focused on targets, reduce the need for changes and facilitate budgeting, testing and final acceptance. We carry out our analysis in a highly elaborate and standardised way.
- The first step is to learn and understand your needs, and draft the product’s vision. We start with a series of analytical & consulting workshops with your and your team. We come to the meetings equipped with our analytical experience and predefined questions, to get to know project scope, added value and timespan, but also your company culture and working style. Our analysts are a kind of translator between you and the team of product managers and developers. The workshops are also a great opportunity for yourself to analyse and optimise you internal processes.
- During our consultation process, we produce a detailed business and technical specification. We cut the features into the tiniest elements, prepare detailed drafts of the processes, security requirements, and testing scenarios. We outline user groups, write user stories reflecting the future user’s activities and prepare prototypes. We tend to make it precise, that the ready document could be used by you as a tender specification, if you would like to check our valuation. We include these documents in the agreement, which allows us to issue a client’s requirements compliance warranty.
- Our team of analysts don’t leave the project when development starts. They are present throughout the entire process, checking the product’s accuracy, helping to optimise development and updating the documentation to keep it accurate. They come in, when you request changes and update the specification. In that way we can provide you with the most optimal product features that are available within a given budget and timeframe.
Coding - sit back and wait for the magic
Coding time! That’s when the functionalities are built, and added value is born, therefore we care that despite the nitty-gritty the process is as transparent as possible. Unless you strongly prefer waterfall, we usually follow the agile project methodology, developed and mastered by us overmany years, which allows you to closely follow the development process, evaluate the freshly-developed modules and decide about tasks order in backlog.
- We work in 2-3 week sprints the scope of which we always consult you on. Every iteration has its results in a product that can be shown and discussed with you. The priorities are set according to business and technical documentation. We use the popular Redmine tool to control the orders of tasks and manage their flow.
- We routinely follow the continuous integration procedure, that means, every piece of newly-written code is automatically sent to the integration server where all the basic functions of the application are vigorously tested to ensure that the introduced changes do not cause any errors in already existing parts of the system.
- In selected, very sensitive projects we utilize the test driven development method, that means we first produce testing mechanisms for a given element, and then the implementation stage begins - aiming to produce the code that will pass the tests. Repeating this process we produce code that is relatively error-free from the very early stage of development.
- we follow strict code review and versioning rules, to ensure tiniest bit of disorder never sneaks into what we write
Hosting and maintenance - high stability and availability guaranteed
When the application code is ready our role is far from finished. We provide you with fully integrated software product - including high quality hosting and long term post-implementation maintenance services. All the maintenance conditions are included in our SLA agreements. That means, we always consult with you on the level of services required, to prepare a tailor-made solution regarding answer times, repairs and maximum allowed downtime. We possess great experience in configuring SLA documents according to ITIL guidelines.
- The hosting environment requirements produced by your application, server architecture, estimated traffic, response times, legal requirements are by default outlined by us together at the business and technical analysis stage. Following implementation, your application is passed to our team of administration and maintenance specialists, who help you choose a relevant (traditional or cloud) infrastructure and make all the essential configurations to optimize platform’s hardware and software with regards to maximum efficiency.
- We usually host your applications in a failover class cloud environment provided by our partners at 3S. The data is stored in a cluster of 6 geographically dispersed data centres connected via a dedicated fibre optic network with fast disaster recovery options, and 24h maintenance. If you prefer we can host them in a public cloud environment, or use your dedicated solution as well.
- Our team of maintenance engineers are on-call 365 days a year, providing you with a convenient single point of contact for all the types of issues. We assign a dedicated employee as a caretaker to every client and hosted application, to ensure knowledge continuity. Our specialists respond to your inquiries via telephone, email, Redmine and on dedicated Slack channel.
- We engage advanced monitoring solutions to predict and prevent all the possible downtime well in advance. Your applications and their environments are very well scripted to monitor dozens of critical values, such as the server CPU’s, memory and disc usage, database queries execution time and much more. Along with the technicalities we also monitor your business processes.