The main reason for this is lack of competition for DB in Germany. I used to date a guy who works at infra department in DB and based on what he told me, I couldn't believe how inefficient and massively complicated DB is. They have internal departments which acts as separate entities to mimic competition and each department has to place bids among each other to get contracts (more bureaucracy) but then they have an IT department and no matter how cheap or good outside IT providers are they must get the service from internal IT department (so much for competition).
At this point DB needs a complete overhaul and let go of so much dead weight to make it working again and unfortunately German politicians are just throwing more money at every problem hoping they would magically solve themselves rather than fixing the actual structural problems.