Software Engineering

When a computer software succeeds - when it meets the needs of the people who use it, when it performs flawlessly over along period of time, when it is easy to modify and even easier to use - it can and does change things for the better. But when software fails - when its users are dissatisfied, when it is error prone, when it is difficult to change and even harder to use - bad things can and do happen.