I have been programming in Java for close to 1 year now. All this time I was a developer who does coding and testing. I used to get the design from some of my senior and my job would be converting the design to reality. But, I feel its the time that I should start thinking in another way – designing the application rather than coding it! I would like to code, but design has more responsibilities and challenges than plain coding.
The next carrier path will be a Java Analyst -> Java Architect. But, I am still confused on how to achieve this. One solution I derived is make the Java foundation storng, Learn UML and application architecture books. Of course this will be the obvious path for most of the Java architects. But where I am stuck with is the resources. I am still googling for some good resources on “how to become a Java Architect!”, but haven’t got any satisfiable link.
But, I keep on continuing my quest. Any advices on this will be really appreciated! lets see what I can hunt!
——
Update:
- Received a comment from Simon Brown with a link to a post Role Profile for Software Architects
- From IBM Developer works – Characteristics of a software architect
- Harsha shared the link to Recommended Reading for Developers
- Soren shared a interesting post Do We Need Software Architects? 10 Reasons Why Not
{ 22 comments }
Here’s my view of what an architect is, which might help you figure out what your next learning steps are -> http://www.codingthearchitecture.com/2007/07/31/role_profile_for_software_architects.html
Veera,
You can probably talk to Binil (Binil Das Christudas)
He is a Sun Certified Enterprise Architect and also MS Certified Architect.
Walk to him and seek help. He will be more than happy to help you in your quest!
Hi Chaitanya,
Thanks a lot for your information. Will get in touch with him!
Hi Simon,
Thanks for such a wonderful link. It gave me a general idea about how a architect profile will look like.
Well my domain is java!
One quality of an architect is to know whats happening in *his world* and what best suits the situation.
I also suggest you to read Agile development related books. It would make you a good developer.
Becoming Java architect is a long run. Before that we should become good developer. To become good developer, apart from having strong skills, we should also learn to identify what best practices we are following, what design patterns we use, are we effectively coding, is solution optimized one or can we make it better?
This link may help you, http://www.codinghorror.com/blog/archives/000020.html
And to become Java architect, we should stop thinking like developer. The manager I report to is a principal architect. I always wonder the way he looks at the problem. I am learning quite from him
There are too many types of architects out there (the same tag sometimes means different things in different organisation).
I will attempt to summarise what I’ve learnt in the 10 years or so I have been carrying the tag architect
a. Fallacy #1 : Architects don’t code. Don’t believe this .. at all .
b. Architecture is a lot about experience, lot less about theoretical models. Theory helps, but you will keep on getting better with experience. Experience helps a lot more.
c. Architecture is about risk management : This is one of the important differences wrt. pure programming. A pure development role focuses much lesser on risk management. An architect focuses continuously on risk management.
Reading books to learn some architect fundamentals is a good idea. Reading as many software websites / blogs etc is a great idea. If you truly enjoy the job of working in software (and not the money or any other material thing), then I applaud you on wanting to go to the next level.
I have been working with Java for over 10 years now and have created the architect for many successful projects….however, it takes many years of hard work to really succeed in designing a good software product. Keep your eyes on your goal, but please put in more years working in the “trenches”…..it takes many years of software development to be an architect. Seeing other architects excel and fail both provide you great knowledge that no book will ever teach you. Keep your eye on your goal and you will get there, just don’t be discouraged if it takes a few years.
Regards & God Bless,
Tom
you are NOT going to learn architecture from a book
join a big company, with people better than you, and rise up the ranks learning from them along the way
otherwise I’d be scared to work with you
you lost me at “close to 1 year”
Thej, Harsha, Dhananhay and Thomas
Thanks a lot for your advice.
DKaz,
I am already working in a BIG company. So, I guess I am in a right track and don’t worry, I am not that bad to work with! I am just a learner.
Mike,
I know my programming experience may be very little to talk about application architecture. And I am sure I am not going to architect applications from tomorrow itself. I just wanted to know about how other architects lead their way to success so asked about it.
I strongly suggest reading about domain-centric design. Don’t worry too much about Hibernate, Struts, Spring, Axis, XFire, etc. Get a good feel for understanding the domain objects and how to model them. From there building a persistence layer or a web ui is just details. Eric Evans and Martin Fowler are terrific resources, particularly “Domain Driven Design” by Evans.
Read the book Head First Object Oriented Analysis and Design, It helps.
Step 1 is get rid of the idea of being a ‘Java Architect.’ It’s not about the technology, it’s about understanding business requirements and technology, and being able to bridge the gap between them. To do this you have to get beyond a single technology as a solution and have a broad array of skills and technologies at your disposal.
Communication skills are extremely important. I don’t mean just being able to talk and write. You need to be able to listen and you need to be able to adapt to your audience. You might work really well with developers, but if you can’t work effectively with product managers or sales people all bets are off.
And, of course, being a top-notch developer helps
Seriously, there is a reason why good architects are far and few between…
Apart from that, the way to move up in the ranks is to establish a strong trust relationship between you and the higher-ups. Make yourself known and make your aspirations known. Show them you understand the business and know how to use technology appropriately. But even more important that having the right ideas is you *MUST* execute on them consistently. If they know you, trust you, and are absolutely confident you’ll get things done more responsibility will head your way, guaranteed.
If you want to become a “Java architect”, just take the exam:
http://www.sun.com/training/certification/java/scea.xml
Otherwise, “architect” is many things, differently defined in each organization. Technical architect, enterprise architect, etc, etc .. Figure out what you need for the architect skill in your organization, and work towards that. As others have pointed out, probably only few organizations honor 1 year experience as an architect
Finally, decide if its really what you want. My experience with architects is not always good. See eg. http://softwarecreation.org/2007/do-we-need-software-architects-10-reasons-why-not/
Cheers,
Soren
Hi Scott, Armen, Steve and Soren
Thanks for sharing your views.
Steve,
I agree with you. I should have used the word software architect, instead of Java architect. But, as I am working in Java now, I prefer using the term ‘Java Architect’.
Don’t become an architect, it is corporate bullshit. You are headed into a meaningless engineering career. Trust me, when you drop out of the corporate naming scheme, you will become a good engineer. Only work for companies that hire real engineers, not career programmers, and definitely not architects. One year of industry experience is nothing, focus on developing, then let them suck you into “architecture” …
So what you have decided now ?
Hi Soren,
Currently I am in a plan to move towards the Technical architect skills, in which I am more interested. I am sure that the certification you had mentioned earlier in your comment will definitely help me in getting more architectural knowledge.
I have to work on it.
Yeah, sure, Go ahead..
Hi Veerasundar…
Nice to see ur blog.
So… what you are upto now.
How far you have succeded and what are ur achievements on techincal line.
Thanks Amos for the asking.
I’m currently into the tech track in my project and learning the things bit by bit. I’m sure becoming a architect is a long journey. Even though I’m going slow, but I’m on the right track.
Comments on this entry are closed.