Software architecture when you come across this term you are going to be surrounded by a series of Questions, views and often confusions.
First of all you see different types of architects
Strategy Architect:- context is around preparing the overall strategy for a product or enterprise Solution
Software or application architect:-probably the context is around the project he is handling
DB Architect:-context is around Databases
Enterprise Architect:-Context is around Enterprise Level Of applications. Probably dealing with multiple application and Integration and collaboration
SOA Architect:-Context is around Services of the enterprise [see services as an approach of developing software as services]
Web Architect:-Context is WebBased Application
and the list is going on and on you might see Solution Architect,JAva Archietct,.Net Architect ,office architect,network architect and .....Never ending...
Second you are going to see what an architect's Role ,should he/she code where the boundary begin and where does it ends and what should be the deliverables etc..;
Here are few industrial views i have taken randomly:-
what skill should architect possess:-
http://blogs.msdn.com/marcod/archive/2004/07/30/202733.aspx
msdn secret of a great architect:-
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmaj/html/greatarchitect.asp
An Overly Long Guide to Being A Software Architect
http://www.from9till2.com/PermaLink.aspx?guid=0f47a7aa-66d8-4229-989f-afbe3ae7d8bf
So Now I'm A Software Architect. What Do I Actually Do?
http://www.awprofessional.com/articles/article.asp?p=417090&rl=1
Defining software architecture roles
http://www.theserverside.com/news/thread.tss?thread_id=42366
Fowler:Who Need Architect
http://www.martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf
The Role of the Software Architect
http://www.bredemeyer.com/who.htm
Artima :-Becoming an Architect
http://www.artima.com/intv/architect.html
Nick:-Enterprise Architecture Interview Questions
http://blogs.msdn.com/nickmalik/archive/2006/09/09/EA-Interviews.aspx
How Do You Define Software Architecture?
http://www.sei.cmu.edu/architecture/definitions.html
Wiki Pedia Software Architecture
http://en.wikipedia.org/wiki/Software_architecture
Architect groups:-
http://www.wwisa.org/
Simon:-What do you need to know to be an IT Architect?
http://blogs.msdn.com/smguest/archive/2006/09/10/748510.aspx
Ryan:-A Web Architect ?!?!
http://blogs.msdn.com/archetype/archive/2006/07/27/680735.aspx
AGILE ARchitect:-
http://www.agilearchitect.org/agile/role.htm
http://www.ftponline.com/wss/2003_04/magazine/columns/trends/
Becoming an Architect
http://www.skyscrapr.net/blogs/arcasts/default.aspx?id=168
What Is Software Architecture
http://www.ddj.com/blog/architectblog/archives/2006/04/looking_the_sof.html;jsessionid=RXUT0VNCPEPAQQSNDLOSKH0CJUNN2JVN
Anatomy of a Software Development Role: Solution Architect
http://www.developer.com/mgmt/article.php/3504496
Should Architects Code?
http://www.ddj.com/blog/architectblog/archives/2006/04/should_architec.html;jsessionid=KZXKX23IMR4G4QSNDBCCKH0CJUMEKJVN?cid=GS_blog_arnon
Architects Must Write Code
http://www.jrothman.com/weblog/2006/04/architects-must-write-code.html
anatomy of solution architect :- http://www.developer.com/mgmt/article.php/3504496
Third what skills should i possess to be an architect and what all should i know ?
Primitive ones would be :-
Business context:-You need to know the business or product for which you are working?
Problem in hand:- You need to know what problems you are solvings?
Design :-You need to know Design tidbits [diagrams ,documents] and the design process [how to construct the base and framework out of the different abstract and business ,product requirements] you might be asked if you know UML,RationalRose,Visio etc;
Coding:-You should know how to code and what to code?
Deployment:-You need to know the deployment models
Tools and Technology:-This is a must whether you are into any of the languages,platform and OS
Security:- You must know about te security aspects
Processes:-software processes or methodlogies[waterfall,RuP,Agile,XP,TSP-PSP....] ,architectural processes[4+1,MSF,SOA...] , project management processes ,testing ,quality ,conformance processes like[TDD,Nunit,vsunit,Ndoc,Ndepend.....} and so on...
Patterns:-You should know different patters for efficiently achieve the required goals
Software parameters:-[scalability,performance,security,usability,reusability......and so on]
Management:- you need to know Management view points
Different Frameworks and OpenSource :-Fine as many you knows[i found many ll ask you ...]
There might be more like Client based technologies like WEB 2.0 paradigm ,Servers and Network technologies etc; etc;
Few of the resources again taken randomly :-
Architect Resources:-
http://www.bredemeyer.com/
http://en.wikipedia.org/wiki/Service-oriented_architecture
http://msdn.microsoft.com/vstudio/teamsystem/architect/
http://www.sei.cmu.edu/architecture/
ftp://ftp.software.ibm.com/software/rational/web/whitepapers/G507-0956-00.pdf
http://www-128.ibm.com/developerworks/architecture/roadmap/
http://msdn.microsoft.com/architecture/soa/
http://msdn.microsoft.com/architecture/
http://www.devx.com/architect/Door/7046
http://www.iasahome.org/iasaweb/appmanager/home/home
http://msdn.microsoft.com/practices/
http://www.davidchappell.com/blog/index.html
http://www.sei.cmu.edu/news-at-sei/columns/the_architect/architect.htm
http://dotnetslackers.com/Architecture/re-default.aspx
http://www.rgoarchitects.com/blog/default.aspx
http://msdn.microsoft.com/vstudio/teamsystem/expand/content/default.aspx?ContentType=All&TrainingLevel=All&Role=Software%20Architect
http://www.iasahome.org/iasaweb/appmanager/home/home
http://www.rgoarchitects.com/blog/CategoryView,category,Software%20Architecture.aspx
http://www.microsoft.com/events/series/archdesignsystems.mspx
http://www.opengroup.org/architecture/
http://www-128.ibm.com/developerworks/wireless/library/wi-arch11/-http://teched.internetbroadcast.net/ARC/ARC219_files/Default.htm
http://martinfowler.com/bliki/design.html
Finally you ll see many approaches and you ll found different processes in different software organizations.
Now the BIG questions what should you do? What you ll learn and how your approaches would be for the above.
My view is keep your basic straight and learn as much as possible and don't buy into Architect shouldn’t need to know this. this is not the role architect should do .My view is straight forward think from the perspective of Business or product solutions you are providing and from the view of what goals are you trying to achieve?
Is your application meeting your need and what improvement can you provide adopting a process, pattern and services etc;.Ask yourself why are you thinking this would be a better approach ?Weigh all these against different measures and then come to the conclusion.
I am not against all these processes, methodologies after all these are already being practiced in different organization/individual and providing values for their investments ,However none would guarantee that you are going to achieve X percentage if you follow this and know this Y things. All are context driven.
However my view is you should must know the following whether you are aspiring to be a web, database, solution or enterprise architect:-
Business or goals:-understand your business and goals you are trying to achieve
Technologies: No need for you to learn all technologies [you can't ].i don't bye into the vendor neutral one. But whatever your area you should be very well versed with the technologies side. unless you didn't understand the underlying not and bolt you can't expect urself to provide a better solution and arcitecture.This however does not indicate that you need to know every low level plumbing but you should be well versed enough to adopt into different requirement easily providing a better solution.[Sorry no measurable criteria here]
Some processes: - You need to understand few standardized processes
Different Patterns:-You need to know a few and you should be open for few
Design Skills :- You need to be well versed with design skills
Finally keep yourself open to adapt into new methodologies,technologies,processes and patterns.Thinks about LooseCoupling,reusability,Performance and scalability and understand those closely.
BE INNOVATIVE AND MEASURE the -ve and +ve on CONTEXT not on standard.
Last word I am not old enough in this industry to comment on historical benefits but well enough to comment what i found twere the key factors .
I am open to know your views on the same.