From time to time, everyone is asked to work on horrible project with no organization, management and strategy. These projects tend to be frustrating, stressful and an absolute nightmare.
But the client is the king and you must swallow your well-being and ego just to get more and more agitated over time. But there is also another way to handle it. Say "No", refuse the project.
I was asked to help with a project by my coworkers. The very first major red flag raised was the fact, the budget wasn't big enough to include User Experience. But I decided to ignore this minor detail at the time and give it a shot. After all, learning is important and even if it was for free, I could get some new knowledge. Even if I put just little bit of effort into this, I would emerge as a winner.
Indecisiveness of the clients
Second major red flag was the fact that nobody knew what is happening. The very requirements kept changing every day. There were too many people with too different opinions involved and each one had different view on how things should work. In short: There was no strategy.
Despite the constant changes on every front, there were never proper explanations for them. Things just happened because they happened and new things were introduced just for the sake of it. It was obvious there was no solid vision behind this, just lots of voices on the background trying to scream themselves to the spotlight.
Under normal conditions this is the moment when you talk with your clients. Spending time and effort into building clear vision and strategy is a must. Not only it will limit any further costs caused by indecisiveness or miscommunication, it also tends to deal with ego by not allowing people to have their opinions heard based solely on their position, role or name.
Having strategy means having clear set of rules and priorities. If the employee at the bottom of the process comes up with something that serves strategy better than the idea of managers above her then clearly defined list of priorities will favor that employees idea.
Everybody is entitled to have an opinion, but not everybody is entitled to have their opinions heard and praised. And in software development, this tends to become a big deal. Strategy is essential. Without it, you are just building a house without the scheme.
Not only there was no strategy, there was no time or budget to make one. There was no chance of actually sitting down with people and discussing how things should work and how the project should proceed. Budget was already spent and time was running short.
With nothing to work with (no research, no vision, no plan) the entire process needed to move at rather fast pace in order to meet the deadline. Deadline in this case was set in stone, it could not be postponed. And even meeting it just in a nick of time would still have lots of negative effects since the project was very time sensitive. It did not help that the clients themselves ignored this fact and preferred to just let things solve themselves over time instead of planning ahead.
At the end this meant that any mistake made in any step stayed in the process since nobody had time to fix it. And each step created more and more mistakes. Over time this snowballed into huge pile of bugs and imperfections. There was no time or effort to fix them.
Frustration and lack of effort
If project goes like this then involved parties get frustrated. Project Managers decide this is not worth any kind of effort, developers decide its a mess and they refuse to put any serious work on it, designers are left to make up for the lack of content by generating their own content despite the fact that they are not copywriters. People lose their personal interest, even those who really wanted the project to succeed.
What you end up with is just pile of horribleness. And rightfully so. So much tends to be neglected, so much tends to go wrong. And the worst thing is, sometimes it simply is outside of your reach. It is our job to make things work, to make them into the best possible versions. But from time to time, it just is impossible. You don't have the authority or the time/budget is just so restraining that it is not going to work.
Refuse the job
How to prevent this frustration, stress, loss of motivation and morale? Always see if you can actually make some strategy. Majority of the clients want to succeed and if this is the way to success then they will listen. But if this truly is not possible, save yourself some time, save yourself the sleepless nights and overtimes during weekends. Refuse to take the job.
Say "No" to your clients, explain that the way it works is not going to solve anything. Delivered project will be unsatisfactory to everyone, including yourself. There will be mistakes, there will be chaos. And if you put this project in your portfolio, well good luck presenting it to others.
You should never work on something that you are not proud of. This does not mean that you can never work on projects with low budgets, you absolutely can and should. Real life throws various things at you. Some can be scary, but those make you grow. Its up to you to find the interesting challenge.
With low budget you could be trying to create something very simple, yet powerful. That is a challenge and worthy of a portfolio if done right. If the challenge is not dying of a heart attack because of the horrible stress levels then totally bail on it. It is not useful to work on projects like that.
I worked on this project for a little while trying to help my coworkers. But realizing the direction, I decided to step down and not worry about it anymore. I nevertheless used this project and the experience gained, to analyze the process and think of improvements and innovations for the next time.