Answers

 

Brian S

Director, Architecture at CheckFree Corporation

see all my questions

What competencies of a software architect are most important to you?

Thinking about software architects you may have worked with, what competencies, skills, or characteristics do you find most valuable?

You might like to use the following as references:

http://www.microsoft.com/learning/mcp/architect/archcompetencies/default.mspx#EJG
http://blog.softwarearchitecture.com/2007/05/what-is-software-architect.html

posted May 25, 2007 in Software Development, Computers and Software | Closed

Share This Question

Share This

Good Answers (7)

 

Mike K

Product Development Manager at Advanced Measurements Inc.

see all my answers

Best Answers in: Blogging (1)

This is tough to answer since the scope of any architecture changes what is most important. I'll response assuming a large product scope. To me, I look for:

1. Ability to conceptually generalize everything - What I mean by this is a strong architecture must be designed to be flexible so concepts throughout an application apply to many areas. How information is exchanged within an architecture should be generalized so many things can fit into that architecture. This makes an application more powerful and will have a much longer live time before a complete redesigned is required as a product evolves.
2. Willingness to adopt new technologies - This is also important to extent the life of a product and will provide a competitive edge in feature capabilities, minimized development time and it also attracts the best technology driven developers.
3. Team communication - Sometimes good software architects cannot produce results because they are unable to communicate and teach great ideas to others they are involved with. This is critical as a designer or developer to keep those involved all learning and taking advantage of a software design in a consistent fashion. Software put together from many different developers that do not communicate the intent and structure of the application do not last and need to be rearchitected over and over. This problem can be eliminated by a softare architect having great communication with the stakeholders to ensure the product will meet the needs and to bring the team together to create one streamlined consistent software application.

posted May 25, 2007

 

Slava L

Sr. Staff Engineer at UBS Investment Bank

see all my answers

Best Answers in: Enterprise Software (1)

In addition to the previous answers, I think an architect should be aware of the financial performance of the company,
so (s)he needs to be competent in IT market analysis,
and to be able to keep focus on critical / essential things.

posted May 27, 2007

 

David B

Software Architect - Software Development Manager at Siemens IT Solutions and Services

see all my answers

Best Answers in: Software Development (24), Web Development (5), Computers and Software (4), Career Management (2), Databases (2), Education and Schools (1), Business Analytics (1), Project Management (1), Enterprise Software (1)

Architects need a combination of confidence, experience, audacity, humility, decisiveness, openness, diplomacy, leadership... in order to tackle both the technological and human sides of problems they will necessarily encounter, when creating software solutions.

Most importantly to my eyes, architects need to keep in touch with all the nitty-gritty details of the technologies they are embrassing in their solutions.

Far too often, I've seen people architecting solutions based on a very weak or shallow understanding of the technologies they were using (because they were kind of trendy), and blaming everything but the bad choices they had made when their projects failed.

But at the same time, an architect must also learn to "let go" and this can be a deceptively hard thing to do, especially if s/he has started the initial implementation. The detail-obsessive side of any good developer can very quickly kick in, and become a burden for other members in the team.

Well, to conclude, in these days of fancy job descriptions, I think that "digital funambulist" would come quite close to describing what a software architect is.

posted May 27, 2007

 

Filippo F

Technical Architect at Trinity Biotech

see all my answers

Best Answers in: Software Development (1)

1. focus on the problem and business contraints: you don't want to develop just based on buzzword technologies or what you know best. Also to avoid is the "no one was fired for buying XXX" syndrome.

2. costs vs. benefits awareness

3. communications skills and leadership: you need both sponsorship from the management/customer and enthusiasm from the team often you'll also have to find the right specialist and convince him to join

4. fast learner: you most often will need to dive into some area you never seen before, either functiona or technological

5. open minded: to really be innovative you need to get off the mainstream and explore possibile side solutions

6. mediation: in virtually every project you'll hae to compromise between the solution you see fit and the constraints stakeholders and technology are putting on you

Clarification added May 27, 2007:

7. attention to details: you need to take care of microdesign as well, do not just produce pretty diagrams

8. end to end commitment: you'll need to be available to clarify your design and architectural decisions (ven modifying them if necessary) to the implementation team

posted May 27, 2007

 

Tom P

Head of Architecture Services - RBC Capital Markets

see all my answers

Best Answers in: Education and Schools (3), Career Management (2), Databases (2), Certification and Licenses (1), Derivatives Markets (1), Software Development (1)

Interpersonal skills. You can have the best architecture thinking in the world but if you cant explain it in such a way that people can act upon your vision you're going nowhere.

posted May 28, 2007

 

Wayne M

Project Manager, PMP at Nortel Government Solutions

see all my answers

Best Answers in: Education and Schools (1), Government Contracts (1), Project Management (1), Computers and Software (1), Software Development (1)

The two skills I find are most important are communications skills and the ability to decompose problems to meet schedule and budget. I want someone who can look at a problem from various aspects and develop trade-offs - what big benefit items can we accomplish quickly and what can be deferred. Communications skills then come into play to convice all parties to buy into the optimal approach rather than just throwing every requirement into the mix.

posted May 29, 2007

 

Gil Z

Software Professional at Typemock

see all my answers

Communication, communication and more communication.

The architect needs to understand the customer's needs and limitations. Then, with building the architecture, communicate the benefits and limits of the architecture back to the customer. Communicate the vision to the development team, and make sure they all look at the same target.

Also important is the fact that designing without coding looks to me as not speaking the same language with the developers- again a communication barrier.

posted May 29, 2007

More Answers (1)

 

Joshua M

Senior Developer, Core Technology Group at SRC, LLC

see all my answers

Best Answers in: Accounting (2), Certification and Licenses (1), Job Search (1), Compensation and Benefits (1), Personnel Policies (1), Staffing and Recruiting (1), Derivatives Markets (1), Futures Markets (1), Manufacturing (1), Personal Debt Management (1), Professional Networking (1), Computers and Software (1), Using LinkedIn (1)

The ability to come up with a plausible initial design for any arbitrary problem within a few minutes given only a whiteboard, and then the ability to coherently explain it and get buy-in.

Either they are a competent leader who can explain things quickly and motivate a team, or they aren't.

posted May 26, 2007

 
Close

If you have questions about using the site, please visit our Customer Service Center.