July 29, 2020
Everyone who has ever built an application knows this too well: software development can be pretty costly and time-consuming. Especially in a world affected by the pandemic, finding ways to cut excessive costs is not only nice and clever but absolutely necessary for many businesses.
Table of Contents
Over the last 12 years and 390+ projects, we’ve learned that it is possible to optimize development costs without compromising on product quality.
Although it’s very important to state every application we build is a custom one, unique to suit your business needs, there is a possibility to integrate some existing market solutions or ready-made open-source modules into its infrastructure.
There are two approaches to building digital products. The first one is rather rare and requires every component, feature, and process to be built-to-order from scratch.
Although in this approach we build custom features, using any programming language is in fact, building on a technology already invented by someone else.
The second way is building an application using existing tools, solutions, and open-source code. Or, in case of rebuilding an existing app, working with legacy code.
In this blog post, I want to focus on the second approach and dive deeper into how it can decrease development costs and what are the solutions to common problems and needs.
1. Take advantage of existing SaaS and BaaS solutions
There are many third-party service providers and tools offered for a reasonable fee or even for free.
Over the years of developing applications, we found that often there is no need to develop new ready-to-use solutions and reinvent the wheel since there are existing ones available that are working perfectly fine.
One example of such a tool is Jitsi - a free, open-source video tool that’s easy to integrate with a new project and can be used as a standalone app.
It’s a perfect case of a tool we’ve tried, tested, and used in projects that required a good video meeting solution. We used Jitsi in one of our client’s projects, which needed to integrate a video tool to facilitate video property tours.
Another is Stripe, a comprehensive online payment suite for sending and accepting payments and invoices for retailers, online businesses, and marketplaces to name a few.
Apart from being a payment processing powerhouse and a seamless integration, it handles issues related to compliance and GDPR on the third party’s side so neither you nor your software provider needs to carry the responsibility and acquire all the necessary licenses.
Most of the technologies we know and love, such as Ruby on Rails or Python, have robust open-source libraries that are constantly upgraded and offer impressive solutions for common product needs.
Using open-source solutions or building upon an open-source code for features that are common, such as admin panels or user authentication modules.
One example of such a solution is OAuth, an industry-standard protocol for authorization which we often use to facilitate the approval of applications interacting with one another without giving away the user's password.
Outdated code can significantly impair your app’s performance and can make your product difficult to maintain and expand.
One of the ways to approach this situation and avoid deactivating your app while you’re building a new one from scratch is to refactor your existing code and rebuild your app using a hybrid approach.
Our Head of Technology recently explained this approach for the Increment Magazine:
The rewrite should be spread out over a period of time—say a couple of years—to minimize technical debt and financial cost. You need to know what to change first: Some features are core and business-critical, while others take more of a supporting role.To handle this arrangement, you’ll need to create interfaces like APIs or bridges to allow your legacy code to communicate with your new technology. As you add new features in the form of separate microservices, they’ll eat the business logic of your legacy code piece by pieceTomasz Kania-Orzeł Head of Technology
Gradual code rewriting is a great way to rebuild your existing app bit by bit without stopping its functionality and losing your users!
eCommerce platforms are generally very complex and expensive to build from scratch. The good news is there are excellent solutions available on the market with teams of experts and impressive performance backing them up.
You can successfully integrate the solution that best suits your business into your product and find the money and time for installation and maintenance is much lower than the cost of building a bespoke eCommerce engine yourself.
We’ve recently published a comprehensive comparison of the best eCommerce platforms to choose from to give you a gist of what’s worth considering.
Say you want to build a mobile app for both iOS and Android and make it responsive in Web browsers. You’ll be happy to hear that you can build a cross-platform app with one codebase with technologies such as React Native, Flutter, or React XP.
Developing software using smart, existing solutions has a lot of benefits. Let’s focus on the most important:
Although using some pre-existing solutions and components can be a smarter choice in many projects, there are cases that require fully custom-made development components.
Possible cases include:
An important thing to note is that your app should always give your users a unique experience and respond to their needs.
If a unique frontend and UI design will bring value to your users, you should definitely go for it, but there are some cases where you can build it with ready components, for example, if you are developing your initial prototype or an application for your organization’s internal use.
Don’t underestimate the power of good communication between you, the PM, and the development team. Lack of sufficient information and misunderstandings can cost you a lot.
As many companies build software that drives their businesses forward, it is important to discover ways to make the process faster and reduce costs. Embracing best practices, leveraging the agile methodology, and using some existing solutions and tools can really go a long way, helping you save money and development time.