I’m currently working on a small short-lived project. But despite the size it’s complicated enough with very unclear logic. That’s why it was started by more experienced developers. They work on it from time to time because it’s not their main project.
They made some code drafts with numerous places which ‘would be rewritten in the nearest future’. After that they added several another ‘temporary pieces’. And then again..
So, now the project is a mess of ‘half-working’ pieces of code with some hardcoded values, like file names or some constants which ‘will be replaced latter with working parts’. The API is awful (nobody thinks about it actually).
And it’s really, really hard to do development now (for me it’s the main and only project). I caught myself thinking that I spent about an hour every day just to understand again all that tricky ‘temporary’ things and API weaknesses. And after that hour my brain melts.
I can’t just say “guys, your code smells like a trash dump”. What’s the correct way?
It seems like the ultimate problem is they are writing code and not taking responsibility for its quality.
If this goes against the culture of the organization, it’s a matter of making the situation known others. If the developers don’t know, and have a modicum of empathy, I would take the “I don’t quite understand this. Could you spend a few minutes walking me through it?” with them. They should soon realize what they are doing to you, and good programmers will adjust their practices. This may also have to be done via the management hierarchy– “In order to progress on project X, I need Y hours of the programmers’ time to work with their code effectively.” It should either happen or bring up a “Why” conversation that should lead to changes.
If this is the culture of the organization, that’s unfortunate. It may mean that the programmers producing the code don’t care, and nor do any of the management. This is a bit of a political question– who is most capable and/or interested in seeing this change? Find allies and proceed best you can. A candid conversation with the developers may be the best choice, as they are the people capable of change and no one else is going to induce them to– so just ask outright.
Hope this helps.