OK, every book I read about software project management talks about having stakeholders that are involved, funding, risk management, etc, etc, etc. OK for the most part you don't get any of that, for the most part you get a project without a lot of management support (if you do, you are lucky), so what to do? how to achieve success on this environment? To me the most important part is communication with the user, a strong foundation to develop your software and protection of the scope, I want to talk on this post about the foundation.
We developers love to recreate every piece of technology to show that we can do it better, ok, this is the first non-sense that you need to remove from your team, what you need is to select a set of libraries to use (either open source or a commercial product) and make sure that your team learns how to use it. Why, if you do your job correctly those libraries will save you an incredible amount of time and they will improve your quality, you won't have problems with scaling your application or performance, those are problems that you don't want to deal when you have a deadline.
In my next post I will talk about some libraries that I used and the reasons behind using them, I hope this helps you to have a successful project.