My main area of trouble was properly estimating the timeframe for a project, and then sticking to that timeframe. Seems easy enough, only it ain't. You see, there is a very large number of unforeseen variables, that kinda pop up on you.
First of all, allow me to introduce 2 facts. One: a project is a set of tasks. Two: a successful project is one that is completed on time, within budget and meets the defined specifications / features it was set out to complete. Anything other than that is deemed a failed project.
According to that latter piece of information, almost 75% of all software projects are failures. In fact, according to that fact, all my projects are failures.
Now, when planning for a project, the simplest and perhaps the most important piece of information you should know is that there are 3 pivots to every project; features, timeframe and resources.
- Features: what is the project set out to complete. In other words 'the scope of the project.'
- Timeframe: the period of time within which the project should be completed.
- Resources: the budget within which the project is to be completed and / or the number of people involved.
When communicating with project sponsor (the owner of the project and most importantly who will pay for it) you should say "You have 3 important factors; features, timeframe and resources; pick any two?" What this means, is that if 2 factors are set, the third factor is affected either upwards or downwards.
To explain this better, here's an example. A project has 20 tasks, and must be completed within 3 days. This means that the number of people to work on this project should be increased to 5. The same project, but to be completed in 10 days would require only 2 people.
Another project with 50 tasks, where ONLY 4 people (maybe because of money shortage) can work on, would require 30 days to be completed. Get the drift?
Another issue to take care of is: scope creep. Scope creep is when the number of features / tasks in the project seems to increase as time goes by. This would result in a never ending project, and a sure failure.
One parting piece of information: if you fail to plan, you plan to fail.