What's the difference between a senior Java developer and a Java architect? One can walk on water and the other can run. Put their resumes side by side, and their skill sets pretty much read the same: J2EE, Struts, Spring, Hibernate, <insert buzz word here>, <insert buzz word here>, etc. Is the difference in the way they code? Or in their years of experience? While at times walking on water may be easier to accomplish than many of the Java tasks we're faced with, the difference between an architect and a developer is breadth of knowledge verses depth of knowledge.
Over the past few months, I can't tell you how many times I have gone into an interview thinking the company, as it had advertised, was looking for an architect, only to arrive and find it really wanted a disciplined developer that followed good programming practices. Nevertheless, I'd cordially sit through the draconian interview—as, more often than not, a developer grilled me— knowing the interview was a waste of my time and theirs. And I'm sure the developer on the other side of the table was thinking, "How can this guy be an architect and not know all of the Spring, Hibernate, and Struts exceptions?"
What many hiring managers fail to realize is that an architect's goal isn't to master the details of existing implementations. Rather, the goal is to glean the workings of various technologies to solve problems, or better yet, find ways to create entirely new implementations. In essence, architecting embodies the core of object-oriented programming: to maximize component reuse.
Aren't the terms architect and developer simply variations of a title? That is to say, shouldn't an architect be willing to get his hands dirty to fill the role of a developer? No!
Architects are often idealized as Java gurus. The reality is they are not gurus. Rather, they are the creative visionaries of an organization's Java future. Think of it like this: A publisher wouldn't hire writers expecting them to fill the role of editors simply because they can write. Construction companies wouldn't employ architects expecting them to lay cement simply because they know how to read blueprints. Well, why should Java architects be expected to traverse the role of a developer simply because they know how to write code?
Sun has clearly differentiated architects from developers by providing two separate exams, the Sun Certified Developers Exam and the Sun Certified Enterprise Architects Exam. How well would you do if you studied all year long for the Architects Exam, honing your skills in object-oriented analysis, object-oriented development, Unified Modeling Language (UML), etc., only to show up and be asked to take the Developers Exam? The only difference would be the exam title, right?
However, let's face the hiring reality of IT. To get more bang for their buck, companies often want to hire a 50-50 architect—in other words, someone who is a 50-percent developer and a 50-percent architect. Undoubtedly, to be a good developer, one must have a solid understanding of the Java architecture. Conversely, to be a good architect, one must also be a skilled developer. Yet when the 50-50 approach is used to select a Java technologist, you end up with a generalist—not a specialist. In the end, this lack of decisiveness ultimately creates a lack of focus within your project.
| Subject |
|
|
|
|
|
|
|
|
|
|
|
( 1 2 all )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Well to be an architect ( no matter, software, enterprise ) sounds good but in most companies this role in not properly understoBy Anonymous on October 6, 2009, 6:57 pmWell to be an architect ( no matter, software, enterprise ) sounds good but in most companies this role in not properly understood. In software development companies...
Reply | Read entire comment
View all comments