The world is eating software. 🌎 🍴🌐
The above is a tongue-in-cheek response to the famous words of Marc Andreessen, ‘software is eating the world.’ Marc’s words hail from his wondrous post, dated 2011, and titled, Why software is eating the world.
In 2011, software was indeed eating the world. A new wave of digital pathfinders developed and launched innovative software that would inevitably take the internet by storm. We had a surge of companies such as Amazon, Hubspot, Mailchimp, Salesforce, and Pipedrive. Companies excitedly swarmed to these platforms and equipped themselves with newfound superpowers. The digital revolution was upon us. Productivity hit new heights, the startup ecosystem exploded, and SaaS was prominent.
For years, the momentum continued, and a few ‘digital heroes’ created for the many. It was great; transformational in many cases. But it wasn’t enough, and it isn’t enough. We’re crossed the chasm, and we want more. We want software to be specific to our needs and problems, and we’re more hungry than ever. Sadly, there are not enough developers to keep up with demand. Generic COTS (commercial of the shelf) software will continue to grace balance sheets, as will the rising cost of developers. But, change is upon us. A new era of custom software development is here. An age that expands the power of creation, is specific to the consumer’s needs, and is economical.An era where many digital heroes build for a few.
And it’s all driven by a new generation of custom software development.
What is custom software development?
Custom software development is the process of designing, developing, deploying, maintaining, and supporting software for a specific problem, user, or group of people.
The key to understanding custom software development is to realise the solution being developed is tailored for a single, specific purpose/problem - one which usually cannot be solved by pre-existing solutions.
COTS vs Custom Software?
COTS stands for commercial of the shelf. COTS software is developed and distributed via a 3rd party vendor. COTS software comes in all different shapes and sizes, from image editing software to enterprise resource planning (ERP) platforms.
Traditionally, COTS software is less expensive than undertaking custom software development. It follows a one-to-many model (where one company will build and sell software to many customers). This model allows the COTS company to sell the platform for a fee not based on development time - which is cheaper. But, recently, the time to build custom software has dramatically decreased, which is reducing the cost of building custom software - we’ll touch on this in more detail later. COTS software can also become expensive if you require customizations external to the company’s roadmap.
One significant benefit for choosing COTS software is support. COTS companies dedicate a lot of time and resources to support and customer care in the form of docs, tutorials, etc. Generally speaking, this is not case for custom software.
How is custom software development changing?
In the last 30 years, custom software development was primarily utilized within enterprise. SMEs simply did not have the time or resource available for custom software development. And, when COTS software did not solve the problem for SMEs, tools like Excel and Access were drafted in and a solution glued together.
This is no longer the case. A solution is upon us - the no code platform.
No code platforms provide an abstraction layer on top of software development, and replace coding with… clicking. It really is that transformational. No code tools like Budibase offer users an all-in-one platform where they can add data to tables like using a spreadsheet, create user interfaces like designing a presentation, and automate everyday, mundane tasks like creating a flow diagram. They are truly that powerful.
With these new tools, custom software development is possible at a fraction of the cost, in a fraction of the time, and accessible by non-engineers. But most importantly, the power is now in the hands of the experts - the people who know the subject/problem better than anyone else. The software user, is now the software maker.
Why custom software development is important?
No longer do SMEs, startups, or entreprise organizations have to suffer at the hands of the company spreadsheet, or partake in tedious resource-absorbing processes, or pay over-the-top prices for generic software which only caters to 20% of their needs. You can now take control. You are now the artist of your solution. Let’s look at the benefits in more detail:
Custom software development focuses on your specific problem. You can fully customize your new software to your requirements - no bloat, no strange UX, no overly engineered component. You specifically design and develop to solve your problem - nothing else.
Investing in COTS, is investing money into another organization. Building internal software is a great way of investing in your own organization. In addition, there’s also potential to sell your new software and make money from it - depending on the general make-up of the product and if it can be packaged and distributed easily. But, you can be guaranteed, that if your product solves your solution, it will solve someone else’s.
With COTS software it is hard to scale solutions to fit new requirements. There is limited access to the code in some cases and you have no say over the roadmap, so changing the software can be impossible, leading to scalability issues.
Having the freedom to make changes to your product is crucial. It improves scalability, allows you to react to market-changes quicker, and user satisfaction.
COTS platforms often increase their prices on an annual basis, making budgeting challenging. With a lack of control over the roadmap, it can also lead to hiring costly COTS developers to build certain functionality to meet your changing needs. With custom software, you control the costs and decisions.
When using a third party supplier, you are giving them access to your data. When building custom software, you control the data and where it is stored.
How much does it cost to develop custom software?
Traditionally, it will cost you $30,000 - $80,000 to hire an engineer(s) to develop custom software. The price can vary dramatically and depends on the size and scope of the desired project, and the quality/experience of the individual/team you seek to hire.
Primarily, the following impact the cost:
- Software size
- Software complexity
Thankfully, due to technological advancements and the emergence of no code platforms, developing custom software can cost you as little as $0 to $10,000. By abstracting coding, these platforms empower non-coders to build full-stack custom software. So, in some cases, you could build the software yourself!
And if you decide you are not up for the challenge, you can hire a visual developer/no code expert to do it for you. What’s great about this; is that the cost will be less than a traditional custom software developer, as the speed of development is quicker. And as we know, less time = less cost as developers are paid by the hour in most cases ($50 to $1000 per hour).
Time it takes to develop custom software
Traditionally it takes 4 to 6 months to build custom software. With a no code platform, it can take between a few hours to a month. The time savings are huge. But, with speed comes limited flexibility - something we’ve thought long and hard about at Budibase and we feel we’ve found the perfect balance.
Custom software development process
In a previous post, we covered how to build a web app in quite a lot of detail. I would advise you to visit that post if you want a beginner’s guide to software development. At Budibase, we divide the traditional custom software development process into five stages. These stages are linear and often occur consecutively.
With a low-code platform, the process is not as fragmented. There are only three steps. Below, I will illustrate the procedures for both.
Traditional custom software development stages
The first and most crucial stage for any development project. Never skip this step - people often do, and it leads to issues down the line. At Budibase, research constitutes around 60% - 80% of all development processes. Research makes great designs possible!
Within the research stage, you will want to test assumptions via user research. This will reduce risk and help your team develop faster. Having confidence is what you are building is cognitively easier too.
During the design stage, you quickly mockup a wireframe to engage with users and source feedback. Traditionally, this would be done with pen and paper, and more recently with a prototyping tool such as Figma and XD. These platforms are great for creating initial static prototypes but lack interaction, which is a large part of the design and feel of the software. The work produced by these platforms will have to be developed at a later stage, which is not resourceful.
Traditionally, you would hand off your designs to a development team. The dev team would then build your solution and provide you with the end-product when the project is done. This stage can take months and ofter runs beyond the agreed deadlines. Close communication with the developers is required as you do not want to be shocked once the product is delivered.
Deploying software can be a scary process for many. Hosting platforms are infamous for not being very user friendly. Their pricing models are also offputting. Thankfully, with no code platforms such as Budibase, you can deploy with just the click of a button. Or, if you are tech-savvy, you can deploy to your own infrastructure - the decision is yours!
Maintain / iterate
Maintaining and supporting custom software is often an afterthought. One of the most frustrating elements of traditional custom software development is requesting further modifications/support after the project has been delivered. It is ubiquitous for custom developers to deprioritize your project, as they have a new project at this stage. The result of this is long response times and slow iterations, which leads to unhappy users.
Modern, no code custom software development stages
This is mostly the same as above.
As you can see from the above, the design, develop, and deploy stages are separated. This is because they require different products, skills, and sometimes people to fulfill the tasks within the different stages. With no code platforms, these stages are completed with the one tool, and in some cases, by one person. All the heavy lifting is done for you by the platform. And they’re fast! Due to the speed of a no code platform, in some cases, you can build your custom solution in the same amount of time it would take to mockup a prototype using the tools in the traditional design stage (XD, Figma, Sketch). With no code tools such as Budibase, you have pre-composed templates and components, making it quick and easy to build dynamic interfaces with real forms, tables, kanban boards, interactive charts, email automations, etc.
Because you design and develop simultaneously, you save a lot of time. Also, you control the UX, UI, and everything else, which results in no surprises at the end - and all without coding!
With no code platforms like Budibase, deployment is simple - it’s one click of a button, and that’s it!
Maintain / iterate
You do not need a developer to maintain or iterate on your software. With tools like Budibase, you have the power to make changes to your software. You rely on no-one but yourself. You engage with users, and you iterate, making the product better and your users happier. Most no code tools will also manage hosting and infrastructure for you.
There are several risks involved in developing custom software. That number is much greater when dealing with traditional custom software development. Below, I’ve summarised the five most popular risks (which I have noticed) involved with the new generation of custom software development:
- The problem is not defined well enough.
- Lack of on-going communications with end-users.
- Poor planning/scoping.
- Poor documentation/instructions.
In other words, try to do your research, keep things simple, and always communicate with the end-user.
Custom software examples
On a recent call with David Singleton (lead engineer at Stripe), we asked David when was the right time to buy COTS software or build your own. David explained, at Stripe, they generally build their own tools. But there are situations where building their own tools is not feasible as they would not be as good as the available tools on the market - he used Github as an example. I would agree with this sentiment. There are tools, which for most companies, are simply out of reach. No code tools are best for small web applications, like CRMs, ERPs, Inventory platforms, bug tracking, employee management, booking platforms, etc. Below, I have listed my three favorite examples of custom software development:
Percolate is a content management system for the enterprise. Early in Percolate’s life, CEO Noah Brier knew the importance of automating processes and distributing knowledge. He wanted the right people to have the right information, no duplication, and no wasted time. To solve these problems, he decided to build custom software / internal tools. One of Percolate’s tools is called Barista - a knowledge exchange platform, which routes questions to the right people. Noah quickly noticed that one of the biggest problems within an organization is communication between business and product teams. Barista solves this problem by automatically populating user questions and automatically funneling the question to the product expert.
Pretty neat, right!
Oribi is an all-in-one analytics tool, led by CEO and serial founder, Iris Shoor. One of Iris’s main issues, recently, has been how to work smarter and more efficiently. To solve this issue, Iris created custom software, specific to her company’s problems. In total, she has created five tools, from a Slack integration through to a debugger. The tool I find the most fascinating is their dashboard. Within their dashboard, you will find the company’s milestones, monthly and weekly task lists, monthly and weekly goals, website traffic, and details on new users. The reason Iris decided to build their dashboard was that other analytics tools only focused on displaying data, rather than content.
Monese is made up of two sides; outward-facing apps and inward-facing apps. Part of the later is a web application called Backoffice. Monese built Backoffice to help their internal teams communicate with their customers better. Backoffice helps their employees answer video calls, open accounts, answer questions, resolve automatically generated tasks. In the future, they hope to have a dedicated team, which focuses on maintaining and improving Backoffice - pretty incredible!
I hope the examples above inspire you. Due to platforms like Budibase, the barrier for building custom software is at an all-time low. You don’t need to be a developer. You don’t need to know how to code. And you can build custom software in minutes, not months. A new generation of software development awaits us.
Thank you for reading and good luck. If you are interested, please sign-up to Budibase below, and get started (it’s free and no CC required).