Monday, September 05, 2005

Twenty Points for Effective Software Project Management

Thanks Narayana Prabhu

Twenty Points for Effective Software Project Management

Introduction

Software Project Management differs from other project managements in
several ways.

The Project Manager, like a captain on a ship, is ultimately responsible
for the success of a project. The project manager, besides being the focal
point for the project execution, is responsible for driving organizational
initiatives and changes, and keeping the customer delighted all the time.
Most of the software projects fail not because they are inherently complex,
but mainly because of the poor project management. You can be a smart
programmer capable of writing complex programs, but it is not enough for
project management. The project management skills are quite different. It
involves getting the work done by others, the way you want and yet making
them feel happy about it.

Challenges in Software Project Management
Software Project Management is different from other disciplines or fields.
Some of the factors contributing to the differences are listed below, and
these factors complicate Software Project Management:

1. Working Remotely: At times, you need to work with people living
geographically at different locations, which you might not have met. This
leads to a lot of communication problems.

2. Invisibility of the Final Product: Though there are intermediate work
products in each phase of the software development life cycle, the end user
and at times the developer are not able to visualize the final product
through the various software artifacts. In contrast, in case of a bridge or
building construction, the end user and the worker can actually visualize
the final product evolving.

3. Knowledge Workers: Working with well-educated people is easy as well as
tough. As the developers are smart and equally educated as the project manager, managing them becomes easy. It becomes more difficult mainly because of the knowledge level differences in a particular technology or domain where the developers may have more knowledge.

4. Technological Changes and Market Openings: The software developers have
to continuously improve the knowledge level due to the technological
changes. This, on the other hand, paves a way to them to acquire jobs that
lead to high attrition rates, which ultimately lands the project manager in
trouble.


The Best Practices
This white paper presents 20 best practices followed in software project
management to maintain a well-orchestrated team to create and claim
sustainable values. The points mentioned here are not in any order of
priority.

1. Customer Focus
When you encourage the team, definitely they will put in great efforts to
come out with an excellent product that delights the customer. At the same
time, you need to make sure that the team understands the pains of the
customer and also the impact of bad products on the brand name of the
organization.

As this is a primary concern of any organization, you need to
work on this activity constantly and continuously throughout the execution
of the project. This helps you to sustain the relationship with the
customer and also get repeated orders. Needless to mention about the good
will and the references you get, when you delight the customer.
Moral: Customers is the real boss; you need to keep him happy

2. Recognition
Nothing can motivate the developers to a great extent as recognizing the
great piece of work done by them. When you recognize their work, they feel
honored and important. It also brings in a feeling of belongingness and
great satisfaction to the developers.

The project managers can use email
facilities and team meetings as effective tools to recognize people. You
can send out an appreciation mail or praise the developer in the team
meetings, which are within your scope. When you couple this with the
recognition awards of the organization, it can do wonders as recognitions
improve the performance of the individual as well as the team.
Moral: Recognition is the greatest motivator

3. Communicating the Project Plan
Communicating the project plan to all the team members is as important as
creating the project plan. You need to keep the team well informed about
the plan so that they can visualize the bigger picture.
Moral: Understanding the plan is the first step towards delivering a
quality product

4. Strategy
You need to devise a good strategy to successfully implement the various
aspects of the project plan. You might have derived a good plan, but still,
if your strategy is poor, it can yield disastrous results. You as a project
manager need to liaise with the architects and senior developers while
framing major strategies.
Moral: Strategy can mar or improve the effectiveness of a plan

5. Suitable Methodology
It is highly important that you need to be careful while choosing a proper
methodology for the project execution. A process life cycle, which is an
excellent fit for a project in one area or domain, may not fit in other
domains or areas.
Moral: One man’s food is another man’s poison

6. Business Functionality
You need to ensure a good understanding of business functionality among the
project team. With all the technical knowledge in this world, one may not
be able to beat a person who has good functional knowledge. That explains
the importance of having good functional knowledge among the team. You as a
project manager need to ensure that the due diligence documents are
constantly updated to reflect the knowledge gained during project
execution.
Moral: Knowledge is power

7. Project Review Meetings
A weekly/fortnightly Project Review Meeting is very much required for a
project. Besides helping to keep track of the project execution, it helps
in keeping the team focused. It makes each and every member of the team
know what is happening in the other part of the project, which is required
to understand and visualize the project in bigger picture. You can share
all the important and significant organizational changes/initiatives in the
meeting. You need to ensure that action items are noted and recorded in the
Minutes of Meeting (MOM) document and tracked to closure. If you look at
this meeting as more of information sharing and execution point of view,
rather than as a statutory requirement to comply with Quality Management
System (QMS), you can benefit more out of it.
Moral: A map is of no use if you do not know where you are

8. One-on-One Meetings
Unlike the Project Review Meetings mandated by the QMS of the
organizations, a one-on-one is very special in its kind. The purpose of
one-on-one meeting is to create a continuous learning environment, which is
very much essential in the software industry. One-on-one meetings build
trust between the project manager and the team members. Since it is on a
one-on-one basis, the chances are more for the team members to freely share
their views, discuss issues, and express concerns in an open manner. You
can understand the concerns of the team members and resolve them at an
early stage through these meetings.
You can effectively use these meetings to groom and mould the team. Instead
of waiting until the end of the year to do a formal annual appraisal and
give the review feedback, the project manager can take the one-on-one
meeting as an opportunity to give informal feedback to the team members
about their strengths and possible areas of improvement. Since it is not a
formal appraisal, chances are very high that the team members will respond
to the feedback in a more positive way and would discuss with keen interest
to improve their strengths or overcome the shortcomings. On the other hand,
it provides the project manager an ample opportunity to assess and gauge
the team members’ work on a periodic basis and encourage them to learn or
improve continuously.
It is human psychology to work more to achieve a goal when there is a sense
of urgency. For instance, the students at college study with all sincerity
just before the examinations. As it is true at work places too, you can
utilize the one-on-one meetings to create the sense of urgency. You can set
short-term goals to team members in one of these meetings and evaluate the
progress in the subsequent meetings. You can also use these meetings as an
opportunity to drive the organizational changes, though that is not the
main purpose.
The success of a one-on-one lies entirely on the way it is conducted. You
need to conduct it in a totally informal and friendly manner, of course
without losing the focus. Care should be taken to make sure that no
unrealistic promises are made to the team members to fulfill their
aspirations. You can conduct these meetings regularly once in a month on
convenient days when you are free from your routine activities.
Moral: Run as fast as you can, just to stay in place – The Red Queen in
Alice in Wonderland

9. T-Cons
In this industry, often we work with people who are geographically apart.
At times emails create two islands of people communicating over a sea of
misunderstanding. This, besides distracting the environment, creates an
unhealthy atmosphere. Teleconferences (T-Cons) between onsite and offshore
parties help eliminate most of these communication problems.
You can use T-Cons to communicate effectively with your customer and build
mutual trust with them. It is a good practice to include the entire team in
T-Cons whenever possible. This brings all the team members to the same
level and also, helps you to groom the team indirectly in communication
skills. You should prepare the MOMs at the end of every call and send it to
all the participants to ensure that every issue is understood in a proper
way and track the issues to closure. As a thumb rule, one should not get
onto emails unless otherwise warranted.
Moral: Voice is better than text

10. Encourage Finding Bugs
You need to encourage your team members to find as many defects as possible
in the work products. Earlier they find, the cheaper it is to fix. Concerns
regarding linking of defects and performance appraisals are to be removed
as otherwise the team members might hide the bugs.
Moral: A stitch in time saves nine

11. In-House Trainings
When at school, we tend to go in for private tuitions mainly because we get
a special or an individual attention, which we do not get in our regular
classes.
In a similar way, when you arrange training specific to the project in
hand, you make the team happy, contained, and more valuable. This will
certainly improve the performance on the whole. You should arrange these
trainings in addition to the compulsory hours of training arranged/required
by most organizations.
Moral: Trainings make men happiest in themselves also make them most
serviceable to others

12. Knowledge Sharing Sessions
Transforming tacit knowledge into explicit knowledge is a key challenge in
this industry. You can arrange Knowledge Sharing Sessions to achieve this
to a large extent. The benefits are many. The team member who makes the
presentation improves on presentation and communication skills besides
sharpening his knowledge.

The other team members, who participate, gain something new that eventually satisfies their thirst for knowledge. The project and the organization gain a knowledge pool and the knowledge is retained. The team members go out of the room with a larger perspective and can think broadly and crack problems in a better way than before.
Moral: Knowledge not shared is knowledge not discovered

13. Knowledge Repository
You need to build a project specific Knowledge Repository and give access
to all team members. You can place Technical and Functional Documents, Best
Practices, Lessons Learnt etc, in the repository. It not only helps in
retaining the knowledge gained in the project execution but also helps in
reducing the time one needs to spend with new team members.
Mora

No comments: