시스템 진화에서 시스템에 새로운 기능을 추가하는 것은 가장 단순한 형태지만, 여전히 잘못될 가능성이 있습니다. 예를 들어 두 팀이 새로운 기능을 추가하여 각자 서비스를 확장한다고 가정해 보겠습니다. 한 팀은 여러 서비스로 구성된 조합을 선호하여 작은 신규 서비스를 추가하는 반면, 다른 팀은 기존 서비스에 새로운 기능을 더하는 방식을 선택할 수 있습니다.
이러한 일이 발생하면 시스템 진화는 시스템의 기본 구조를 약화시키는 방향으로 나아갑니다. 여기에서 문제는 어떤 방식이 옳은지 그른지를 따지는 것이 아닙니다. 개념적으로 보면 두 방식 모두 시스템 기능 확장이라는 요구에 적절히 대응한 것입니다. 문제는 각기 다른 접근 방식을 적용해서 시스템이 불필요하게 복잡하다는 것입니다. 시스템 진화를 통제하는 아키텍처 원칙은 이러한 경우 어떤 접근 방식을 쓸지 명확히 하여 문제를 미연에 방지할 수 있습니다.
시스템에 새로운 기능을 추가하는 것은 시스템 진화와 관련해서 가장 쉬운 문제입니다. 훨씬 어려운 문제는 아키텍처 원칙 자체가 바뀌는 경우에 발생합니다.