In retrospect...
1. If you are going to use motors that you don't have the specifications for, CHARACTERIZE THEM ASAP.
We caused ourselves a lot of grief (and blew a lot of fuses) by initially counting on the TLE to current limit our thrust motors.
2. Stay organized and update your schedule.
In writing our initial checkpoints we made a number of errors in estimating how long various tasks would take. Stepping back and being rigorous about rewriting those checkpoints as soon as we recognized this would have made the development process a lot less uncertain and stressful toward the end.
3. Prototype early but do consider later changes which might affect the performance.
We were building a hovercraft to run on asphalt ,so making it run on asphalt was our main challenge. Once we got it working on asphalt (with bare minimum weight), we were satisfied and didn't worry about testing it until way later. We forgot to account that all later additions (merely being circuits, bumpers and cosmetics) would add so much weight to our hovercraft that it wouldn't budge. And we had to pull some all-nighters to get through it. Something we should have considered before.
4. Follow molex and wire conventions.
Thanks to being consistent in conventions, we did not blow up anything, nor wasted any time removing or recrimping.
5. Always, always have an extra set of batteries.
And don't forget to charge the ones you just switched.
6. PICs are magic; sometimes they just don't work, so replace them.
PICs don't have colorful LEDs like TIVA, so you never know if the hardware has failed. They are cheap; so try a new one if you think your code is not the problem.
7. Always solder DIP sockets on the board and not the chip itself.
Never, never ever solder chips on board. You will lose the chance to replace them if they burn out.
8. Test the communications in software early.
This is to make sure you don't face any problems later while testing with other teams.
9. Your schedule might not allow working in lab the whole time.
Have uVision and MPLabX installed on your own laptop/computers so that you can work remotely.
10. Make logic analyzer your friend.
And learn to use it, if you already haven't done so.
11. Always throw LEDs on circuit to check Power supply.
It pays off later so you know the problem is not the hardware or software; its just your circuit not getting powered.
12. Never give up!!!
We all know that feeling when your 20 days of work, doesn't seem to end up giving promising result. In those situation, have faith in your team, seek help but never give up. All those 20 days of hard work will pay off if you don't panic and keep thinking logically to solve those final problems.