Software development for dummies
Software is all around you. Every computer programme and mobile app is software. You cannot escape it and probably use it every day. As long as you only use it, the programmes often speak for themselves. But as soon as you start talking about its development, you quickly lose track. No matter how easy a programme or app looks on the front end, a lot of time and effort has probably gone into its development. It is a specialised job, which not just anyone can get to. So a field has formed around software development. And, as in any field, there is jargon.
Enter the conversation with Koen!
Are you going to work with a software developer, or do you want to develop it yourself? Then this jargon can be a barrier. You want to understand what you are talking about when discussing software. To make software development more accessible and lower the threshold, we have compiled a list of terms that you might come across in the beginning. This will give you something to hold on to when you get involved in this specialist field.
The software foundation
Let's start at the beginning: what is software development? It is important to know what you are getting into and within which framework all that jargon occurs. Software development is a broad concept and includes the entire development process: from start to finish.
Software consists of various components, but everything ultimately comes down to entering code. But there is so much code, and the combinations are endless. To make the work more manageable, a certain framework is therefore often used. A framework is a certain selection of code standards and libraries used in the development process. Developers know, from the code standards, how advanced the code they are working with is and use the libraries to extract code so they don't have to write it themselves. This allows a developer to build faster, and to work better as a group because everyone sticks to the framework.
An open-source framework is a complete framework that, with a licence, may be studied, modified and distributed. It offers many developers a foundation for their new software, because they can already achieve a lot with only modifications to the code. This makes a developer more efficient and the development process much less time-consuming than when a program is built from scratch.
API stands for application programming interface and is, in short, the link between one piece of software and another. This link is necessary because the code of different software often works slightly differently. For example, do you want to use new software, but still keep all the data from the old software? Then a good API will make sure that all your old data comes back in your new software.
Once the framework is determined and all the data, via API, can be linked, you also think about how it will be presented. This is where User Experience and User Interface design comes in. User Experience (UX) design is about how an app feels. The focus is on usability and overview of a programme. User Interface design focuses more on how an app looks. The focus here is on usability and presentation. For example, if you have an app, UX design determines how it is structured and UI design that the 'return' button is at the top left of the screen.
What can the software do?
When talking about the foundation in building software, it is also important to have a view of what it can ultimately do. There is plenty of jargon here too. Some terms you may have seen come along before because they are regularly mentioned in news coverage of technical development. Here, we explain them and ...
Artificial Intelligence (also called artificial intelligence) is, in a nutshell, human intelligence in computers. It means that computers can perform tasks that require intelligence in humans. Think, for instance, of a personal assistant on your phone, to which you only have to give a command like "call Jan Jansen", and he does it for you. However, artificial intelligence does not think for itself, but on the basis of algorithms. Real human thinking is therefore not (yet) possible, because if something deviates from the algorithm, a computer will come up with a creative solution less quickly (or not at all) than a human.
For now, the algorithms that provide artificial intelligence are introduced by developers. But machine learning also allows a computer to teach algorithms to itself. Indeed, machine learning means that computers learn from the application of existing algorithms, and use them to form new algorithms to work more efficiently, or perform more. If you have a programme with machine learning components and your company suddenly doubles in size, the software can, for instance, adapt itself to handle double the traffic without the need for a developer.
(Big) Data Analytics / Predictive Analytics
Is there a lot of data circulating in your software? And do you want to be able to draw conclusions from this data? Then it is important that (part of) your software focuses on data analytics. Data analytics examines all your data and provides you with conclusions on the basis of which you can make better business decisions. This is also done using algorithms, and machine learning can also be applied here. In fact, machine learning allows you to predict the future with Predictive Analytics! Machine learning algorithms look for coherence and dependencies in your data, and use this as a basis for predicting future data. In short, smart software for better insight into the possibilities for your company.
Is that all?
Well, no. Of course, software development is much broader than just the concepts mentioned and explained here, but any knowledge is a good thing. This knowledge will in any case put you on the right track to an overview of the wide world of software development. Are you curious about the possibilities of good software for your company? Or do you simply want more detailed explanations of these or other concepts? Contact Us for professional advice or take a look at the software we offer.