aspose file tools*
The moose likes Jobs Discussion and the fly likes In need of Guidance Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Careers » Jobs Discussion
Bookmark "In need of Guidance" Watch "In need of Guidance" New topic
Author

In need of Guidance

jibs parap
Ranch Hand

Joined: Dec 07, 2004
Posts: 134
I've been working in java support for some time now which is more of an analyst role.

Earlier I thought of moving into development next but this seems difficult because to get a grasp of millions of frameworks emerging and changing everyday and keep uptodate with them is a big big task and especially with your family(spouse and kids) around, this looks difficult.
Im interested in Enterprise architecture and move my career into that, probably focusing more on JEE solutions to start with. I admit there are also changes in the architecture world but there seems to be less time needed to get updated compared to that needed if you are in development role.

I would like your opinion
- if its a good decision in terms of the amount of preparations needed and the jobs available.
- how best to prepare for this to get to a level where you can say you have a reasonable knowledge and confidence

Thanks in advance
Marc Peabody
pie sneak
Sheriff

Joined: Feb 05, 2003
Posts: 4727

I don't think EA is a shortcut away from learning. An architect should be more knowledgable overall about various technologies than the average developer.

The best advice I can give is to learn more about what you enjoy. If you love what you learn, it won't feel like a chore.


A good workman is known by his tools.
jibs parap
Ranch Hand

Joined: Dec 07, 2004
Posts: 134
Im not trying to look for a short-cut here. Im ready to work hard. I think its more difficult to keep up to date with the technology from developer perspective compared to a designer/architect perspective. Probably thats one of the reasons why people tend to move into designing and architecture.

My work situation is so tight, so should try hard to make time to learn what I enjoy. But my question is, is that worth going in the 'enterprise architecture' route?

I know there are so many experienced hands here in this forum, so please throw some light. This is going to help me immensely.

Thanks
Sonny Gill
Ranch Hand

Joined: Feb 02, 2002
Posts: 1211

jibs parap wrote:
I think its more difficult to keep up to date with the technology from developer perspective compared to a designer/architect perspective.


Marc already answered your question. To be an effective architect, you have to be a very good developer first.
Unless you are hoping to become an architecture astronaut.


The future is here. It's just not evenly distributed yet. - William Gibson
Consultant @ Xebia. Sonny Gill Tweets
Marc Peabody
pie sneak
Sheriff

Joined: Feb 05, 2003
Posts: 4727

jibs parap wrote:I think its more difficult to keep up to date with the technology from developer perspective compared to a designer/architect perspective.

You are claiming that it is less work to keep up with technologies as an architect than it is as a developer. Doing less work would be a shortcut. I don't mean to imply that you don't intend to work hard, just that you are looking for ways to work less hard. Work often isn't fun, so certainly can't blame you.

I do agree that there are many architects out there that never really learned what they should have, which may explain your perception that architects don't need to learn as much. As the Joel on Software link above points out, there are plenty of giant corporations out there willing to hire unproductive people because they think their IT department needs official architects even if the department's management can't explain why. Personally, I'd hate to have a position like that as I like to believe that I'm providing enough dollar value to the company to meet (better yet, to greatly exceed) what they're paying me.

Very few developers spend their own time to better themselves. If you can pull off 15 minutes a day of your own time learning new technologies, you can get ahead of your colleagues. If you can do 1 hour a day you can leave everyone in the dust. An hour sounds like a lot of time but a lot of folks spend considerably more than that watching television and funny internet videos each day. If you spend most of that hour learning fun things, it doesn't feel like work.

I recommend the 15 minutes a day to get started. It might be more encouraging for you if you track your progress in some kind of log. A single day's entry could be as simple as:
read article on Spring WS: http://somelink
installed Groovy for future learning
found link on beginning JSF tutorial: http://somelink

You do not need to become an expert in everything. Try to become an expert at something but try to learn a little about everything.
jibs parap
Ranch Hand

Joined: Dec 07, 2004
Posts: 134
Marc,
I didn't claim it(learning design/architecture)is less work. Also I don't agree that only good developer can become good designers/architect. I would like to consider designing and development as 2 separate departments though they compliment each other. Laying bricks is different to how a building is designed. A good brick layer need not be a good architect and vice versa.

Development/ Programming requires you to go into minute details of syntax of one or more languages, of using different tools for development, testing, building, working of different frameworks etc etc. This needs time and lots of energy.
But designing is not about syntax or tools (its always good if you know them though) but its more about the ability to visualise system as a whole, analyse its pros and cons and convincingly make technical recommendations. In my opinion, this is a different discipline to development. A good designer needs to have knowledge in different areas and will be able see things at 'helicopter level'.

Im not here looking for a short-cut. I appreciate how hard it is to become a good designer/ architect. I prefer it rather than to be a developer. I should admit though I love development but as you get older time is a big constraint - own family, spouse's family, kids, parents, grand parents, social commitments etc. See, you don't have enough time to get up to date at least with one language(say Java) and its related tools and technologies and of course you will feel you can't remember as you used to in the past.

In my opinion, provided you have a genuine interest to be an architect/ designer, the time you spend learning one language as if you were to become a good developer, could be used to become a good designer. Also, I love to read more about different technologies available in the market rather than just one or two of them.
My aim is to become a good Java designer/architect(because I know Java and has been using it for my living for the last few years) and later becoming a Solution architect. I know reading is a must and lots of books available; what more... However, Im not sure how to go about with this, I mean, how to take this forward or in other words the steps/ preparations needed to become a good designer/architect.

I know there are quite a few experienced hands in this forum. Your comments/ suggestions/ recommendations/ advice are much valued to shape my career.

Thanks.
Gabriel Claramunt
Ranch Hand

Joined: May 26, 2007
Posts: 375

As a developer you can give yourself the luxury of specializing on only one language and a few frameworks. As an architect you'll need to quickly evaluate many different frameworks, identify the one that fits the constraints and be aware of the trade-offs (and hope you did your homework right and it will endure through the lifetime of the software without major surgery!). As a developer you can pick a framework because is cool or trendy, as an architect you cannot afford that.
Software development, as a programmer, a designer, as an architect always involve LEARNING: either from the technology side (frameworks, paradigms) or from the domain. It doesn't mean you need to sacrifice your personal life (I'm a family man too!), you can do it during work hours (I'll go further and say: if you can't learn in your job, leave it).
I don't think there's a clear division between programming, design, and architecting, is more like a continuum, and as you grow and acquire more experience, you can move to higher levels of abstraction.
I believe an architect must code the critical parts of the system or risk getting out of touch and become an "architecture astronaut" that draws pretty pictures from his "ivory tower" and produces unrealistic desings. The brick layer/architect metaphor is flawed and dangerous... if you like the architecture metaphor, it will be something like: a programmer designs a small house, a designer can do a mansion, an architect design buildings, landmarks, (and neighborhoods) and the enterprise architect gives the guidelines to grow a city... there's no easy shortcut...


Gabriel
Software Surgeon
Sai Surya
Ranch Hand

Joined: Feb 08, 2006
Posts: 460

I believe in getting into job and learning from that point. Even if you read hundred books you will not be an architect. You cannot become an architect by sitting in a cave and working Apply for Architect jobs, I got few calls sometime back asking for entry level architects, try for this kind of roles. Since you spent time in programming until now, brush up your UML OOAD and try for architect job. Start learning from that point.

I personally refer the books like Applying UML and Patterns (Craig Larman), UML Distlled (Martin Folwer) and Refactoring (Martin Folwer). These are great books and gives you confidence to become designer/architect.

Try to learn every minute detail. Every point counts. Learn performance tips on how to improve system performance. I read somewhere that a developer is concerned with what will happen if user clicks a button, but an architect is concerned with what will happen when ten thousand users click a button.

Good luck.


Sai Surya, SCJP 5.0, SCWCD 5.0, IBM 833 834
http://sai-surya-talk.blogspot.com, I believe in Murphy's law.
jibs parap
Ranch Hand

Joined: Dec 07, 2004
Posts: 134
I understand if you are a master of all you will be a good architect. I think we 'software technologists' fail to decouple design and development(though they are interwoven in many aspects). This makes the life of a would-be architect difficult in the sense that he doesn't know where to start and how to progress because he is expected to know everything. There are so much to take in and we fail to be selective at least in the initial years of becoming an architect if we follow the principle of knowing everything.

I would like to structure my walk to become an architect in chunks like we develop a product in modules; this helps very much to appraise your progress. Here I aim to become a JEE architect to start with; the study material can be split into -
1. JEE specific(front-end and middle-ware)
2. Design specific
3. Anything other than above.

I would like go through 3 levels/ check-points in this journey and target to attain the required level.
1. Basic
2. Intermediate
3. Proficient

Now Im asking your help from your experience what to cover in each level in terms of the books to be covered, the kind of project that should be exposed to etc..

Thanks for the people who have already contributed. Further comments and suggestion or advice are kindly expected from you and others too.
Marc Peabody
pie sneak
Sheriff

Joined: Feb 05, 2003
Posts: 4727

jibs parap wrote:Laying bricks is different to how a building is designed. A good brick layer need not be a good architect and vice versa.

That would be great, but we're talking about software here which is a completely different story.

A good developer does need to understand design.

An unskilled developer who does not demonstrate good design sense will create inflexible, unmaintainable code... resembling a brick wall.

Software, unlike brick walls, needs to be moldable.

It's certainly possible to study design and non-functional requirements. My opinion is that it isn't very practical to do so.
Gabriel Claramunt
Ranch Hand

Joined: May 26, 2007
Posts: 375

A good place to start is the International Association of Software Architects. They have a section on career planning - how to become an architect
Sonny Gill
Ranch Hand

Joined: Feb 02, 2002
Posts: 1211

jibs parap wrote:
I think we 'software technologists' fail to decouple design and development(though they are interwoven in many aspects).


In my opinion, you are making an artificial distinction between those roles that is often made by the business types.
In reality, the same person can be suitable as an architect on one project, a senior developer on another, a junior developer on the third, depending on the scope and technical difficulty of the project.


Here I aim to become a JEE architect to start with; the study material can be split into -
1. JEE specific(front-end and middle-ware)
2. Design specific
3. Anything other than above.


See, a good developer with a few years of experience (call her a senior programmer if you will) should know this stuff anyway, whether or not she calls herself an Architect.

Anyhoo... as you plan your study, keep in mind that as an architect you will need to make technical decisions like -

web based or desktop app or a combination?
action based MVC framework or a component based framework?
persistence technology - relational DB or some other kind of database (db4o, neo4j, berkeley db etc.)?
if relation DB, whether to use straight JDBC, light weight tool like iBatis, or full blown ORM like hibernate or other JPA implementations? or a combination of those?
How to design the system to provide easy access through mobile or other devices?
Is there any part of the system where a scripting/dynamic language can be used?
Scalability - (in JEE world) Terracota, Javaspaces, Coherence. May be something like Hadoop.
Where and how to use messaging systems? which one (Mule, ServiceMix)?
whether to use OSGi (Coming soon..)?


I guess You could start down the road to becoming an architect by reading the Design Patterns and the Enterprise Integration Patterns books, and gaining a general knowledge of some of these technologies.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: In need of Guidance