Hamilton Robson is a technology company, specialising in audio visual and software development.
We create unforgettable experiences and solutions for ultramodern spaces.
As a Senior Software Engineer, a key part of my job role is making the right technology decisions. I feel that the role of a software developer has been advancing significantly, allowing us to be more informed in strategic decisions regarding technology selection and project direction. This has led to an increase in responsibility for security, cost management, and scalability to ensure the success of projects.
Within this blog, I will explore the key things to consider when making these kinds of project-wide decisions, including choices around building custom software, integrating with SaaS offerings and due to the significant increase in the adoption of AI services, I will also cover how we have found decisions regarding these kinds of services to be different from what we are used to.
Before diving into tech choices, developers must have a deep understanding of the project requirements, goals, and constraints. This includes both functional and non-functional requirements that guide technology decisions.
When working a new project, there is always the age-old question, should we build our own custom solution, or can we buy an existing service?
To make informed choices, developers need to assess various technologies, frameworks, and tools available in the market. Research, documentation, and staying updated with industry trends are crucial steps in this process.
Typically, the picture isn’t this black and white and will contain elements of both; you are likely working on a unique project idea, but there will be elements of it that you could utilise a SaaS offering to help. For example, Auth as a service, there are some many authentication Saas offerings out there now that handle SSO, passwordless, account resets, email verifications – that using an Auth service can save you significant development time when it comes to building your own project.
The Saas industry is currently growing by 18% each year. With an abundance of Software as a Service (SaaS) offerings and an ever-evolving tech ecosystem, developers face the challenge of selecting the right tools and technologies. As projects and companies grow, so does the complexity and significance of these decisions. Scaling knowledge across teams and products becomes paramount.
Complexity in software development is like a budget; there is a limit to how much complexity any project or idea can handle. Several factors, including team size, potential attrition and training, play a role in determining this upper limit. With SaaS offerings you have the ability to offload some complexity to another service, the benefits of this may be to speed up delivery and another benefit is that a lot of SaaS offerings will come with some form of support arrangement, to ensure you are getting the service you require.
Over the past year, there has been a surge in new AI tools to use. AI has taken every industry and sector by storm, and SaaS is no exception.
AI as a service (AIaaS) is popular for several reasons, and there are specific advantages it offers over building custom AI models. The first one being, accessibility: AIaaS providers offer pre-built, ready-to-use models and APIs that are accessible to a wide range of users, regardless of their expertise in machine learning. This accessibility allows businesses and developers to incorporate AI into their applications without having to build complex models from scratch. Using AIaaS can also save time and money. AIaaS saves time and resources, as organizations don’t need to hire specialized AI experts, invest in infrastructure, or spend time training and fine-tuning models. They can simply subscribe to a service and integrate it into their applications.
One of the major factors in choosing to use an AI service is the domain expertise, AI is a very complex area and finding in-house skill in building, training and maintaining custom models can be very difficult!
However, building custom AI models can be necessary for specific use cases, for example you may need a fully custom model, that is trained only with your own data, that you have fined tunned through multiple rounds of training. This may be because your idea is unique or to maintain a competitive edge or maybe it could be related to data privacy, if the data feed into the model could be sensitive and you don’t want the AlaaS model to use it as part of its training data.
The choice between AIaaS and custom development depends on the unique needs and goals of the organization or individual.
With this industry changing so rapidly, there are a few things you should consider when making the decision of what service to use!
Risk assessment is very important – Identify and assess potential risks associated with the chosen technology. Are there any known issues, vulnerabilities, or limitations that could impact the project? When it comes to choosing an AI service, developers must also consider the ethical implications of using AI services, especially in sensitive areas such as healthcare or finance. Ensuring fairness, transparency, and responsible AI usage is a critical consideration.
Data privacy is also very important here, when working with SaaS and AIaaS tools, it really is important to understand, how your data is being stored/used and so reading the T&C and privacy policies has become even more important.
When accessing the risk of a service, it is also good to assess their support process, what are the SLAs if something is wrong? and what are the service guarantees? It is also important to understand deprecation windows, if the service is being actively maintained and new features are being added, you do need to factor in time in for upgrades, when doing future scope planning.
If it is an AI service you are planning on using, I would recommend doing some form of testing and benchmarking of the service to compare it to other services out there, this can allow you to assess its performance and accuracy for your specific use case.
For example, within Hamilton Robson we have been developing document checking and ID verification services. As part of our technology capability and R&D investment we regularly and actively review the capability, performance, and cost of emerging tools in this area. One area in particular is computer vision for text extraction on documents.
Recently I was tasked with assessing a range of different 3rd party computer vision offerings and in order to benchmark the scenarios, I set up the following tests:
Balancing the budget and cost implications is a vital aspect of tech decision-making. As developers we must choose tools that are not only technologically sound but also cost-effective and provide value for the project.
Something I have seen time and time again, is a service bring picked, the free tier has been amazing, but as soon as you hit that free tier limit, the costs can become unmanageable.
Some tools are advertised with amazing free tiers, and a great initial offering after free tier – but you really need to consider the scalability of your project. For example, in 3 years’ time maybe your project has tripled the number of users and you need an enterprise offering of this AIaaS, does this spike your total project costs significantly? is this feasible? is it possible to move to another tool at this point or are you locked in?
When looking at pricing options you need to try and forecast your usage overtime, a lot of providers will have pricing calculators that you can use for this. I personally like to start with pricing it for my current numbers, then pricing it for double those numbers and then pricing it for five times those numbers. This allows me to see how the pricing scales and understand if our application has scaled that much, is that price increase still feasible.
Another important thing to consider when choosing a new tool, is the risk of vendor lock-in, particularly with SaaS products. The ability to migrate away from a technology or product if needed in the future is crucial for long-term flexibility. Tech choices should remain flexible throughout a project’s lifecycle. Continuous evaluation helps adapt to changing needs, and identifying potential risks is essential for proactive problem-solving.
However, in some cases vendor lock-in is not all bad, it may lead to partnership opportunities, which could give you early access to new to market features, or you may benefit from bulk usage offers and receive discounts for signing for 2 or 3 years. It is worth weighing up the potential for long-term partnerships and discounts, with the ability/need to move services and have more flexibility, based on your particular project needs.
In conclusion, the introduction of AI services is reshaping how I as a Senior Software Engineer approach technology selection and project development. It adds a new layer of complexity and opportunity, as AI can enhance various aspects of software development, and the projects we build. We need to stay informed about AI trends and best practices to make the most effective use of these services in our projects. Additionally, ethical considerations surrounding AI usage are becoming increasingly important in technology choices.
Want to find out how the subject of this blog could help your business?
Our blended team of experts go over and above with our services to our customers, no matter what the challenge. Get in touch to find out how we can work together.