I am a developer in a 5-member team and I believe our project is headed for disaster. I'll describe why in a moment, but my question is: how should I behave?
The deadline is in 1.5 months, and I feel no matter what we do, this project will fail. I'm of the opinion that we should just terminate the project and stop wasting our time, but politically I think it's impossible for our manager to do that.
What should I do in this case? Should I put in extra effort, or should I just take it easy? And what should I say to the manager?
Reasons this project is headed for failure:
With deadline approaching many of the must-have features are not finished
Application is unstable and very difficult to use
System is very convoluted, code very hard to understand, very difficult to change - Data model is too driven by a complex relational database (100+ tables)
Unclear leadership; the manager responds to new information with major changes
Almost no automated tests or unit test
Heavily depends on other systems, but no integration tests yet
In fact, we actually just inherited this project (along with the mess) around 1-2 months ago from another dev team under the same manager, who has worked on it for a few months.
( 4 months ago )
Communicate your concerns in the most concise and non-confrontational way possible up the management ladder. Summarize the risks, but do not impose your conclusion on them.
Management must always have the choice of what to do, but it is your job to assess and communicate the situation. Use email, so as to leave a paper trail when things go south.
Having done that, keep working on the project in good faith.
Keep in mind, you may not know everything there is to know about the project, its backers, and financial decisions behind it. Management decisions that seem stupid to you might actually be based on smart reasoning that isn't visible to you.