wood burning stoves*
The moose likes Design and the fly likes Software Architecture for Developers question: a good architect should be a good programmer? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » Design
Bookmark "Software Architecture for Developers question: a good architect should be a good programmer?" Watch "Software Architecture for Developers question: a good architect should be a good programmer?" New topic
Author

Software Architecture for Developers question: a good architect should be a good programmer?

Rogerio Kioshi
Ranch Hand

Joined: Apr 12, 2005
Posts: 689
Do you think a good system architect should be a good programmer too?


SCEA 5 (part 1), SCBCD, SCWCD, SCJP, CLP, CLS
Simon Brown
sharp shooter, and author
Ranch Hand

Joined: May 10, 2000
Posts: 1913
    
    6
I do, yes ... and I think that modern software architects should ideally write code too. This doesn't mean they need to be the best coders on a team, but my experience is that most good software architects are fairly decent coders.
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 30919
    
158

There's a great discussion on whether architects should code.

I do think a good architect should be a good programmer. A good architect needs logical thinking and troubleshooting skills to be successful. However, the inverse is not always true. A good programmer will not necessarily make a good architect since other skills are needed to. Some of which involve talking to people.


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Burk Hufnagel
Ranch Hand

Joined: Oct 01, 2001
Posts: 814
    
    3
I don't know about a system architect, but I do believe that a software and solution architects should have a background in programming - and keep up with what's new in the languages they're designing for; otherwise how will they know that their solutions will work?

I think it's best if they were a good programmer too. As an architect, I draw upon my knowledge and experience as a programmer when working with the developers implementing the things I've designed or help them design, and understanding good programming practices helps me see where things are headed.

Just my two cents,
Burk


SCJP, SCJD, SCEA 5 "Any sufficiently analyzed magic is indistinguishable from science!" Agatha Heterodyne (Girl Genius)
Simon Brown
sharp shooter, and author
Ranch Hand

Joined: May 10, 2000
Posts: 1913
    
    6
Burk Hufnagel wrote:I don't know about a system architect, but I do believe that a software and solution architects should have a background in programming - and keep up with what's new in the languages they're designing for; otherwise how will they know that their solutions will work?


That's my view too, and it's why architects do need some technology knowledge and experience.

Here's a question to everybody else ... given that the software development industry is moving so fast, how do you keep your technical skills up to date?
Junilu Lacar
Bartender

Joined: Feb 26, 2001
Posts: 5007
    
    8

Simon Brown wrote:Here's a question to everybody else ... given that the software development industry is moving so fast, how do you keep your technical skills up to date?

The same way you get to Carnegie Hall: Practice, practice, practice! and Read, read, read! Social media like Twitter and G+ are helpful too although when you follow too many threads it starts to be like sipping from a firehose.


Junilu - [How to Ask Questions] [How to Answer Questions]
Jayesh A Lalwani
Bartender

Joined: Jan 17, 2008
Posts: 2433
    
  28

I learn what I need when I need. JIT learning. I keep track of the trends, but don't go into specifics of a technology/tool unless the need arises. After spending 17 years in the industry, I know I can pick things up "on the job". So, I don't worry about not learning things

Back in 2005, I was all into web development using Struts. we would roll our own controller, service layer, DAO layer. I started getting into bit of AJAX. EJB was rolling over people at that time, but I never bothered learning it. Then, I joined a search engine company, and this product was about shaving microseconds of response times. So, again it was Struts controllers that talked to our custom backedn search engine. I didn't learn any "new" technologies, except that I learnt how to build kick-ass, high performance, grid enabled software. By the time I came out of this company, the EJB cloud had already rolled over the industry, and Spring was the hottest thing and cloud computing was bubbling up. So, I went straight from Struts to Spring. Skipped the whole EJB crap that everyone else had to deal with
Junilu Lacar
Bartender

Joined: Feb 26, 2001
Posts: 5007
    
    8

One tool that can help individuals and organizations navigate the technology landscape and prioritize focus and effort on learning new technologies is the Technology Radar: http://www.thoughtworks.com/radar
Paulo Marcio Brandi Rezende
Ranch Hand

Joined: May 13, 2008
Posts: 34

A goog civil engineer should be a good mason? Of course I'm talking about the profession, not the secret society :-)


SCJP, SCWCD, OCBCD
Junilu Lacar
Bartender

Joined: Feb 26, 2001
Posts: 5007
    
    8

Paulo Rezende wrote:A goog civil engineer should be a good mason?

Analogies are only as good as the similarities between two things. I think there are more differences between Good Civil Engineer:Good Mason vs Good Software Architect:Good Programmer that make it less useful as an analogy.

A better one would be that of coach:player. There are many coaches who are really good because they have the added dimension of being able to play the game as well. My daughter's volleyball coach is like that and that's what makes her great as a coach. Going back to your CE:Mason analogy, though, I don't think that having hands-on experience in masonry would diminish ones ability to be a good Civil Engineer even if it may not necessarily be must-have experience either.
Paulo Marcio Brandi Rezende
Ranch Hand

Joined: May 13, 2008
Posts: 34

Instead of advocating for my analogy, in which one I really believe correct I'll answer the original question of the topic.

No, a good architect should not be a good progammer because an architect doesn't need a previous experience as a programmer. Being an architect is not the resuming of an professional experience as a developer.

Can a developer become an architect? Of course! But, in my option, it's the same of a mason becomes an enginner (back to my analogy!), it's a totally new world, new duties, new demands, new artefacts as result of the work, it's a new view over the software development process, is everything new.
Junilu Lacar
Bartender

Joined: Feb 26, 2001
Posts: 5007
    
    8

Paulo Rezende wrote:No, a good architect should not be a good progammer because an architect doesn't need a previous experience as a programmer

Language differences and nuances aside, I think we're at a crossroads here and it simply boils down to a difference in perspective/opinion. The #sa4d book will resonate with people who think that architects will be better at their jobs if they also not only know *how* to code but also actually *do* coding. In my experience, this is absolutely true. Your mileage may vary. If you don't agree with that premise, then the book may be less useful for you.
Junilu Lacar
Bartender

Joined: Feb 26, 2001
Posts: 5007
    
    8

Paulo Rezende wrote:No, a good architect should not be a good progammer because an architect doesn't need a previous experience as a programmer.

On the other hand, I find it difficult to trust the judgement of anyone who claims to be an "architect" yet doesn't have at least rudimentary "nuts and bolts" knowledge and experience with the technologies that are used in the systems they design. Cynical thoughts of "resume padding" would be my reaction.
Jayesh A Lalwani
Bartender

Joined: Jan 17, 2008
Posts: 2433
    
  28

The way I would phrase it s that a good architect who comes from a programming background should be a good programmer. Programming not the only way to grow into an architecture role. You could be a kick ass IT engineer who has loads of experience with working with OTS applications, and have a good understanding of how to interact with software development teams, and you can become a good architect. You could be an awesome DBA who has been supporting softwares built on top of the database that you have a good understanding of how software works. in both cases, maybe you can't do the code yourself and can;t review code, but you can interact with software developers and help them solve problems. You can come up with solutions that have worked somewhere else

To be a good architect, you need several soft skills. There are lot of avenues to grow those soft skills. You need to have a broad range of experience to gain those soft skills. You can;t just teach someone how to draw a bunch of diagrams and expect them to be an architect!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Software Architecture for Developers question: a good architect should be a good programmer?