In Scrum there are three roles defined:
- Scrum Master
- Product Owner
- Development Team
The Scrum Master helps the team to follow Scrum and to remove impediments. The Product Owner looks after the backlog of work and prioritises things.
The Development Team does everything else. There are no defined roles in the Development Team, but instead we have capabilities.
For example, the Development Team has a capability to do development. It also has a capability to do testing.
There is nothing to stop a Development Team having a capability to do architecture. For example, it might have a team member who is from an architecture background or perhaps several team members have architecture experience.
As for the Team Leader role, there is no need for that as everyone in Scrum can act as a leader. For example, if somebody in the team is really experienced in database work, they might show leadership when the team is working on database work items.
who is making decisions on a future-proof ways on the implementation?
The team does.
An experienced Scrum team will get together regularly to talk about 'the big picture'. They will think about the future of the implementation, about the way its architecture, etc.
which libraries to use, client data-handling, etc.
Who has experience making decisions on which libraries to use? They might be a good person to suggest an approach on which libraries to use. The team can then discuss it and agree on an approach. The same goes for client data-handling.
This is collaboration. Everyone has a voice and everyone is a potential leader.
Chances are they will not be qualified/experienced enough and the decision could cost millions in the years to come
If the team is concerned that they don't have enough experience to make important decisions then they should raise that as an issue. Some possible solutions include:
- Get additional training for team members
- Bring somebody into the team with more experience
- Use communities of practice to get advice