開発者側の問題 #1:
依頼主の意向を直接聞けるポジションにプログラマーがいない
仕事自体が直請けではなく、実際の開発会社が2次、3次請けとなっているケースが多く、 エンドユーザーである本当の依頼主の声が届かないところで開発を行っているのが、一説には95%以上とも言われています。
システムコンサルタントなど設計を行う担当と、実際にコーディング(プログラミング)する担当が分かれているのがほとんどで、 システム必要性の根拠から、システムポリシーや用途、目的までをきちんと把握してコーディングしている開発者は非常に少ないといえます。
また設計段階では見えていなかった問題や、将来的に問題になりそうなことを最初に気付くことができるのが、直接開発をしているプログラマーやSEなのですが、彼らがただ指示書どおりに仕事を進めることだけを考えていたら、問題は簡単に埋もれ、それがいつか爆弾に変わることさえあります。
開発者側の問題 #2:
コーディングできないシステムコンサルタント/システムエンジニアが設計をする
おおよそ設計を担当している者は、過去にプログラミングをした経験を持つ者が多いが、今は自らコーディングをしていないというのがほとんどのケースです。最先端の技術論も雑誌や人の話の受け売りで、机上の空論的設計となり、実際の開発で生ずる問題や危険性等を認識できていない場合が多くなります。
開発者側の問題 #3:
成長のないまま、ただ年数だけを重ねている
2次、3次請けの仕事の場合、1つのプロジェクトを終える(納品する)とすぐに次のプロジェクトへ移る為、ほとんどの場合、開発者は自分の仕事の結果を知らないままでいます。自分のやり方が成功だったのか失敗だったのか、その後どういう問題が起きたのか等も知ることもなく、自分のやり方を正解だと勝手に思い込んでしまっている開発者ほど、扱いづらいものはありません。
開発者側の問題 #4:
トータル的な視野を持っていない
1つの業務管理システムは通常、販売管理、財務管理、生産工程管理等、管理業務が相互に関連しながら構成されています。当然開発者は、これらの総合的な知識も十分に持っていることが望ましいのですが、すべてを深く知り、理解することは非常に難しいといえます。
また依頼主の経営方針や、管理職の管理方針、オペレータのスキルや資質、システム管理者の管理方針等も十分考慮しなければなりません。つまりトータル的な視野が必要になってくるのですが、その必要性を理解して視野拡大に努力をしている開発者は極めて少ないといえます。