- low pay
- no career progression even if you perform well
- people are confined in small silos of knowledge
- design decisions sometimes taken impulsively without involving knowledgeable people
- low code quality and too many legacy systems hard to maintain