* Sometimes you have to work with really legacy code but its common for many IT companies.
* It is slightly complicated to change or improve something bigger especially when you need a budget for that. You need bunch of people to approve your proposals and it is a long process to go through.
* Because of some legacy parts, the building pipeline of bigger projects is fragile and can take long time to have all builds successful.