Software
Software and its development
In 1985 a book by Joseph Fox, a project manager from IBM, entitled Software and Software Development, was published. This book formulated the basic principles not only of software development, but also of software project management. They were formulated at a time when there were no icons like ITIL, Agile and others. Recently I reread this book and was pleased to find that the main points of the book are fudimentary and without any doubt influenced what we now call agile development methodologies.
Software Facts
- Software development proceeds simultaneously in two opposite directions.
- The life of any program usually passes through three stages, and in their work developers and designers should take into account all these three stages. Usually only the development stage and the usage stage are considered. However, in the early stages of development, the support (maintenance) or continuing development stage must also be kept in mind.
- Software development goes through the following six stages: requirements definition, design, writing commands, linking, testing and documentation.
- The development of large software systems often depends on the hardware available.
- Any process can be expressed by several different “correct” sequences of commands.
- Software is abstract, which complicates the development process.
- The main tool for creating new software is the computer and its software.
- When developing software the main difficulty is usually not the function to be performed by the system but the methodology of interaction with the user to which the system must obey.
- Some types of software can be developed using the same methods as the hardware, while others cannot.
- Proper software is not subject to any kind of failure. The term “support” in relation to software is therefore a misnomer.
- The development of large programs is a very multifaceted activity, far from being just about working on a computer.
- Most software can never be fully debugged, even after several years of testing and use.
- Software development is often a very time-consuming and expensive process.
- Software is a means, not an end.