Joshua asked me to clarify what I meant by implementing by architecture. Here's my picture-story.
When a team implements by architecture, they tend to be functionally-based teams implementing across the architecture.
When a team implements by feature, they are cross-functional teams.
When teams implement by feature, they do what's needed in whatever part of the architecture is needed. To the outsider, it looks a little messy—sometimes incomplete. But to the team, the architecture is cohesive. And, most importantly, the team is not writing code they won't use.
When teams implement by architecture, they are too likely to implement more than they need—ever.