Friday, July 20, 2012

7 habits of highly effective Projects (& Project Managers!)


I thought stealing a title from a legend is a fitting tribute to the great man Stephen R. Covey who passed away recently. This book, written 22 years ago was a trend setter in self-help books. May he RIP.
When we look at current challenges in software, many times, we have an excuse. Software development is a relatively new field. It is less than 30 years old, compared to manufacturing which is more than 100 years old. Hence maturity of s/w development is less. But the point we are missing is that in these 30 years, we continue to grapple with same issues..Looks like change has been very slow.
In this article written some time ago, the author lists in a simple manner, 5 goals for a PM. Considering that this is a tall goal, probably 1 more can be added.
Goal # 6: When one or more of the above 5 goal is not met, find the scape goat!
I mentioned that in 30 years, core problems in software development has remained largely unchanged. These are:
a) Poor turn around times / not meeting time to market goals
b) Heavy budget over runs / poor productivity
c) Cost escalations after production releases due to defects, missed requirements
d) Increased maintenance costs etc
Just do a quick check of how many of these your client has and no surprises if they have atleast 2 of them.
So, what is the magic formula to prevent these? If not a magic formula, what are the “habits” that can reduce these? I give below the 7 habits which I think are important. These habits may be the direct responsibility of PM or in some cases PM may need to facilitate it. My intent is to provoke a discussion on this. So I would appreciate if you can comment and ask your friends to comment based on their experience. Maybe more habits from your experience will make this story richer. Hopefully, we can bring out a dossier to help current and future projects
Habit # 1: Visualizing and demonstrating requirements:
A good requirements is half the work done. Seldom do we find projects not meeting their goals when requirements are discussed, proactively elicited, demonstrated using prototypes and visualized. A good requirements stability does wonders. It is also proven using empirical research that a higher effort spent for requirements positively impacts productivity. Read that Insead study here
Habit # 2: Focus on structural quality during Design and Development:
When civil engineers build small or big buildings, a lot of effort goes in designing the foundation needed, the size of pillars and beams, the tensile strength of iron bars used etc. All this is done so that the construction is stable and will withstand the fury of nature. All this is true for applications. 1 more thing that is important in software apps is that all software apps changes during its life. Maintainability is key word. We all worry – more or less – about NFRs – performance, security, maintainability, etc. But do we worry about them during design and development ..or..do we worry about them during testing? As Codenizant has proved, good structural quality in development can greatly improve productivity
Habit # 3: Use Leading indicators:
Most of us are familiar with metrics. But how many us use it to make a decision during a project? Define a simple set of 6-8 leading indicators that work like a monitoring system in an emergency room. It may be simpler than you imagine :-)
Habit # 4: Plan less testing:
Testing is never the first solution to build quality. Testing is done to remove defects. Point is, why defects are there in first place? Yes..testing is like an insurance and you can’t eliminate it completely.  But there are numerous ways to reduce testing. Even if nothing works, just reduce testing and tell development team: “Look, we don’t have budget for testing. So please make less defects”.  You would be surprised..but it works
Habit # 5: Collaborate and Collaborate
Sometime back, I asked a few friends, excellent PMs, to write a case study about their successful projects. There was a common theme in the different case studies. All mentioned that collaboration and communication within their team members was instrumental. Do all of your team members share the same goal? Does everyone understand why we are doing this project? 
Habit # 6: Think of all reasons why your project will fail
and plan to mitigate those risks. Of all project management processes, I believe Risk Management is most important, because this will ask you for a mitigation plan if you don’t follow others :-)
and finally…
Habit # 7: Own the project
We have different type of projects. Some where we do everything from Requirements till testing, some where we do only Development and testing. There will be many other combinations as well. Some may be Fixed bid, some staff aug. Some may have client PM. Whatever be the scenario, own the project. Its your baby. Make it grow.

No comments:

Post a Comment

Help us improve this blog site by leaving your comments