Choosing a SaaS Application Development Platform
If you answered all the key questions in our last post and you’re committing to developing a SaaS product (to take over your market!), you’ll also want to evaluate technology stacks. Perhaps you have in-house expertise in something, but you’ll want to verify that it’s feasible for SaaS (no, Microsoft Access is probably not a good idea…). Bear in mind that you’ll be married to this platform for 5-10 years. You don’t want to get a year into development and find you’ve made a terrible choice and must start over to reach your goals. With that foundation, we’ll outline key factors you should address when choosing the best framework for your product. Before you even start, you have hundreds programming languages to choose from, a number that grows if you include frameworks for individual languages. Note, using a *popular* framework doesn’t necessarily mean that your SaaS app will work well. One size never fits all. Here are some ideas to help you choose a viable SaaS application development platform.
When weighing your tech stack options, you should evaluate five essential areas.
1. Can We Buy It or Should We Build It?
Over the years, we’ve worked with many “NIH” companies – “Not Invented Here”. They prefer writing their own version of everything, even though there are inexpensive commercial options available. In many cases, the off-the-shelf solutions are customizable, well-supported, and cost-effective. So before you roll your own, look at what the market already offers, from a system and component level. If you were writing a CRM, for example, there’s an entire ecosystem around Salesforce. You could build a customized environment on their globally-renowned platform, or you could write a CRM from scratch. If you need to include a chatbot in your application, you could choose from a vast array of existing tools, or you could write your own chatbot using smart APIs from Google. Both cases reveal business decisions you’ll live with for a while. Build vs. Buy decisions should be based on gaining a competitive advantage in SaaS. If you can create something better/faster/cheaper, build. If you can’t, look for off-the-shelf alternatives you can live with.
2. Will the App Run in the Cloud or On-Premise?
Building in the cloud, from our perspective, should be the default choice. In some cases, however, security requires building on-premise solutions. If you’re not sure whether your SaaS system should reside in the cloud, ask cloud solution vendors what they suggest. Experienced cloud companies have a good perspective on security — it comes with the job — and can help you determine your best destination. Working in the cloud affords a choice of whose cloud — AWS, Microsoft Azure, Google, or smaller (ha!) vendors like IBM and Dell. Yet another factor in cloud applications, one with long-ranging implications, is the ability to develop serverless applications. Microservice and FaaS (functions as a service) architectures are the next big thing (or the current big thing) in software development…
3. What Database(s) Do We Need?
Your SaaS application will require a database. You have hundreds of options, including traditional SQL databases and modern NoSQL databases. SQL databases define relationships using structured tables, where you can add, edit, delete, and search for records. SQL relational databases include MySQL, MariaDB, Microsoft SQL Server, Oracle, and PostgreSQL. NoSQL databases are not relational and have no fixed schema. NoSQL (“Not Only SQL” or “Not SQL”) includes a variety of database technologies that can store structured, semi-structured, and unstructured data. It is often used for big data and real-time web applications. NoSQL databases include MongoDB, Redis, Amazon DynamoDB, Couch base, and Cassandra. SQL is a good choice for applications that need pre-defined structures and set schemas, which ensures more consistency (e.g., accounting). NoSQL is suitable for rapidly-growing applications with large data sets with loosely-defined structure (e.g., sensors).
4. What Programming Language(s) Will Work Best for 3-5 Years?
Programming languages are like religions. People live and die for them. The higher the skill level developed, the more a developer loves the language. A survey of the market shows hundreds of languages with hundreds of frameworks, making it a challenge to pick one that you can build a product for a 3-5 year window and not have “developers’ remorse”. We’ve seen platforms and languages come and go, following trends from successful teams. As we write this, popular languages include JavaScript, Python, Java, C#, Perl, R, and Go. If we had written this ten years ago, you would have seen PHP, ASP, Ruby on Rails and C++ in the mix. Consider your development team’s skill level first — you can use an unpopular language and do great things with it if you have experience. That said, two other criteria to evaluate are the lifecycle and talent pool available. In 2000, there was a shortage of COBOL developers, so they made bank on Y2K. There are certainly fewer of them today because the needs moved in a different direction. Young developers gravitate to what the job market pays well for (e.g., Python, JavaScript, and Java). “Riding a dinosaur” is challenging when you need to hire, so the lifecycle of your platform has a bearing on your long-term HR plans.
5. Are There Special Frameworks for the Language(s)?
Have you ever heard of Laravel, CodeIgniter, Symfony, or Zend? You probably know about Angular, Vue, JQuery, and Bootstrap. They’re all frameworks (the first for PHP, the latter for JavaScript). Frameworks exist to speed up development, standardize coding methods for teams, and reduce errors. When you pick a language, frameworks are a corollary. If you choose PHP, for example, you run the risk of “cowboy coders” building unstable, inconsistent, bug-infested software. Adding a framework immediately sets some standards and boundaries on how to build, front and back.
6. Should We Deploy on Windows or Linux?
After choosing platform, database, and programming language, the operating system becomes fairly obvious. If your technology stack leans toward Microsoft, Azure is probably going to be the most affordable way to house your Windows-friendly apps. Using NoSQL and JavaScript would probably push you toward Linux, which would offer performance and cost advantages. Just as programming languages can be religions, so can operating systems…
The Importance of Choosing the Right SaaS Application Development Platform
Building a cloud application, especially in today’s rapidly changing digital ecosystem, is not a set it and forget it operation. Long-term thinking is essential. Foundational decisions will be with you for years, and every day sets the foundation further into stone. You must build, listen, and adapt to grow a SaaS business. Some of the core benefits offered by SaaS platforms are frequent updates, feature integrations, and support. If you or your team aren’t prepared for or excited about making a long-term and regular commitment to product development and maintenance, it may be a good idea to consult with and hire an experienced team of SaaS developers. An outsourcing company will be able to offer industry insights and advice tailored to your business needs. If you do need help, work with someone to evaluate these development platform questions. Whether you need outside help or not, do yourself the favor of weighing each decision carefully.
Leave A Comment