We typically use programmer, developer, or software engineer as synonyms as a whole, but I tend to view those titles as more junior/intermediate/senior.
A programmer can program code good enough, but that doesn't mean they are good at solving the goals business requires and communicating it.
A developer can program and develop a small enhancement with good communication. Sometimes can also break things down so other developers or programmers can work on it to.
An engineer an orchestrate an entire new project and can identify multiple areas where developers and programmers can be involved. A good engineer will do so while maintaining great communication with the users to ensure they get what they want.
An architect is someone who comes up with a plan to build something without any real care about budget, labor costs, or labor skills - both in software and in buildings.
"An architect is someone who comes up with a plan to build something without any real care about budget, labor costs, or labor skills - both in software and in buildings."
Disagree for both cases. The building architects I know surely have to work with a given budget and in software architecture likewise.
"An architect is someone who comes up with a plan to build something without any real care about budget, labor costs, or labor skills - both in software and in buildings."
Whenever I hear developers say stuff like this, they just sound junior/inexperienced.
> but that doesn't mean they are good at solving the goals business requires
I wonder if any newcomer to an organization, regardless of how senior they are, won't be in this same position. In order to solve business goals, they need to understand them properly. In order to understand them properly, they need context. The context comes from working in the organization for some time (months to years, depending on the size and the transparency of the organization).
> An architect is someone who comes up with a plan to build something without any real care about budget, labor costs, or labor skills - both in software and in buildings.
This is definitely not true. I always have to balance on time/on budget/meets requirements and the skillset of the people who are using my designs.
Whatever about a software architect (that can mean practically anything; it's very fuzzily defined) that's rather unfair on actual architect architects, who are absolutely concerned with the practicalities.
A programmer can program code good enough, but that doesn't mean they are good at solving the goals business requires and communicating it.
A developer can program and develop a small enhancement with good communication. Sometimes can also break things down so other developers or programmers can work on it to.
An engineer an orchestrate an entire new project and can identify multiple areas where developers and programmers can be involved. A good engineer will do so while maintaining great communication with the users to ensure they get what they want.
An architect is someone who comes up with a plan to build something without any real care about budget, labor costs, or labor skills - both in software and in buildings.