During the initial call with a new client, we discuss many aspects of the proposed product. Among the many things discussed is which approach to a technological stack is best: open-source or proprietary technology? The only answer we can give in advance: it depends.
It all depends on the size and stack of technologies already used, different strategies benefit different companies.
Open-source and Proprietary Platforms: the Difference
It is worth mentioning that open-source and proprietary platforms are not complete opposites. The biggest difference between these lies in the openness [or lack thereof] of the source code: open source is just that—written by a group of enthusiasts where everyone can see and modify the codebase; whereas, proprietary software is owned by an individual or company, software is kept under “lock and key”, and use is restricted.
Proprietary vendors offer demo versions for those who want to learn more and to play with their technology. Open source technologies tend to be free to use—but not in 100% of cases. Users can pay for support and/or extra features. Also, if a product owner has a specific business goal that requires adaptation of an open source platform, a license for commercial use or a fee for disclosure of a proficiency might be required.
Platforms evolve over time to keep pace with market needs. For example, one of our major clients, Adorama, has been using Microsoft’s proprietary ASP.NET platform for many years. Currently, ASP.NET has become open-source with the source code available via github.
The starting point of our discussion with our client centers on his/her list of top priorities. Points for consideration include, but not limited to:
- client’s personal preferences
- platforms, support, and community
- customization and user friendliness
- integration with existing technological environment
- maintenance costs
Client’s personal preferences. Certainly, the choice of a particular technology can either be ideologically based or simply word of mouth / personal preference expressed by someone, e.g., the product owner was told A is more secure than B.
Most frequently, however, the choice is based on goals the product owner sets for future software with respect to the software development budget. For each case, Ukrainian software developers study all options in order to determine which better suits the client’s needs then discuss their findings.
Integration with existing technological environment. When the company already has software integrated into its business processes, our development team starts its study with ascertaining how well the new software fits in with the existing system.
For example, when a company uses LAMP, adding one of Microsoft technologies to the existing technological stack is, quite simply, expensive excess. MS SQL can be installed only on an MS Windows Server. So, the task “just install MS SQL” requires both purchasing a Windows Server license and expecting the necessary additional skills from a software development team for its installation and maintenance.
Platforms, support and community. Usually, large open source projects (e.g., WordPress) are proud of their huge communities contributing to the project.
When extra support is needed, open-source platforms offer it for subscription. Magento and Docker have enterprise editions with more options under the hood, plus both enhanced support and security.
Proprietary technologies offer better integration within their own platform while open-source integration to the proprietary platform (e.g., Docker was not initially available for Windows) can be cumbersome—and vice versa.
Open-source projects have the same or even more features under the hood and, in general, are great when there are professionals who know how to deal with them.
Maintenance costs. Businesses can deploy their own servers, tune and maintain them, deliver software updates, and hire a team. Trending now: software companies apply for PaaS (Platform-as-a-Service) solutions migrating to the cloud like Amazon’s or Google’s. Third-party platforms enable reducing expenses and ensuring higher scalability.
Customization and user friendliness. Most open-source solutions have one standard theme and offer cheap custom themes. However, when the design is crucial for a future app, businesses must create a custom design to avoid appearing cheap.
Proprietary software offers more features under the hood as well as customization tools.
Lifecycle. The release is never an end point. Software tends to need regular updates due to advancements in software platforms.
On one hand, paid services usually grant more options than open-source when software has reached its “end of life”, e.g., time for migration, support does not abruptly end. On the other, even though proprietary software might have a longer lifecycle, its support will not last forever (e.g., see story with Australian medical system, Chiron).
To sum up, both development costs and maintenance costs affect the choice of a technological stack. An ideal technological platform fits in with the current technological background of a business and, thus, integrates with minimum effort, is surrounded by a large community, supported by experts, and has regular updates and a long lifecycle. It is user-friendly and requires minimum human intervention. Based on this list, we choose one that fits in best.
Last but not least, when starting software development, businesses might end up with a blended approach. Within one business, different technologies (both proprietary and open-source) will be integrated into one system in order to ensure smooth business processing.
FEATURED IMAGE: Shutterstock