앞선 논의는 시스템과 환경 간의 관계가 양방향으로 작용한다는 것을 상기시킵니다. 시스템이 운영되는 환경에 따라 다양한 영향과 제약을 받는다는 것은 쉽게 이해할 수 있습니다. 아키텍처 팀 대부분은 시스템을 운영할 플랫폼이 무엇을 할 수 있고 무엇을 할 수 없는지 알고 있습니다.
이러한 관계는 시스템이 환경과의 관계를 결정하는 경우 반대로 작동합니다. 소수 플랫폼만 대상으로 소프트웨어 아키텍처를 설계하는 특별한 상황이 아니라면 아키텍처 팀은 여러 환경에 부합할 수 있도록 아키텍처를 설계해야 합니다. 아니면 크로스 플랫폼에서 제공하는 특정한 단일 환경에 맞게 설계할 수도 있습니다. 다만 크로스 플랫폼에서 제공하는 단일 환경의 제약이 심할 때는 반대로 여러 플랫폼을 직접적인 대상 환경으로 선택하기도 합니다. 각 방안의 비용과 위험은 다르기 때문에 시스템에 따라 어떤 방식이 적절한지 따져 보아야 합니다.
마지막으로 시스템 환경을 선택할 때 반드시 양자택일할 필요는 없습니다. 비록 클라이언트 기기 측면에서는 이분법적인 선택이 일반적이지만, 일부 아키텍처 팀은 특정 시스템에서만 크로스 플랫폼을 이용하기도 합니다.