Developer Failure #1:
Lack of experience / lack of contact
Programmers are not usually in a position that allows them to deal directly with the clients / end users and have only programming, but not business experience. Having a programmer in charge of a software development project’s like having a construction worker draw up the blueprint for your house.
Compounding this issue, in the majority of cases a great amount of systems work is not done directly by the company that is hired to do the job, but rather by sub-contractors in twice or even thrice removed positions, often over-seas with their primary language not the same as the language of the project managers . This, of course, causes a severe communications breakdown that results in what the client really wants and needs and what they ultimately get being two entirely different things.Often, the division of labor between system consulting and design and the actual programming and implementation does more harm than good.
The result is that there are very few programmers who are coding a system while understanding the special necessities and details of the project as a whole.
Developer Failure #2:
System design is carried out by engineers who can't (or don't) program
Quite often, the engineer in charge of system design is a person who 'used to' program or never did who leaves the actual coding up to another group of people.
This type of engineer gets most of his current knowledge from the latest bleeding-edge articles that he's read, but he hasn't tried to put into practice what he's selling the client.
In other words, the system design has been carried out by a person who lacks the skill and knowledge to foresee the very real problems and issues that arise during actual system development.
Developer Failure #3:
Developers who have years of experience, but no real opportunity for growth
In this field, many engineers go from one project to the next without ever taking the time or having the opportunity to see the results of their work, and can't actually tell whether the result was a success as a whole or not.
Their only standard of project completion is 'It's done, I’ve been paid.' This doesn't involve a chance to see the system in use and how it works for the end user. This leads to a false sense of a job well done and has many developers and designers believing that they've produced 'good work' just because a given project's over.
In other words, there is an abundance of developers and designers who have put in many years who go around thinking that their skills and techniques are up to par just because there's more work to be done.
Developer Failure #4:
Developers who don't try to understand the big picture
A typical system is made up of various components, including sales management, financial management, production process control and other various general sales management issues. It goes without saying that it would be ideal for the system developer to be highly knowledgeable in all these facets of business. He or she must also be aware of and understand the client's business policy, the company's managerial policies, the skill level and competence of the system operators, and the system administrator's management policy.
While it is imperative that the developer grasps the whole picture in order to produce a system that really works, very few even realize that they need to make that effort.