Know who the customer is, what are his needs and why he wants your work. Be aware that you may have several customers with different degrees of importance - your boss, the project manger, your company manage, your company owner and your company customer. Be aware that these customers needs are not necessarily the same, and even can contradict.
Sometimes your boss need to produce reports to upper managements and not advance with the development...
Sometimes the company has several customers with significant different degrees of importance.
It is not obvious to know the requirements of the project. The project manager tells you one thing. The customer has another image of the product. It may be a good idea to get a requirements document or write it yourself and ask for management approval. This way you will avoid changes in the requirements and specification and everyone will be happy. If someone complains about the result, you can address him to the requirements document that he approved.
A complicated product is not necessarily what the customer needs. Most customers will prefer a simple and reliable product.
Adding to many features to the product may expose you to several risks: