No more quick'n'dirty stuff.
You need quality, we need a meaning in what we do.
Commitment
Quality code, guidance and advice to create a flawless product that meets your business needs and satisfies your customer.
Agility
2-week sprints allow us to stay flexible and adapt to your needs and keep us efficient.
Clean code
Our quality developers keep their coding simple, meaning fewer bugs, easier diagnostics and simpler maintenance.
Coding Principle
Towards simplicity.
The one thing we’ve learned from our experiences is that it's very easy to make things complex, and much more difficult to make them simple.
Purposefulness
All objects (variables, classes, methods, etc.) must have a single purpose. If a method is used in two different contexts for different purposes, future changes are more likely to create an error
Readability
Sparing a few lines of code that to avoid confusion doesn't pay off in the long run!
Simplicity
Simplicity is more important than a hyper-compact logic which only the author can understand (e.g. multi-level class inheritance can be attractive from the hobby-developer perspective, but it's usually terrible business-wise as it will be very hard to understand).
Common Sense
Code needs to be crystal clear when specifying what each class, method or variable does. Simple common sense is the best way to create clear code.
Agile process
Using the industry-standard SCRUM framework, we have daily 15-minute meetings and bi-weekly planning meetings. This helps us break long term goals into short term wins and control the progress of your project.
Quality Assurance
We’re practical about testing.
A feature that’s assumed to be ‘coded flawlessly’ is all but guaranteed to break. But throwing the same test at it time and time again doesn’t actually improve it. That’s why we ensure the quality of your product using the following test classes:
Unit Tests
These tests are written by software developers rather than testers. The goal is to ensure that each function returns the expected result. Unit tests help uncover the most basic types of errors that are a result of adding new features.
Functional Tests
These are the most essential types of tests. They check if every component of the system is behaving as planned, and under simulated circumstances. These tests should be automated as much as possible.
Acceptance Tests
These tests are performed to make sure the final software meets the initial requirements as specified. Typically these tests are done per-stage and at the end of the project (by both the project manager and the customer).
Vulnerability Tests
These tests find weaknesses and security holes in the new software. These tests are run by those who have not been involved with the project and know nothing about it.
Stress/Performance Tests
These determine the maximum performance capabilities of certain components or resources of the new system.
Usability Tests
Tests performed by the UX team to detect any usability issues. These tests are done throughout the entire creation process.
Programming Standards
Standards bring us to next level.
We are formed by engineers, but everyone live strictly with a coding standard. The uniform appearance to the codes written by different engineers are universally standard, readable, and easy maintain by each others. We simplify complex things and ensure reusablity and efficiency of the programmers.
Object-Oriented Programming
We develop code according to the object-oriented programming principles. This provides a clear modular structure of the application and makes it easier for both developers and end-users to operate.
The object-oriented approach requires a little tech design effort but reaps many rewards. Well implemented, object-oriented architecture is easier to maintain and faster to develop. It enforces higher code integrity of the system, and, in the long run, lowers the total cost of ownership.
Model-View-Controller
We use strict MVC and MVVM design patterns to avoid the risk of ending up with imperfect code. Data, interface and logic are clearly separated from each other, which makes the code easy to maintain and modify in the future.
Source Code
You can always access the code we develop for you in the Git repository. We use version control tools such as Github, Bitbucket or Gitlab. The code is typically separated into a few branches such as the last stable branch, development branch, and branches for particular features or change requests.
Software Deployment / Releases
We automate the software release process, so whenever an alpha or beta version is committed to the repository, it is also automatically deployed on the testing server so your team can see the new version immediately.
Servers
We deploy the software to a cloud-based infrastructure such as Amazon AWS or Leaseweb. We can also work with any server house of your choice. In the corporate world, we often work with secure servers behind a VPN.
Security
Working to heightened security measures is nothing new for us. Having worked with international airlines and banks, we’re experienced first-hand with data security, data sensitivity and the extremely important role it plays.
Data back-ups
No need to remember your back-ups. If you decide to use Amazon AWS services for your server infrastructure, software images of your virtual machines will be automatically snapshot (Amazon EC2) and the database will be backed up on the fly (Amazon RDS).
Maintenance & Support
We understand all too well that good customer support is a crucial part of the overall package. In all our app development projects, we offer a convenient maintenance and support service, where the team is responsible for making sure your app runs seamlessly at all times. Our team is available around the clock for any type of support that’s needed.
Looking for a team?
Let's see if we can work together.