maybe this is not the place where i should create this topic but i believe must of you including already ask this question , whats thas it mean being a good architect (J2EE architect for exampl), reading architecure books or get certified java architect its sufisant to be a good architect .... ? this topic its open for any proposition
1. Think about concurrent users. When designing applications, what if 1000 users hit the button? Keep this in mind while doing design etc.
2. How secure can one make the System? Firewalls, EJB layer security etc. Recently I have heard there are a lot of cross site request forgery instances. So how to prevent this?
4. How can you use JMX to update configuration parameters at runtime, so that a restart of the application server could be avoided?.
5. How can you avoid using Application server specific libraries. ex. weblogic.clob... etc and make it portable across ALL J2EE compliant servers?
6. Error handling: If you are using JMS Queues etc, what if the MDB's throw an exception? So provide a dead letter queue so that the messages can be salvaged later.
Also a good application should not only server the business needs, but most importantly be Error tolerant. Catch exceptions and customize the message for the end user.
Provide retry logic, if required and applicable.
7. Internationalization is another aspect that a good architect should be concerned about at the design stage.
8. Prudent use of design patterns to make the application extensible without too many code changes.
There are 3 steps to become a good architect
1. Systematic study - study books, magazines, articles and make certifications that help you learn things from context.
2. Experience - try participating in architectural decisions in a real project. Stay with the architect responsible your company and learning from him, learning with the situations and mistakes.
3. Be the architect - assume the risks of being an architect and design a real solution. Put the solution into production and seeing the result of yours desing decisions was positive or negative. learning all the time.
Learn from these 3 points and restart the cycle again.
And never forget the greatest motivation of a software architect:
"The challenge is to design a solution that is flexible enough to support changes in business and technology over time."