Software Development

Software development is a broad term describing the process of developing an information system in a planned and structured way. A process includes some sense of architectural, design, test and maintenance considerations. It depends on the context and process used to develop the software. There are at least three contexts, namely: client-business, a perceived future need and personal.

Iterative development
Some of the more commonly used processes for developing an information system are: Waterfall, AUP (Agile Unified Process), RUP (Rational Unified Process), XP (eXtreme Programing), TDD (Test Driven Development), SCRUM, etc. Currently the processes can be divided into lightweight (Agile), heavyweight and hybrid. The main difference are how regulated the processes are, the order of different development tasks and how thoroughly the development tasks are conducted in each step. The regulation usually comes with the liability of micromanagement.