|
Simply put, an architect is expected to have both wide and deep knowledge that spans operating systems. An architect should be able to provide effective guidance for hard problems such as software security, scalability and reliability. Architects are also expected to be aware of technical directions being taken by vendors who provide software infrastructure and tools, such as MS, Google, Oracle, etc.
And of course, an architect should be an experienced developer.
/ravi
|
|
|
|
|
Ravi Bhavnani wrote: And of course, an architect should be an experienced developer.
I like the definition you provide and especially that you added that last part about the SA (Software Architect) being an experienced dev.
It's so important but we've all experienced someone who has Architect in their title but who is definitely missing the development experience. IT can be quite terrible.
I find the difficulty that many here are having explaining what an Architect does/is interesting bec. then how do you prove Architect abilities to a prospective employer.
Thanks for your great input.
|
|
|
|
|
newton.saber wrote: someone who has Architect in their title but who is definitely missing the development experience. IMHO, that makes no sense at all.
newton.saber wrote: how do you prove Architect abilities to a prospective employer. By describing detailed solutions you came up with to non-trivial problems such as security, scalability, integration, reliability, etc. If all you've done is written a lot of code but have never had to address these kinds of issues, you would be considered to be an experienced developer (which is good), but not an architect. At least that's how it works in my company.
You might find this[^] classic interesting.
/ravi
|
|
|
|
|
I agree with you. Someone who is an Arhitect but doesn't really have the development chops to back it up isn't an Architect at all.
Also, I've read that book, 97 Things Every Software Architect Should Know[^]
Not a bad read because it's from so many viewpoints.
|
|
|
|
|
newton.saber wrote: Someone who is an Arhitect but doesn't really have the development chops to back it up isn't an Architect at all.
I agree. Software architecture is highly technical, not just conceptual. Anyone with a CS background can work at the conceptual/design level, but it takes a high degree of technical knowledge to know how to do that in a way that will actually work as needed in the real world. Plus, programmers are not likely to listen to an "architect" who can't speak their language and understand what they are doing. I know I wouldn't.
It's like someone being semiconductor architect without ever having been an electrical engineer, something's fishy about that. A software architect without a programming background is someone I'd consider a glorified project manager, or a misplaced academic.
Part of the problem, I think, is that it's a prestigious title but rarely needed. Any experienced programmer can do basic architecture, it's part of the skill set, and it's all that's needed on most projects. It's really only the large, complex projects that require a specialist to come in and work on the architecture. And that's really how I think of it, architecture is a specialized programming job in the same way that being a DBA is a specialized IT job, someone you bring in when the needs are beyond what the programmers can/should do on their own. But everyone seems to want the title, whether a full-time architect is needed or not.
|
|
|
|
|
You can find the original free .PDF version of the book I mentioned in my previous post here[^].
/ravi
|
|
|
|
|
newton.saber wrote: how do you prove Architect abilities to a prospective employer. That's easy.. you show them that you already have the title someplace else. The implication is that, since you weren't born with the title, someone, somewhere thought you deserved it and christened you with it. Whoever that was, they trust them.
We can program with only 1's, but if all you've got are zeros, you've got nothing.
|
|
|
|
|
patbob wrote: you show them that you already have the title someplace else
I'm hoping you just forgot the emoticon for laughter.
Those are the "Architects" many of us have worked for in the past.
I once asked a onsite Architect, "How long have you been doing this?"
He answered, "A little over 1 year."
"Oh, but how long have you been coding?"
"Just a year. I became an Architect when I learned C#," he said.
"What were you doing before that?"
"I was a accountant and knew the business."
He had the title though.
|
|
|
|
|
I work for a biotech company and we have the same thing going on here. We have chemists who have some C++ and C# experience who are "architects" because they know/understand the chemistry algorithms. They can't design code very well. It takes professional SW engineers to fix the bad code.
|
|
|
|
|
And so it goes...
Good luck to you.
|
|
|
|
|
newton.saber wrote: What value do you think a Software Architect really brings? Shorter development time.
newton.saber wrote: What skills do you expect from an Arthitect? Mostly knowledge on different software-architectures. I'd also expect him/her to be able to explain the SOLID principles.
newton.saber wrote: Can the value a Software Architect adds be put into words / definitively measured? No.
So, how do you recognize one? Well, that's a problem for the headhunters - and given the effort they put in it, I'd suggest "simply ask"
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: able to explain the SOLID principles
100% agree. At least that's a start at some kind of metric.
Great input. Thanks.
|
|
|
|
|
I don't think you need to be an architect to know that. Any developer worth his/her salt should be able to explain that.
/ravi
|
|
|
|
|
Ravi Bhavnani wrote: Any developer worth his/her salt should be able to explain that.
Agreed. However, it is amazing how few Architects even truly understand them. And by Architect I mean the ones with the titles who aren't Architects.
|
|
|
|
|
Ravi Bhavnani wrote: Any developer worth his/her salt should be able to I gave up on that a long time ago.
Smile a lot, don't argue
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Hey,
these are 2 different positions and you need Architect only for huge system in enterprise domain.Usually you have Solution Architect, Domain Architect and Enterprise Architect, according to the complexity of the solution and the enviroment.
In small team or organitation sometime the Solution Architect is also a developer but you are in limit situation where may be you don't need a architect becuase you application is not too huge.
Cheers,
Antonio
|
|
|
|
|
What's the difference between said three titles, outside the difference in the title?
What does each have to contribute?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: What does each have to contribute?
Good question. I would like to hear more too.
Also, the proliferation of names/titles throughout the industry is also why it would be quite helpful if there was somewhere to go that defined these more clearly. But, alas, I understand the difficulty / impossibility of that and how companies would surely mess it all up.
|
|
|
|
|
Companies do not like to share such info.
It might benefit the competition, and it might hurt the reputation of the company if it proves to be "just a title".
So, they should just keep hiring architext and keep their fingers crossed
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: Companies do not like to share such info.
So true.
|
|
|
|
|
newton.saber wrote: Also, the proliferation of names/titles throughout the industry is also why it would be quite helpful if there was somewhere to go that defined these more clearly
Salary.com and places like that do an ok job.
However, I do not think I have seen many very good definitions of a software architect, because everyone has a different opinion.
Also, I worked at a company, where every developer on the server team had the title "architect" over their domain. There was one developer per domain, UI, database, network etc.
Finally, I have noticed the trend lately that companies use the term "Architect" much less for software and are now using "Staff" or "Principle" Engineer.
Unfortunately, at some companies "Staff" means low-level, while it's a prestigious position at others.
|
|
|
|
|
A related question: what is the difference between a software architect and a software designer? I have seen titles such as "Software Design Engineer" and other like it.
Then, what is the difference between architecture and design? (It may be just a question of philosophy.)
Also, how does a software architect differ from (compare to) a construction (building) architect? Is there a list of what a construction architect does?
-- modified 27-Jan-15 18:58pm.
|
|
|
|
|
James Lonero wrote: Then, what is the difference between architecture and design? (It
may be just a question of philosophy.) There is none; the difference is purely etymological. Multiple people needing a word to describe something new, borrowing from the existing, and inventing a new title.
Both are used to describe the same, a position where one is responsible for the overall structure, robustness, validity and consistency of the system, as well as for the interaction of various components. One would call that "design", the other "architecture". Both words describe the work of a developer that is tasked with getting the stuff of the other devs to work together nicely.
James Lonero wrote: Also, how does a software architect differ from (compare to) a
construction (building) architect? A building-architect is an architect by definition, where the software-architect is usually just a title.
James Lonero wrote: Is there a list of what a construction architect does? No, but each country will have a degree, and one may assume some basic knowledge of local building regulations.
In software, we cannot even agree on whether top-down or bottom-up is better, where the builder will simply exclaim that there will no work done on the roof before there's a foundation for the building. Building a house is often rather predictable
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
I'd also add Application Architect to that list. Many senior engineers who contribute heavily to the design of your application and interfacing systems are partially filling that role. If you are regularly interfacing between the business and your team, designing ahead of time to meet foreseen requirements, and finding ways to reduce your app's technical debt then you may be an Application Architect depending on a company's definition. It is very dependent on the scope, complexity, and size of the solution and organization to justify these roles.
A Solution Architect is overseeing the architecture of the set of applications which form said solution. I would normally think this is a dozen or more apps to qualify for this next distinction. Our solution contains 80+ applications. Someone at this level would definitely not be coding feature content.
I would then jump to Enterprise Architect but I can see a Domain Architect having a place in larger organizations which have teams of architects.
Then there's Systems Architect which is an ICT position.
For those wondering generally an architect isn't delivering feature content because their responsibilities would cause them to be a block on the critical path. They are generally too busy interfacing between the business and engineering and while they may still write code generally it's big picture prototypes and system infrastructure. If they were to pitch in to help a team I'd think it would be limited to unit tests or basic items from the backlog... something that wouldn't interfere with the developers.
|
|
|
|
|
In addition to all of the above, IMHO, there is an element of 'politics' that a software architect has to play - this gets termed differently in different countries; from what I know, this is called 'lobbying' in the US.
Sometimes, he needs to get different parties/departments to agree on the proposed solution, and this is more often then not, a 'politics' game.
|
|
|
|