Few years ago when I taught software project management in Asian, I
found that there was confusion between “project management” and
“software project management”. Some universities used “Project
Management” books which were written for construction industry and other
industries but not software. For example, when they estimated efforts,
many began with 5% in conceptual and initiating phase, 10% in architect
and design phase, 75% in implementation phase, and then 10% on
maintenance. This is correct for construction industry. You do not need a
lot of people when working with owner to understand requirement needs.
Construction planning is mostly logistic and administration works. You
do not need a lot of people during architecture and design phases. The
architect designs the construction with a small team and when the
architecture plan is complete, it never changes. The major efforts
happen during construction phase when you need a lot of workers to build
the house. There will be some small efforts in the maintenance phase
(Painting and cosmetic decoration).
In software project, the most important phases are the first two.
Planning is critical and architect and design are essential. Since
software requirements often change, often late in the project; team
members must involve early to understand the business needs, analyze and
verify requirements to reduce the risk of requirements change. The
effort needed should be at least 20% in requirements phase, 20% in
planning phase, and 20% in architect and design phase. By having at
least 60% of team members involve in the project early, the team can
work with customers to collect requirements then breakdowns requirements
into smaller components where they can estimate more accurately.
Knowing the effort and time required to implement, they can plan the
project accordingly. The team organizes these components according to
architecture so in the end they all fit correctly. Only when these works
are done the team could design each component in more detail. By doing
most of the work earlier and make sure that all requirements are
accounted for; construction and testing would be easier. Software
project does not fail because developers cannot code; it often fails
because of bad requirements, bad planning, and bad project management.
Because of the confusion about “project management” and “software
project management”, some managers do not pay enough attention to the
early phases of software development resulting in many failure. In some
countries, software project management is not taught in undergraduate
program so students do not understand the concept and the software
project management life cycle. Most project management class is taught
in business school where students do not have knowledge of software
development. Without proper knowledge of software, without proper
software project training, many managers follow the common method of
“Code & Fix”. This method ignores requirements and design in favor
of a simple way to code first then fixing later. Project planning is
done by the project manager without the participation of team members.
Without proper knowledge of software, project estimate is based on the
schedule given by customer even customer really do not know how long
would take to complete the project. The project plan is based on a
budget given by manager without proper estimation. When it is approved,
it never been updated even requirements have changed. The team spends
most efforts on coding and fixing. The more they fix the more defects
they add so they have to fix it again. The cycle of code and fix
continues until the end. As a result, software project is costly, does
not meet schedule, and often has poor quality. Unfortunately, this
method is still being used in many places.
Some students asked me: “Why software differs from non-software project?
It is simple, software project deals with “intellectual work” when the
other deals with “physical work”. You can look at a physical work like
the construction of a house and know that how much it has been
completed. For example, 10% or 50% but it is difficult to do that with a
product which is still in the mind of developers. A good construction
manager know how long it will take to build a house, he can calculate
the size, the materials, and the labor efforts. It is difficult to
calculate the size and effort of a software project, especially during
early phases. That is why it needs a different approach and method to
manage software project.
I often ask students: “Can a non-software person (e.g., students from
business school) manage a software project? I have written about this
topic several times in my blog. I often use it as a topic for discussion
in my software project management class and it always create
interesting discussions among students.
My question to you: What are you doing on your software projects? I am
sure that you do not plan to fail, but if you have failed before,
perhaps it is time for you to learn more about software project
management or take a professional training course on this topic.
By Prof John Vu
Orignal source : http://johnvublog.com/?p=241
Orignal source : http://johnvublog.com/?p=241
0 comments:
Post a Comment