Software engineering isn’t cheap. High-quality development costs money, but it will surely lay the groundwork for many years to come. Like building a house, laying a solid foundation and doing things the correct way will provide you a base to build upon and grow. Building the right development and testing infrastructure at the first time will make the best return on investment you can think of. Let’s look at some different approaches – and deployment options that are available out there.
Very often the most important criteria for a product acquisition – when a person or company compares between different products – is based on the actual product pricing. If the comparison is strictly done on a basis of what is the license fee (price) of the product, evaluator doesn’t necessarily take the TCO – total cost of ownership – of products, infrastructure and tools into consideration.
In a nutshell, the TCO is a financial estimate intended to help evaluators to determine the direct and indirect costs of a product during its life-cycle. In a majority of the cases, it really makes sense as a significant portion of the price is directly related to the physical, actual work. When looking at different ‘forms’ of expenses, it can be divided to two different expenditures: An operating expense, operating expenditure, operational expense, operational expenditure or OpEx is an on-going cost for running a system. Its counterpart, a capital expenditure – CapEx – is the cost of developing or providing non-consumable parts for the system.
A bit more in details: CapEx is a business expense incurred to create future benefits or to add to the value of an existing asset. For example, a mobile app developer might buy new assets, like mobile devices, tools, infrastructure hardware, software or other equipment, that will be useful for the development and testing of their products. Typically these expenses are long term and will provide benefits during the full life cycle of development.
OpEx refers to the expenses that the mobile app developer spends in order to get their day-to-day activities going on and to get their infrastructure fully working. For example, mobile app developers have costs related to wages, utilities, maintenance of the infrastructure and the system, which all fall under the category of operational expenses.
This is the first blog in The Investments in Mobile App Development and Testing series and focus is on a brief comparison of two different approaches, deployment options for mobile app development and testing – the in-house and cloud-based solutions.
An in-house solution is something more traditional compared to today’s cloud-based software solutions. It is typical that at the beginning when an in-house solution is acquired in use it involves more expenses as you need to buy a license and get the hardware infrastructure (e.g. servers, devices) in place.
Naturally, the operative expense will be there as well and you need to take care of maintenance of the system, software (and sometimes even hardware) updates, fixing and resolving problems with the system and probably many other smaller tasks that eventually makes financial burden to accumulate. For example, when running an in-house mobile development and testing lab with tens powerful and power-hungry server hardware, hundreds of mobile devices and additional equipment needed for that, plus cooling of the room, you suddenly see some peak in your electricity bill. Well, that is a small example but there are lots of smaller examples that eventually make the bill quite expensive.
One significant cost of building and dealing with these more traditional solutions is naturally the cost related to work (salaries). Typically, setting up isn’t necessarily expensive, but running the system 24/7 can make astronomical.
The CapEx, in this case, is the acquisition of server, device, networks, facilities and other types of equipment. Depending on how large environment you are setting up but this can be anything between 5 to 20 % in total costs during the life-cycle. Another important item within in-house solutions is the deployment costs. This ‘deployment’ can include some integration work of the new software/environment with your existing environments. We’ve heard people claiming the integration, deployment, and all configurations related to this are between 5 to 15 % of total costs. Again, it hugely depends on how large is the system and how much integration and configuration is needed at the beginning.
The maintenance of the environment includes all types of equipment, back-up servers, storage, network connections, software updates, administrative tools and e.g. support for internal resources – and typically varies between 5 and 15 % of total costs. The purpose of maintenance is just to make sure the work, development and testing, can proceed smoothly without any/little interruptions.
The major part of the costs with in-house solutions is related to the OpEx aspect – running the system, making sure servers, devices and all other parts of the infrastructure is up and running. As this varies quite a lot depending on how much resources are used to keep the system up and running, it is still the major part of the costs with in-house solutions (50-80% of total costs).
The typical amortization period for all those investments done in hardware is around 3 years. After that, servers and devices are pretty old and have become obsolete for development and testing.
Cloud solutions provide an instant way to build mobile development and testing labs. The greatest benefit of these solutions is that you don’t have to set up any server hardware or connect any physical mobile device in order to use them seamlessly as a part of your development process.
The majority of the costs related to cloud-service are included in the license fee (price) of the service. You very rarely even need any other software to be purchased to use these services.
Typically the setup costs with a cloud-based solution are minimal – from our experience, this is between 2 to 5% of total costs. For example, some basic installations to make the cloud-based solution fit with the existing system/environment and get everyone in the team to use it. The same goes for deployment and the basic integration for example with existing used continuous integration environment, development tools, build systems or any internal infrastructure software – and this also plays a minor role in total costs (3 to 5%).
The recurring cost naturally is the license fee/price of the service. It’s worth of noting that all maintenance, server, device and other hardware acquisition costs are included in the license fee/price of the service. From our experience, this can be around 50 to 80% of total costs, including the service itself, training, updates, security, support and basically everything that is needed to make the service running. There are lots of benefits with this approach, and we will focus on those in the next blog.
Finally, some OpEx aspects of the cloud-based solutions, such as administrative costs, analysis of the usage, monitoring of the system and so on can make 5 to 10 % of total costs.
The best and the most suitable deployment option whether it is a full in-house solution with your own devices, servers and other infrastructure – or fully hosted for you, depends on various aspects. For example, if you are OK to share devices with everyone else, then the public deployment option will work you like a charm. In addition, you have access to all the latest and greatest devices – globally. But, in case you need to have device access instantly and only share those devices with your own teams, the private cloud version will make your life a lot of easier.
We’ll provide a detailed, thorough comparison of these different deployment options in the third, the final blog of this series, so please stay tuned for that!