What Exactly Are 'Deliverables' In Software Development?
Software development has a lot of jargon, and one of the tricky parts of working in the industry is that not everyone uses the jargon consistently.
The words app and application get used quite liberally these days as all-encompassing terms to describe almost anything that's software. For business people, applications are usually thought of as digital interfaces with which they interact. However, the visual experience of any software is just one piece of the puzzle - the puzzle of building what most call an "app."
The applications we are accustomed to using in our everyday lives, both professionally and personally, are not finished products that work in isolation. What does that mean? Unlike, let’s say, a Swiss-army knife, that once delivered to the customer holds all its functionality and value in of itself, customer-facing-applications require the coordination of multiple systems to properly function and deliver value; accessed via the web or on a mobile device.
For example, a database application is needed to read information from and write to a computerized database. An operating system is an application needed to manage hardware resources and allocate memory to other applications running on a device. A server application is required to receive and respond to requests made over the web. A front-end application is required whenever there's a user needing to visually interact on a screen.
Considering this, to bring any new idea for an "app" to fruition, a whole collection of other applications must either be developed or acquired to handle the many discrete, yet critical, supporting responsibilities. Much like how a great company is not a product in the market, but instead the systems, procedures, and infrastructure that bring a particular product to market, great software can be thought of the same way.
The easiest line that gets drawn in the sand is one between the front-end (the visual interface) and everything else. For the most part, everything other than the front-end application tends to get grouped into what we call the backend. While a backend may just sound like one thing. It absolutely isn't. The backend of any application encompasses all of the non-interface resources, which makes it a collection of other applications and systems.
Usually, a backend consists of three key parts: a server, an application, and a database. If you book movie tickets or buy shoes online, you're interacting with the front-end. After entering any info, like a shipping address, that data gets sent to a server application that will receive/respond to the request and pass any necessary information to the database application to be stored. To highlight these separations further, booking tickets on your cell phone while in Florida might send the information to an application running on a server in North Carolina that connects to a database housed in Oregon.
The horror stories that circulate about entrepreneurs and businesses losing large investments on applications that "didn't scale", "weren’t secure", or "kept breaking" rarely, if ever, have to do with the front-end. Instead, these stories stem from oversights made on the backend for which the front-end may have suffered downstream symptoms. Choosing and properly managing a database, maintaining an API, keeping up with the latest security standards, and enforcing user scopes that prevent data leakage, are just some of the considerations backend engineering teams need to specialize in. None of which are trivial!
Furthermore, every technology choice has its pros and cons. Very often, the decisions engineers make in selecting technologies for a particular project are not guided by deciding what would be best for the project, but rather what they are most familiar with themselves or excited about learning. Put simply, this usually results in projects getting built and the principals later finding out that the whole system needs to get re-written with the "right tools for the job".
We built 8base to accelerate the development of enterprise-grade web and mobile applications for businesses, both large and small. Along the journey of formalizing that vision, we realized that it was in handling the backend that we could best support other’s innovations. With a team that has decades of experience building venture-backed SaaS products and enterprise software, we're intimately familiar with that many potholes along the road.
So we asked ourselves, "how can we help others build better software faster and cheaper?"
Our answer manifested into the 8base platform. By having a ready-to-use backend (Database, secure API, application services, integrations and more), we help entrepreneurs and business people innovate on software at lightning speeds, without having to worry about backend vulnerabilities themselves. While thousands of developers worldwide are building applications using 8base, our 8base Labs team works directly with businesses to get involved in building software products in record time.
To learn more, feel free to reach out to us at hello@8base.com.
We're excited about helping you achieve amazing results.