wood burning stoves 2.0*
The moose likes Architect Certification (SCEA/OCMJEA) and the fly likes Part II - How do develop an architects mind? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Certification » Architect Certification (SCEA/OCMJEA)
Bookmark "Part II - How do develop an architects mind?" Watch "Part II - How do develop an architects mind?" New topic
Author

Part II - How do develop an architects mind?

Ram Dhan Yadav K
Ranch Hand

Joined: Aug 13, 2001
Posts: 321
Hi All,
I have been developer for long time and i am not sure whether i have an architect mind! But i have decided to get certified in SCJA and so completed part I successfully. Now coming to Part II ,i guess i need to develop an architects mind first. I need your help to make a progress in this path. I want to know what books i have to read for this and any other tips and suggessions for me before i buy Part II exam.
thanks,


Ram Dhan Yadav (SCJP, SCWCD, SCJA-I, IBM EC(483))
"We are what we repeatedly do. Excellence, then, is not an act, but a habit."
Ram Dhan Yadav K
Ranch Hand

Joined: Aug 13, 2001
Posts: 321
Hi,
Looks like no takers. Well i guess as i started thinking on this, i started getting few pints. I would say start reading Larman to start with, it would give a real foundation.
I would appreciate any other ideas!
thanks,
Burk Hufnagel
Ranch Hand

Joined: Oct 01, 2001
Posts: 814
    
    3
I read your message a while ago, but didn't post because I couldn't think of anything worth reading. I don't know that I have anything worth reading yet, but I wanted you to know that I think your question is a good one.
What's the difference between the way a developer thinks and the way an architect thinks? Is it just the level of detail, or is there something else?
I've been writing software professionally since 1979 and I've been responsible for the design for most of the time, but I don't consider myself an architect. Why? I think it's because the programs I've written tended to be restriced to one tier - maybe two at most. But they were never enterprise wide systems.
So, I guess what I'm saying is that while a developer may take functional requirements, produce a design and then write the production level code for it, it's not the same scope that an architect deals with... If that makes any sense.
Anybody else want to weigh in with their two cents?


SCJP, SCJD, SCEA 5 "Any sufficiently analyzed magic is indistinguishable from science!" Agatha Heterodyne (Girl Genius)
SJ Adnams
Ranch Hand

Joined: Sep 28, 2001
Posts: 925
I was tempted to write something too, but since I'm not an architect don't consider myself qualified.
I think experience is the fundamental item of importance. A (Java) Architect should have had a good grounding in C++, VB, Perl, sh, etc. I don't think an Architect should be too evangelical with new technology, they need to be more thoughtful and mature. Experience brings other skills such as RDBMS, Realtime databases (Tibco), Operating systems etc. Methologies too RUP, OMT, Booch..
Second is technical competency. An architect needs to know everything about everything. He/she shouldn't dismiss (say) the programmers exam because they feel it beneath them. They also need to be aware of emerging technologies and have a balanced opinion of them.
Third is Project appreciation. An architect needs to understand the politics of the company, what things are important (money, timescales), what things are not (font used in documentation). If a project is important to the company's survival or if it something that a manager is using to get themselves promoted ( and of no real commercial value to the company). They need to know that if the customer wants something done, it needs to be done, hack/hardcode it - forget about the architecture.
Forth, but very important is the ability to mentor junior members of the team - which is why point 2 is important.
Burk Hufnagel
Ranch Hand

Joined: Oct 01, 2001
Posts: 814
    
    3
Simon,
You're an SCEA and you scored 85% on the part that architects actually do, yet you don't consider yourself and architect. That seems kind of strange to me.
I think what you said could best be summed up in a couple of words - "an architect needs to know everything about everything". I have to disagree. If that's the criteria to use then there probably aren't more than a handful in the world.
I think it's closer to what people here have said about the SCEA itself - a mile wide and an inch deep. An architect needs to know something about almost everything - more in some places, less in others. But to expect that anyone could understand everything about all the various topics (not to mention the details of a particular implementation) is way too much.
Maybe I'm wrong and maybe that'll be a problem for me later, but I think it makes sense to expect an architect to be expert in a few areas and simply knowledgeable in others - and to know where their weaknesses are so they can call in the specialists when and as they are needed.
Burk
Burk Hufnagel
Ranch Hand

Joined: Oct 01, 2001
Posts: 814
    
    3
Whoops! I thought I was done but forgot to mention that I completely agree that if you want to succeed, you need to understand the non-tech aspects - what you called Project Appreciation (politics, priorities, etc.).
TTFN!
Burk
SJ Adnams
Ranch Hand

Joined: Sep 28, 2001
Posts: 925
Burk,
Well like my sig file says I'm looking for work, so I'm not an architect. I have 2 interviews lined up for this week (developer positions) and have applied for a job as a junior technical architect. They came back to me saying I didn't have enough PL/SQL experience....
If your interested in the details go to www.jobserve.com and search for "Junior Technical Architect" (there is only one, posted 15/02/2002 )....
Anyway the agent said this comment came from the development manager, so it's not like the HR person is looking out for keywords. All is not lost, I've written back giving all the details of projects using PL/SQL so hopefully something will come of it.
Ok I don't 'need to know everything about everything', but certainly need to know everything about what I am asking the development team to do, maybe not down to method signatures but certainly what can & can't be done.
Vivek Viswanathan
Ranch Hand

Joined: Mar 03, 2001
Posts: 350
hi
I have to tell you guys that is has been really very helpfull for me. I gave my SCEA - I back in June 2001, I still have to give the other 2 exams I have downloaded the assignment, and started with it, but I dont think there is anything much to drive me. I dunno y ???
I think is is because uptill June 2001 I was working on J2ee Technology for developing a financial portal for a london based company, after which I was shifted to a differnt project and now I have to work only on Oracle PL/SQL and Unix shell scripts. Any tips on how I can get my as* kicked so that I get back online and get on with the assignemnt
Vivek V
SCJP, SCJD, SCEA-I


Vivek Viswanathan SCJP 1.2, SCJP 1.6,SCJD,SCEA,SCWCD,IBM-484,IBM-486,IBM-141,Ms.NET C# 70-316,SCMAD, LPIC-I
Chintan Rajyaguru
Ranch Hand

Joined: Aug 19, 2001
Posts: 341
I think the architect is the one who knows what he does not know (so seeks help) and knows what he knows (so applies the knowledge).
Being an architect also involves decision making ability. If you can't decide between different things, you are just a developer (who does what he is asked to do).
Architect understands trade offs very well (should I cache the data in the memory or make multiple round trips to the database?)
I think an SCEA is jack of all and master of Java.
Ram, if I were you here is what I would do:
[1] Try to team up with someone and discuss. If possible try to teach someone. When you teach you think of more factors and justify them all (which an architect has to do).
[2] Question your own design. It is hard to be two different personalities at the same time. But if you create a solution or develop an idea and find ways to prove it wrong, you are forced to find more and more ways to justify your idea or even accept the flaws and change the idea. (very important characteristic is NOT to have resistance to change)
[3] Look at the problem from 30000 ft.
This list could keep getting longer. It could even be wrong because even I am not an architect.
Chintan
[ February 19, 2002: Message edited by: Chintan Rajyaguru ]

ChintanRajyaguru.com
SOADevelopment.com - Coming soon!
Omar Ocampo
Greenhorn

Joined: Jan 27, 2002
Posts: 15
Hey guys,
I thought I throw my two cents on what I consider to be architect responsibilities. By the way I have been an architect (at least my job titles have had the architect word attached to them) for the last 3 years.
In my opinion an architect is someone who can do the following:
- Participate in a requirement gathering and influence the requirements outcome. For example, when product management was going crazy on all the things the applications should do, I put on my performance hat on and started asking questions about response time, number of clients, the smallest machine this app was suppose to run on, etc. The point I'm trying to make here is that, because as a developer I had built similar systems and learned (should read got burned) on issues that almost cost the project to fail. Now as a senior engineer (architect) I make sure to bring these issues up front. That is, I let my boss or the client know right up front what problems I have encountered in the past and how they should be confronted. The idea is not to repeat the same mistake twice.
- Lead / inspire the development team. By now the architect has a good undestanding on what needs to be done. His job here is to make sure the designers understand what needs to be done and answer questions that designers may have. The designers do the solution and the architect participates on design reviews and code inspection reviews. As all this is going on the architect is thinking on the strategy to stress-test the system, what kind of installation files or program should be created, what are the system point of failures and how should they be addressed, etc.
- Setup / configure the production staging machine. The architect should know that hardware and operating systems need to be tuned to better run the application. This doesn't necessary mean that the architect knows how to do these thing, but he is got an ideas on what needs to be done and so, requests for resources that can perform these tasks. After a while, he'll be able to learn from these specialized resources and thus in the future be able to do the task himself.
In a nutshell, that's pretty much what I do as an architect. I'm sure I have left some critical things out, but the above list should give you the idea of my responsibilities as an architect.
It would be really good if other practitioners architect and/or sr engineer shared their role's responsibility so that others can get the picture of what being an architect is all about.
Omar
====
herve attia
Ranch Hand

Joined: Sep 28, 2001
Posts: 138
If you want to read some architect work around J2EE.
To figure out how a architect thinks and makes a decision...you can read this book from Sun :
J2EE Technologies in practice.
Burk Hufnagel
Ranch Hand

Joined: Oct 01, 2001
Posts: 814
    
    3
Simon,
>> "Well like my sig file says I'm looking for work, so I'm not an architect."
If you aren't employed then does that mean you aren't a programmer either - or does it just mean you aren't an employed programmer?
Burk
SJ Adnams
Ranch Hand

Joined: Sep 28, 2001
Posts: 925
well i'm an unemployed developer then
Burk Hufnagel
Ranch Hand

Joined: Oct 01, 2001
Posts: 814
    
    3
More thoughts - sort of...
I just got a brief look at the book that goes with Sun's course - SL-425 Architecting and Designing J2EE Apps - and one of the things I got out of it is that an architect needs to consider the non-functional requirements (like scalability, availability, etc.) while the designers and developers are more focused on the functional requirements (UI design, being able to look up an order, etc.).
IMO, an architect needs to consider both functional and non-func requirements whereas a designer/developer doesn't need to worry about the non-functional requirements because they tend to be outside the range of his/her control - i.e. we're going to have three web servers, web-tier components will be on a separate box from EJB tier components - the kind of things that are usually dictated.
I guess it really is a different way of thinking - or maybe it's just a higher level.
Kevin Yip
Ranch Hand

Joined: Oct 17, 2000
Posts: 110
Architecture is both an art and a science. To be an architect has to master both of these.
Thus, what distingush an architect from a developer is his/her breadth of knowledge and his/her artistic talent.
Take the meaning of the word 'artistic' broadly to include handling creatively all kinds of situations like dealing with clients, teams, contractors, employers etc.
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: Part II - How do develop an architects mind?