There are quite a few challenges when designing a reliable and secure software architecture. First, the software resources are finite, and the clients should understand that there would be some limitations to the design. Usually, the software architecture consulting team talks that through during the initial stage, so both sides have realistic expectations about the system.
Second, the architects might experience integration and compatibility issues in development, which is why the team conducts a thorough analysis of the legacy systems and the business requirements to understand what platforms, frameworks, and languages would work best for this product within a certain budget.
Third, different project contributing teams may lack proper communication, which will influence the result. This is why we always connect with other teams on the project to have a unified view of the process, app needs, and business possibilities.