Today we ask the question:
“What are the main considerations when choosing a software build technology?”
This is a broad reaching question and will surely have many correct answers that you can associate with it. However, let me start with a perhaps surprising response: “this is not the first question you should look to answer”.
The technological building blocks of your software product are of course fundamentally important. Those building blocks are tools or enablers that will help you to deliver your offering in a meaningful way. As such, you need to select the right tool for the job.
In order to select the right technology, you should first ask yourself the following 3 questions:
- Who will use my product and in what context?
Answering this question will give you insight into the end user, what they need from your product in order to achieve their goals, how they will access the product features and the resource load that each user will generate. You will be able to better comprehend the form and behavior complexity of your software. From a technology perspective, you’ll be able to determine whether or not you need a native mobile application or a responsive web application that supports mobile and/or desktop resolutions. You’ll also be able to estimate the load generated by any particular user.
An extrapolated individual user load can be leveraged to simulate what type of scale or elasticity you need to incorporate into your product framework. You will inherently need more resources (like data throughput, CPU, memory, disk space) as your user base increases, but to be prudent, you may want to reduce your resource burden (i.e. therefore reduce operational costs) as concurrent user numbers drop.
- Who will buy my product and what will they pay?
The answer to this question will also impact your technology choice as it pertains directly to your business potential. It’s important that you have qualified how much you can charge your paying customer for using your product. You may charge a one off license fee (admittedly, that’s becoming less common these days), a transactional fee akin to payment gateways (like Stripe, PayPal, etc.) or recurring subscription fee (like Netflix, Spotify, etc).
Your business case will directly impact your technology choice in that you will need to select a cloud platform (e.g. Amazon’s AWS, Microsoft’s AZURE, SAP’s SCP, Google Cloud, etc.) that offer you the right attributes in terms of resources and for the right price point - with respect to your business model and positioning. There are similarities between all of the aforementioned platforms, but there are differences in how they apply pricing. For example, with some platform pricing models you will pay a fixed recurring fee per user, regardless of the resources you use and this is predictable, but it is not elastic. With other platforms, you will pay for the resource usage, like amount of data transferred or CPU time consumed. With the latter, you can optimise more and offload cost when a user is not active. However, with a heavy user demand you may pay more to access the resources to support them. So, the technology pricing itself can determine whether or not your business case is viable and the vice.
- What third party systems will my product need to interoperate with?
Lastly, the answer to this question may also influence your technology decision. Some platforms may offer you better or worse integration options to third party systems. For example, if you needed to integrate tightly to a core operational ERP system for your product to offer value and the bulk of your clients had an incumbent SAP ERP system, then you might bend toward SAP’s SCP offering. If, however, you are looking to integrate with and support the collection of data points from millions of smart connected devices, you would probably opt for a hyper-scale platform like Amazon’s AWS. If you needed to integrate tightly into an enterprise application suite like Microsoft’s Office offering, you could make some good arguments toward selecting Microsoft’s AZURE cloud platform.
In conclusion, the most important things to consider when selecting your build technology are
- Your users (behaviour and context)
- Your business model (as it influences what pricing best suits your business)
- Your third party dependencies.
Once these questions are answered, it will steer your concept in the right direction toward finding the most suitable technology tool.
At Zoosh, we help our customers to select the right technology platforms, design future-proof architecture, develop and manage their custom business application with a state-of-the-art technology stack.
Click on the button below to chat to our team and see how we can work together.