Archive for April, 2010
Many times, software development projects fail because of bad project management. From my experience, these are the 5 most common and dangerous mistakes made by software development project managers.
1.- Believing that productivity is mainly associated with man power and working hours.
Productivity is today’s equivalent to the philosopher’s stone in the middle age, every project manager tries to find it applying basic alchemy: the more developers and working hours, the better.
Unfortunately, this approach is delusional, it is not scientific at all. There are many studies that prove that productivity can be even negatively affected applying this basic principle.
As for references, the most important one is probably “The mythical man month“, one of the most influential books in software development for the last 20 years, (unfortunately I’m afraid is mostly read by developers and not project managers). As for articles in Internet, there is one that I would particularly recommend, ii is from lostgarden.com: “[PDF] Laws of productivity – 8 productivity experiments you don’t need to repeat“. I encourage you to forward it to any project manager you may know that you think may need it.
Obviously then the question is: What improves productivity? Well, while I can’t say I know the exact answer for this, (If I knew it I would probably be rich now). In my opinion it’s mostly affected by two major factors: motivation and leadership. That is, willingness to move forward, and someone to show what the best direction to move forward is.
2.- Not managing customer expectations.
Project managers need to make sure that customers understand what and when is going to be released.
One of the most recurrent situations where expectations need to be managed is when a project is going to be late. What usually happens when the project is late is that the customer is not told about it because the project manager hopes that the deviation can be corrected or because is afraid of disappointing the client. BUT what more often happens is that the customer is told too late of the delay, when there’s no other option, and what it could have been a minor, or not so big issue by managing the expectations and postponing the deadline or the scope of the release, becomes a major issue that sometimes puts at risk the entire project.
3.- Ignoring feedback from developers.
A Project Manager need to have his thoughts in a higher level than developers, but that doesn’t mean that he shouldn’t listen to them.
In software development, programmers are the only source of productivity, and for that reason, there is nothing more important than making sure that they have what they need to do their job.
Unfortunately many project managers prefer to focus on dates, meetings and deadlines, which sometimes is good as it makes the project move forward, but sometimes developer feedback is overlooked causing productivity issues, technical debt, low quality products, etc.
4.- Controlling as opposite of empowering.
Software development requires creativity and pro activity, and that’s two qualities that control freak project managers destroy.
Controlling is especially practiced by project managers that still believe that all the requirements for a product can altogether, with the technical specification and the schedule, be specified in documents at the beginning of the project.
Empowering is all about making developers better than they are, and it is usually the cornerstone for killing applications.
5.- Being afraid of making decisions.
One of the reasons why project managers make more money than developers is because it’s up to them to guarantee that the project is on track. Often that requires them to make tough decisions like fire, hire or reprimand people.
Project managers that struggle to make tough decisions as soon as they are necessary, are failing to their team. Delaying tough but important decisions will cause even more severe consequences in the future.
The 13th of this month is the 1st anniversary of this blog. A year blogging might sound non impressive, but to me is a big achievement. When I started I only could hope for publishing some articles on dzone and to get maybe a couple of hundred subscribers, I never imagined that I would get to publish 50 articles in dzone, around 10 of them in reddit and ycombinator and 1 in meneame.net (the Spanish equivalent to digg).
This is my way to thank the 150.000 unique visitors, the 520 people that have posted a comment, and the 1700 that are subscribed to the blog, thank you for your support and for your time reading my articles.
In this previous year, 60 articles have been published, from which the 10 most read have been:
- Programmers top 10 sentences
- 5 top non-technical mistakes made by programmers
- The four golden rules to be a better software developer
- 5 top non-technical mistakes made by programmers
- How to write a good test case: 5 tips to write better test cases
- 5 Tips for creating good code every day; or how to become a good software developer
- The best bug tracking system. Don’t raise bugs, write an automated test!
- My ten development principles
- The average Software Developer versus the good Software Developer.
- The next software development revolution is here… Are you ready?
In this next year I would like to aim for 3-4 posts per month, improve my writing skills (as you probably have noticed I am not a native English speaker), and to increase my reader base. I can only wish I will be writing a similar post in one year time from now. Once again, thanks to all of you for being at the other side of the screen, to finish off the article I have included some screen shots with statics for the site, bare in mind that they are only from the previous six months, when I started to monitor them.