Software development is the process of developing software through successive phases. The process includes the actual writing of code. It also covers several things such as:
- the preparation of requirements and objectives;
- the design of what needs to get coded; and
- confirmation that the developed software met objectives.
Software development has many definitions. The best is that it is a process with a set of activities creating computer software products. These include their design, development, testing, and deployment. Software is a set of instructions or programs telling a computer what to do. It does not depend on hardware, making computers programmable.
Types of software development
There are various types of software development. Velvetech, a software development company, groups it into four basic categories.
Application development
It provides functionality for users to perform tasks. Some examples include:
- productivity suites
- media players
- social media tools
- booking systems
These applications can run on the user’s own PC or on servers hosted in the cloud or by an internal IT department. One good example of application development for the cloud is media streaming development.
System software development
This type provides the core functions. Examples are:
- operating systems
- databases
- networks
- storage systems
- hardware management
Development tools
It provides tools for software developers to do their job. These include:
- code editors
- compilers
- debuggers
- linkers
- test harnesses
Embedded software development
This type creates the software used to control machines and devices. Examples of these are:
- automobiles
- robots
- phones
There are several approaches to developing any of these categories.
Scrum development
Multi-skilled teams use timeboxed development stages.
Kanban development
Developers use a visual work pipeline without any timeboxing.
Sandbox development
Untested code gets isolated from productive systems.
Each category attracts different types of software developers. A medical device software developer needs to be conversant with developing safety-critical systems. A typical application software developer is unlikely to have this specialism. This is critical for all aspects of healthcare software development.
A music software developer needs musical ability. A grounding in formal music theory will also be beneficial. It will help in developing software for the notation and performance of music.
A security software developer needs more than development skills. Experience in all aspects of IT security is also necessary.
A brief history
Most people find the history of software development interesting. Some consider the first example of developing software to happen in 1810. Joseph Marie Jacquard devised a system of holes punched in cards. He used this to guide the patterns in his looms for making cloth. This technique was later adopted to program early computers by IBM, GEC, and Elliott.
Others consider Ada Lovelace as the first software developer. This was because she created a rudimentary program in 1843. It was for the Difference Engine of Charles Babbage. It allowed the designing of sequences to give instructions to select gears and shafts.
It was in 1947 when George Boole made a big breakthrough. He proved the link between logic and mathematics. In 1948, Claude Shannon wrote a thesis on how to use binary logic in computing.