Tuning web performance
Time and budget constraints during the MVP phase often mean compromises in quality of the development. Testing is done on small datasets and few users. As the application gains traction and traffic increases - performance drops to disappointing levels. According to Google just 0.5 second of additional load time may mean a drop of traffic by 20%. Amazon’s research shows that every 100ms of latency cost them 1% in sales. The immediate response to performance is often buying more server power, but this is costly and short-term.
Our approach starts with analyzing the code performance and identifying bottlenecks. By using specialized tools, we can do it on production servers. Usually within just days we can offer quick fixes that significantly improve the performance. In the long run we optimize the code, architecture as well as use Docker and Kubernetes to optimize server performance with lower bills from the cloud service.
Scaling web applications
In the post-MVP phase businesses often wants to scale the app and go global, but the technology behind the product is not ready. Problems include one server with users around the world, multiple features for few users etc.
The solution is to reject costly vertical scalability (increasing the number and size of servers) and promote horizontal scalability (dynamic management of cloud capacity). With most businesses experiencing peak traffic and relatively calm periods, sensible management of resources is crucial for profitability of the operation.
Lowering development cost
Old code, technical debt and outdated stack is difficult to expand, and extra effort involved becomes an interest the business has to pay. Technology locking is another problem - by sticking to old versions of programming languages, not using modern frameworks and even using modern technology, but rare and expensive, the availability of talent is restricted which impacts the cost of employment.
Sometimes software development companies advise radical measures such as scrapping the old application and building a completely new one in parallel. But this is costly, impractical and risky. At Accesto we promote a more subtle approach - by gradually paying off the tech debt and building new features in parallel, we maintain business viability and satisfaction of the engineering team. The seniority and maturity of our teams combined with automation improve the efficiency of the process.
Shortening time to market
The competition added new features and it would take months to catch up? That’s a pain for many scaling SaaS companies. However, a more flexible approach can easily speed up the time to market.
First, the feature we develop can be a basic prototype, that allows us to push it out faster, and leave deeper integrations and automation to later stages. Second, such a basic feature can be immediately tested to validate if the users actually take advantage of it. Other ways to speed up time to market include Continuous Integration, Continuous Development and feature toggles.
Improving user experience
User experience and customer satisfaction sometimes lag behind the overall functionality of the SaaS product. This is due to a lack of focus on user journeys, user flows and the design of the app.
A mature development team thinks both of the client and the end user. With small tweaks in UX, focusing on the features that really matter and continuous A/B testing we can achieve significant improvement. In addition, monitoring tools that we use allow us to find bugs even before they are experienced by users and communicated to support. In this way we turn a significant group of users into ambassadors of the brand.
Securing web applications
Many applications are vulnerable to security breaches of which tech teams and owners are not always aware. Identity thefts, personal data leakages through SQL injections, problems with authorizations, insecure PDF generation, insufficient password policies and password vaults are just some of the common susceptibilities
In the early stages of cooperation, we pay special attention to protecting applications against threats. We use penetration tests, web application firewalls, static code, static code analysis, live code monitoring, etc. The applications we develop are used by such secure organizations as Irish Tax and Customs, Intel, Roche and Accenture. Our developers are security trained and follow OWASP guidelines.
Ensuring quality & reliability
Reliability means many things. Our clients’s applications are dependable thanks to our policies of peer code review and additional quality assurance. By automated testing, bug reporting and application health monitoring we minimize the risk of products behaving in unexpected ways.
We also think of ourselves as reliable as technological partners. We prefer to underpromise and overdeliver. That is why most of our clients stay with us in the long run - we like to see the effects of our work and feel responsible for them.
Maintaining web products
Overengineering an app means the architecture is too complex and technology too sophisticated for the purposes of the application. It’s common as ambitious developers often want to build great things. But this poses risk in the long run as an overly complex app is very difficult to maintain.
We achieve maintainability by building features with just enough complexity to meet the needs of users and leaving room for further expansion. We also automate tasks, track technical debt, choose widely adopted open source solutions and monitor bugs both in static code and live environment.