As a junior problem 1:
PM required features done
PM told BA's
BA's spoke to SME's to get requirements
BA's analysed requirements
BA's spoke to architects
Architects did their thing
Requirements + architecture were pushed to dev team
Outcome: Missed deadlines, wrong functionality delivered, many bugs, unhappy customers.
Later in life:
BA was part of the team
But architecture was external
Discoveries did not change design or approach
Better than before, but more missed deadlines, overtime, again unhappy customers, bugs
Awesome? Nope.
Later in life:
Agile won, but as a knee-jerk reaction to big-up-front planning
it seems as if the world rejected entirely the notion of up front
design. We lost conceptual integrity entirely.
Decisions were only locally optimized, and the network effect of
communication across departments exploded.
Dependencies from other departments started becoming show-stoppers.
No visibility -> chaos
Yes, you guessed it, better than before, but still problematic:
+ Feedback now exists and is considered
- No real communication across departments
- No visibility of what other teams are doing
- Localized decisions need to be repeated in other teams
- Loss of conceptual integrity: different parts implement different patterns, or behave slightly different. It feels like a disjointed bundle of pieces