The computers do precisely what the systems analyst and software designer wanted them to do...
The computer programs purport to do what is wanted.
In truth, the
computer programs do precisely what is coded which is not necessarily what was wanted.
Sometimes the programmer does not correctly program the design.
Sometimes the design falls short of what is required.
One very good way to sabotage a project is to program exactly what is specified
All the above applies to de novo projects.
These days the majority of projects are based on interfacing to older code that has been lurking about for several years. Making old code do new tricks can expose you to gotchas and shortcuts that nobody remembers any more. You have to enter the mindset of programming decisions made and forgotten several years ago
Understanding old code is orders of magnitude harder than writing new code