I would like to regard software development on the basis of the following questions:

Who works in software development?

The fields of activity in software development are extensive. Parties involved during the software development are the client side, the development team and the users of the future system. The users often belong to the client side.

The client side usually consists of a project manager and coworkers of the specialist area. Their goals and expectations are in particular budget observance, adherence to the allowed time and adherence to the quality requirements. The tasks of the client team are the creation of the product requirement specifications and the Controlling of the project.

The development team usually consists of its own project manager, the developers and the quality assurance. The development team has the task to supply the system "in time" and "to budget" to the client under adherence of the quality and performance requirements . To the special tasks belong the production of the data processing concept and the creation of the data base design basing on the product requirement specifications. Based on those the developers will develop the code. The source code safety (by means of version control systems), the programming, configuration and code documentation are the main tasks of the development team. The quality assurance is responsible for code reviews and test of the code on the basis of test cases. It assigns errors to the developers with tracking tools, grouped according to urgency.

The users have the task to give feedback over the system either as testers or as final users. The users expect a simple use and a high performance and reliability of the system.

In addition there are other groups of persons, which can be settled in different places. E.g. the operating/production team. It has the task to guarantee the operating of the system and to install the finished software. In addition also someone is assigned to create the documentation (user manual) of the application and an assistance (on-line help). After completion of the software development there is usually still another smaller maintenance team, which works on errors during production and on change requests.

What is software development?

The building of software is comparable with the building of a house. The good training of all parties involved is an important factor and the foundation for the successful conversion of the requirements, because in contrast to the building of houses the abilities of the coworkers are the building material, of which the system consists.

Software development is an iterating process, in which, starting from client requirements (conception phase) over the involvement of the development team (development and documentation phase) and following tests (test phase) a finished software results and will be operated (production and maintenance phase).

Which abilities does a software developer need?

The ability to recognize complex interrelations and offer them to the user in a simpler way is surely one of the main abilities, which a software developer (in the closer sense) must bring along.