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.