Be professional. Part of that means knowing how to produce reasonable estimates. That requires having a plausible roadmap at the start.
In some ways, software will always be harder because the artifact in a construction project is the building not "the blueprints". If the design is dragged out, the building doesn't get built.
On the other hand, the way an architect handles "I want X" is by showing them that it is a bad idea. Showing means providing a design that incorporates "X" and one without. The assumption that everything will be done multiple times before it is right, and indeed that doing it multiple times makes it better, is what separates architecture from engineering in AEC.
Understanding that doing things multiple times is just part of the job and that falling in love with one's own ideas is a bad habit can be learned. It ain't easy. But in the end, the architect walks away and the client lives in the building. Software is similar in that way.
In some ways, software will always be harder because the artifact in a construction project is the building not "the blueprints". If the design is dragged out, the building doesn't get built.
On the other hand, the way an architect handles "I want X" is by showing them that it is a bad idea. Showing means providing a design that incorporates "X" and one without. The assumption that everything will be done multiple times before it is right, and indeed that doing it multiple times makes it better, is what separates architecture from engineering in AEC.
Understanding that doing things multiple times is just part of the job and that falling in love with one's own ideas is a bad habit can be learned. It ain't easy. But in the end, the architect walks away and the client lives in the building. Software is similar in that way.