The problems with software development these days as I see them are
01: Hiring crap coders. Some companies seem as though they like to fill
seats or something and will hire someone with very poor skills.
02: Unrealistic deadlines. People rarely seem to plan for the unexpected
these days. They seem to give an estimate of how long something should take
if everything goes to plan, which never happens.
03: Coders not speaking out or being ignored. In relation to #02 the coders
either keep quiet in case they look like they can't do their job, or they
speak out and the project manager keeps quiet in case they look like they
can't do their job.
04: No standards. There are lots of standards around these days for
developing good software, but either programmers don't know of them or
management decide they are a waste of time and wont let them use them.
When outsourcing to other countries you have the additional complications of
cultural differences (we once had a Turkish company deliver a system with
only 1 line for addresses, they claim this is how Turkish addresses look. I
suspect they lied), time zone differences making communications a lot less
effective, and the fact that you probably have no idea or control over what
kind of standards they work to.
What constantly amazes me though is how a software project can possibly cost
millions. Unbelievable!
Pete