Set Realistic Goals (don't do unnecessary tasks - it must meet one of the following requirements).
Does it meet a business need? (cost savings, new business, needed enhancement)
Does it provide a necessary function for IT infrastructure?
Do we need it for protection: data, security, legal?
If it does not meet these, then it may be nice, but not necessary. And if there are more important items to tackle, we cannot get to it.
Set realistic timeline for project.
Plan for interruptions.
Plan for research (first phase of project).
Plan for bugs/issues, ordering/purchase delay, unforseen (need a license).
Test it before you turn it over.
You may have overlooked/missed an important step.
You may have overlooked/missed a design flaw.
You may have overlooked/missed a implementation flaw.
You may have overlooked/missed a operational flaw.
Document to the necessary level.
Make sure a knowledgeable person like you can perform/repeat/troubleshoot what you have completed.
Think of someone else working on your project at 3 a.m., is it understandable?
You may be supporting your own product six months from now. How was it that you set it up?
Do a proper and final handoff to the user.
Are you giving them proper documentation.
Are you giving them proper training.
Do they understand it?
Do they like it?
Will they use it?
Things to avoid.
Scope/Feature Creep. A delivered product that meets 50% of the requsted features does more (is better) than a product that will do 100% of the features but is never delivered (because it is still getting new features added daily).
Do not overcommit - either resources (people or systems) or time (time is a resource too).
Do not use aggressive timeframes. Better to deliever on-time than late.
Do not use unique techniques nor one-time solutions: they are not reproduceable, understandable, migrateable, nor reuseable. They also age quickly and die with a large bang.