Every Project Has a Prelude
The prelude is a telephone call or a meeting where the client describes what the project is about, what must be accomplished, and what the successful result should look like. Of course, if the client does not volunteer this information, a qualified consultant should ask the right questions.
Every Project Should Have A Beginning
The beginning of the project is like lining up the perfect golf swing. Some of it is science, some of it is "gut feeling". Some external factors such as the wind direction and speed must be taken into account. Some internal factors, such as how well rested the swinging arms are, must also be taken into account. But once the swing has been executed, the ball will be in flight, and the result is a matter of physics and a small amount of luck.
The moment that the golf club hits the golf ball is like the contract that marks the beginning of the project. The swing must define direction and forward momentum. Time in flight is estimated based on the direction, the momentum, the wind speed, the weight of the ball, and therefore the effective distance over which the ball must travel, and its average speed. Likewise, the contract must define the project scope and budget. The time needed to complete the project can be estimated, but is subject to many external factors such as support calls from previous projects, illness, and new projects. (In an ideal world new projects would never start until the old ones have finished, but there are reasons why new projects tend to start before old ones have finished, described below.)
If the swing will land the ball in the green, it must point the ball in the right direction; project managers refer to this as the project "scope". The swing must provide enough forward momentum that the ball will reach the green and not land somewhere in-between.
While the number of units of time needed to complete the project can often be predicted with great accuracy, the speed of the project is harder to estimate. It is probably (average speed of programming team) / (number of projects currently ongoing + 1). And even if there are no other projects currently ongoing, it is likely that new projects will begin while the new project is "in flight".
Project Management Laws of Nature: A Project is Only Successful if it is Profitable
Clients will usually say that they need something done ASAP, which means As Soon As Possible. To the client, ASAP means that the programmer must work on the client's project until it is done, starting immediately.
However the contractor (which is either an individual programmer or a company of programmers) must also worry about what will happen once the project is completed. Will there be idleness with nothing to do? And in addition, clients often approach contractors with insufficient funds to cover all of the costs of the project, and still wants the project done to the same level of quality as if the project was properly funded. If this happens then either of these two things must happen:
- If the contractor has sufficient money in his or her pocket to continue developing at a loss, then development may continue full throttle. However, the contractor must retain the Intellectual Property rights (i.e. copyrights) to the work, or the contractor will lose money almost every time. The following equation must hold true or the contractor is guaranteed to eventually go bankrupt: True Cost of Project <= Client Money Paid + Value of Intellectual Property Retained
- If the contractor does not have sufficient money in his pocket to continue developing at a loss, then the contractor must obtain money in some other way, or risk having a severe cash flow problem. The money might be borrowed from the client (unlikely but possible), or it might come from beginning another project.
Note: The ability of the independent contractor to start project after project, where each project may be generating a fiscal loss (but an overall gain, if the Intellectual Property is indeed valuable), can create a "golden period" of relative prosperity for the contractor, followed by a sudden crash. The contractor must be able to weather this crash, or risk bankruptcy. But, at any time, if the Intellectual Property can be successfully brought to market, the contractor will again be awash with money.
Once again, the important equation is: True Cost of Project <= Client Money Paid + Value of Intellectual Property Retained
If True Cost of Project gets to be equal to Client Money Paid + Value of Intellectual Property Retained, then either
- The client must pay more money; or
- The contractor must take a loss (but if this happens repeatedly, the contractor must go bankrupt); or
- The project must stop. This would happen if the client decides that it's not worth it to continue.
Only choice 1 is really viable - if 2 or 3 happens, then in effect the project has failed. The only difference between 2 and 3 is who gets to lose money following the failure: the contractor, or the client.
But, if the project has been begun properly, with sufficient motivation for the contractor (money + intellectual property) then it will most likely not fail to be completed. The one thing that the client can influence, then, is how much money to pay relative to the true cost (which can usually be estimated with remarkable accuracy by skilled estimators). The lower the amount, the more the contractor will financially "choke" on the deal, by taking on simultaneous projects, taking on debts, and spending a lot of time in fundraising - the contractor's equivalent of funding schools with bake sales.
All of this fundraising effort makes projects go slower. It can make programmers less efficient and more stressed out. So it stands to reason that to get the fastest results, projects must be funded well enough to cover the true costs, and a slower delivery of the project is the consequence of relying on the value of Intellectual Property rather than a cash contribution.
Every Project Should Have An End - But Not All Projects Actually Do End
Many projects become ongoing works which have essentially been completed, but which have many "minor" fixes which add up to a big money drain on one party or the other - depending on the wording of the contract. Again, if the contractor is properly motivated, then the work continues. If the contractor is properly funded, the work continues quickly, and otherwise it continues slowly.
