Software development is normally carried out by highly trained computer programmers. Programmers will create software in programming languages such as Java or C#. There are also website programming languages such as ASP and PHP. The end users of the software have to rely on telling the programmers exactly what the software has to do, and this can lead to problems...
The problem with software development is that the programmers who create the software are rarely the end users of the software. Consequently without expert guidance they may end up creating software that has the wrong features for the end users, or is difficult for the end users to use.
A solution to this problem is to use a so-called end user development tool. End user development tools have been around for a long time. One example from the 1980's was software for personal computers that allowed non-computer programmers to write their own computer games.
End user development tools can result in great pieces of software because the end users can create their own software, so the resulting software can meet their needs exactly. An example would be a physiotherapist writing their own software for physiotherapy practice billing. Sadly end user development tools never really caught on.
End user development tools are, however, having a bit of a resurgence of popularity of late. Two examples of new end user development tools are Microsoft's Sharepoint Portal Server and Apple's Apps for the iPhone and iPad.