
What is Low Code | Low Code Guide
Learn how low-code development enables you to create applications faster. Read the OutSystems Low Code Development Guide for a complete overview. No form fill required.
Software is the set of instructions that tells these computers what to do. And software development is the process by which computer programmers deliver value to consumers and/or businesses through the use of technology.
Software is central to the notion of the programmable computer. This concept was first proposed by Alan Turing in 1936. Seven years later, IBM president Thomas Watson famously said,
“I think there is a world market for maybe five computers.”
Little could he imagine that around 275 million personal computers would be shipped in 2020.
For most users, there are two types of software.
For those people that create software applications, there is also a third type – computer programming software. This provides them with the tools they need to go about the process of creating the applications we all use in our daily lives.
Off-the-shelf software provides all (or, at least most) of the functionality we need. As a result, this is what most consumers and many businesses choose to buy. Until recently, this software was hosted on hardware devices owned and managed by the enterprise using the application.
Today, more and more firms are using Software-as-a-Service (SaaS). In this delivery model, software is hosted on the cloud and accessed via a browser. With SaaS, the enterprise typically pays a per-person, per-month fee that eliminates all ownership and maintenance costs.
However, some companies feel they have unique needs. Others are using digital technology to generate business advantage. Such companies may therefore choose to develop their own custom software using in-house teams. This can then be deployed on-premise or on the cloud.
Different types of people are involved in creating software.
Chief among these are the software engineers responsible for the design of the application as a whole. They apply engineering principles to software creation and software testing.
The bulk of computer programming is carried out by development teams. They work with key stakeholders to determine what their needs are; then use development tools to implement the application and ensure it is aligned to the design.
Both groups make use of the Software Development Life Cycle (SDLC). The SDLC is a structured process that enables efficient creation of high-quality software. It breaks down the long, complex task of software creation into discrete steps.
The benefits of the SDLC are many and varied. Chiefly, it ensures that software is created with maximum speed, and minimum risk and cost. It does this by providing a standard framework which defines all activity and outcomes.
Multiple process models are available for the SDLC, each of which has pros and cons. If you select the wrong model for you, this will increase the risk of project failure. So, this is a decision that needs careful thought. The most popular models in use are:
There are usually six stages in this process.
Software creation is complex, so project management of the SDLC is crucial. The role of project managers is varied. They manage all the people and teams involved in the project. They ensure quality assurance so that the completed application is stable and fit for purpose. And they must keep all those with a stake in the success of the project fully up to date.
Secure SDLC (SSDLC) ensures that security is built into software creation and not bolted on at the end of the process. It gathers best practices that aim to add security to the existing SDLC approach. More than just a process, SSDLC requires a mind shift from development teams. It is no longer good enough just to think about functionality. Instead, it requires a focus on security at each phase of the SDLC. This approach ensures that security flaws are spotted earlier – and that the costs of fixing them are reduced.
For decades, all software was proprietary or ‘closed source’. This protects the intellectual property of those that created the software. On the other hand, it limits the ability of developers to adapt the code to their unique needs. Only the original authors of the code are legally allowed to copy or amend closed source software.
Their customers are asked to sign a license agreement that ensures they do not tamper with the code in any way. Microsoft Windows and the Apple macOS are both examples of closed code software.
In the mid-1990’s, Linux – an open source alternative to the Unix platforms that powered many businesses – became popular. Since then, the open source movement has grown into a widely accepted foundation for software creation. According to opensource.com, the term refers to
“Software with source code that anyone can inspect, modify, and enhance”.
It is free to use, but conditions attach to this. Any improvements you make must be given back to the open source code community that created the original code.
Today there are 180,000 open source products and they are used by 90% of companies. Many commercial companies choose to donate their proprietary code to the open source community. For example, Google donated its Kubernetes platform for running containerized workloads to the Cloud Native Computing Foundation. In doing so, it made its technology the de facto industry standard.
In truth, it is impossible to say with certainty whether open or closed source software will be the right one for you. There are pros and cons to each approach. The biggest demerit of closed source software is that you have to pay for it. However, many people choose to do so because they believe it offers a better alternative to a free product. For instance, a million businesses worldwide use Microsoft Office 365. This is despite the fact that Google G Suite is available at no cost. Proprietary software also tends to offer a high degree of integration with the other parts of your IT estate.
Fans of open source software point to the fact that the community consists of perhaps tens of millions of people worldwide. That is a huge resource that offers an almost limitless capacity for innovation. On the other hand, open source software may be tricky to use and may not be compatible with other software products. There may also be issues with warranties and with getting the support you need.
The biggest challenge of software development is that it’s hard. It takes time (and patience!), and it’s not really over once you hit publish. In this ever-changing world, you need to continually evolve it to meet users' demands.
The good news is that now there are modern development approaches with embedded tools designed to accelerate app development and automate much of the application lifecycle.
OutSystems is a software development solution that helps developers build serious applications quickly and efficiently.
A visual, model-driven development environment with industry-leading AI-based assistance ensures apps are built in days or weeks instead of months or years. Platform services, also with AI, provide automation enhancing the entire application lifecycle so apps can be deployed with a single-click and managed with unparalleled ease. You can give it a try by signing-up for our free edition.