SPM Assignment 1
SPM Assignment 1
Explain briefly major challenges which can face while working as Software Project
Manager and how you can handle them?
2. False Estimates
Software estimates can be unrealistic in terms of time and budget. A project manager
has to ensure that the software is delivered on time and within budget, but off-the-mark
estimates can make that a real challenge.
Example: The estimated time provided by the team to the manager for developing a
software was 5 person-months. The deadline was 6 months. However, the project was
not completed till the estimated time. The developer belatedly realised that he missed
some functional points obtained initially from given requirements which caused the
estimates to prove wrong. Thus, the human resources appointed could not finish on
time.
3. Scope Creep
Scope creep is another major challenge. Clients may change requirements or add more
requirements. The project manager must be decisive and have enough management
skills to know which ones to implement and which are impossible to meet; negotiate
with the stakeholders and communicate any changes to all stakeholders. There are cases
where clients are dissatisfied, or project exceeds time and budget thereby leading to
failure.
Example: XZ company offered a project to the software house. During the development
of the third iteration, they made a sudden change to their required functionality which
was initially refused by them. The management of XZ company had undergone a change
and another person took over. The software project manager had to decide how to
explain the issues the new requirement could cause and reach a compromise with XZ
company.
4. Management of Developer Team
Managing the developer team has its own issues. There are times when the software
requires skills that the team members lack. Developers might leave the company in the
middle of a project or they might not show accountability to meet deadlines or follow
processes and proper documentation. A manager also has to keep in mind such
behaviour. Objectivity is another issue; In a workplace, arguments may arise for several
reason. The manager must solve the issue without reprimanding any member in an
impolite manner.
Example: RA software house was working on a medium-scale project with a 5-man
team. One of the key developers, Max, was the only one who had adequate skills in
adding multithreading to the application to best utilise the client’s workstation
resources. Max was involved in a severe accident and became unable to work on the
project. The sudden vacancy could not be filled within deadline. The client rejected the
software which did not deliver the major function they asked for.
6. Risk Management
Managing risks and coming up with possible contingency plans is also a challenge.
Often, the team fails to realise the importance of identifying possible risks to the
software, their chances of occurrence and the severity of their impact on the software.
This can lead to either defective software being released to the client and user or failure.
7. Extreme Deadlines
Clients may set deadlines which are impossible to meet. The project manager must
either make them realise that or allow the trade-off of project completion over quality.
As the strain is greater there will be compromises.
Possible Solutions:
These challenges can be contained to an extent even if they cannot be completely eradicated.
Issues are always present.
1.
Communication issues can be resolved to a large extent by following a process
such as scrum. Agile methods place emphasis on regular updates and
communication. Thus, everyone on the team and the manager can be aware of the
status. It can also help to resolve any blocks in the initial stage.
2.
The manager must share the scope and tasks for the iteration of software being
developed. Every member of the team will then have a concrete idea of what they
should do. This can help prevent confusion in cases where the scope changes.
3.
The manager must negotiate any conflicts with requirements and have a clear idea
of how much the changes can affect the software by discussing with relevant
persons. At times, the scope can be reduced by simplifying the features but still
achieving the same effect that the clients required.
4.
A good plan is essential, and it should start by setting an immediate goal. For
example, setting an objective for the current iteration on what features and
requirements should be achieved at the end. Why this objective is required and how
to work towards the goal. Being goal oriented is one strategy to remained focused.
Planning well can not only allow human resources to be utilised properly but also
allow the manager to deliver the software project within the appointed deadline.
5.
Use prior knowledge from the projects already handled by the company especially
those similar to the ongoing project. This can make estimates more accurate. There
may even be reusable components to save time. Managing software risks may also
be easier with prior knowledge.
6.
Have a contingency plan for people issues such as leaving the company or taking
vacation. If there are juniors working under the senior developers, vacancies may
not cause such a severe issue. Arranging a training session prior to starting a
project, by gathering the major requirements of platform beforehand, can reduce the
chance of team having inadequate skills for that project.
7.
The project manager must provide a comfortable environment for the team with
enough flexibility to allow creativity while following the business goals of the
company. Developers tend to work less effectively if they are tightly controlled.
8.
Involve the stakeholders throughout the life cycle of that project through demos
and feedback so that any points of dissatisfaction can be known and corrected.
9.
Most important is using the right tools for the right purpose. Many software and
tools have been developed to aid with project planning, management and for
effective communication. It is the manager's job to ensure that they are put to good
use.