A problem can be defined as anything that is not going as per
plan, per schedule or as it is expected to. The problem is very generic in
nature. A problem can be an electric machine failure, an electronic component
failure or a Mechanical failure. A human incompetence can also be treated as a
problem: lack of motivation, lack of understanding, lack of technical
competence, etc. But, let us try to confine it to software development and try
to understand some problems related to it. Later we will try to analyze the
roots that have caused the problem.
The developers see such kind of statements: “Development phase
has been delayed by 2 weeks” or “Design does not suffice all the requirements.”
All such kinds of problem will lead to some other problem known as “Schedule
Variance.” Schedule is the plan for executing a project and Variance is the
slippage of the plan. Hence, the main problem here is that Schedule Variance
and sub-problems are “Improper/Incomplete Design,” “Human-Resource Attrition,”
“Undocumented Artifacts,” etc. Any sub-problem can also be taken as a problem and
analyzed further. This depends on the impact the problem creates.