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’ve 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 tools.
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 realize the solution being developed is tailored for a single, specific purpose/problem — one that usually cannot be solved by pre-existing solutions.
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 of 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 the case for custom software.
In the last 30 years, custom software development was primarily utilized within enterprises. SMEs simply did not have the time or resources 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 visual development platform.
Visual development platforms provide an abstraction layer on top of software development, and replace coding with… clicking. It really is that transformational. Visual development tools like Budibase offer users an all-in-one platform where they can load and manage data, design with pre-made blocks, and connect to a library of automations and webhooks, and automate processes.
Historically, platforms classified as low-code are bad, rigid, and surrounded by a walled garden. This is different with tools like Budibase. Budibase is open-source, extensible and developer friendly. At Budibase we love code, we just don't like creating the same boilerplates, time and time again. We also don't want to be building the same APIs, and dealing with authentication.
No longer do SMEs, startups, or enterprise 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 that 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:
- Focused 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.
- ROI 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.
- Scalability 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.
- Independence 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.
- Financial control 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.
- Data 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.
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:
- The problem is not defined well enough.
- Lack of on-going communications with end-users.
- Poor planning/scoping.
- Poor documentation/instructions.
Thankfully, due to technological advancements and the emergence of low 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/low 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).
Traditionally it takes 4 to 6 months to build custom software. With a low 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.
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.
- Research 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 in what you are building is cognitively easier too.
- Design 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.
- Develop 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.
- Deploy 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 low 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.
- Research This is mostly the same as above.
- Build 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 low code platforms, these stages are completed with 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 low 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 low 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 low 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 low 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.
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. Low 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 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 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 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 full-stack developer. 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, and get started (it’s free and no CC required).
Originally published at https://www.budibase.com on September 21, 2020.