Simon is an independent consultant specializing in software architecture, and the author ofSoftware Architecture for Developers(a developer-friendly guide to software architecture, technical leadership and the balance with agility). Hes also the creator of theC4 software architecture modeland the founder ofStructurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.
Comment fromAnonymouson 07 July 2018 23:05:37 BST
I really enjoy interviewing because its a great way to learn about other architectures and helps broaden *my* experience. If you interview architects, what are your favourite questions?
InArchitect Level Interview Questions, Joe Walker shares some of the interview questions that he uses to quiz architects. For me, the comment that sums up the essence of Joes questions is as follows.
When I think Architecture, I think blue print. Being able to depict a solution to a problem in an abstract manner. Software systems are complex, and will continue to get complex, as the business domains are getting complex. It is impossible to paint a very simple application on a page or two. Imagine a solution spanning multiple applications/systems. Architect also needs to take into account that change is inevitable, so resilience need to be built in. The biggest problem I have seen today is lack of decoupling and a total misuse of webservices in the name of SOA. Also remember the biggest challenge isnt technology or complex business domains, but its people. Collaboration, communication, and be able to listen, will likely result in a good architecture.
I see architecture as a blue print to the application, the term came from the civil engineering, where you have blue prints of a building. On similar notes architecture in software is a blue print of the system. Most of the components in it would be same, technology would differentiate them in terms of implementation. But take any system – simple web application, whether you use .Net or J2EE, there is going to be 2 or 3 tier application and thats where architects play a role. Should it be 3 tier or 2 tier and so on….
Finding a good software architect is not easy. I find this post useful for filtering some candidates. Some questions are abstract but it gives us an idea or experience level and thought process of a person and I think its very important. Thanks for sharing.
You can find Simon on Twitter … seesimonbrown.jefor information about his speaking schedule, videos from past conferences and software architecture training.
Whenever I interview architects, I always go for the open questions too. Some of my current favourites include how would you define architecture?, what are the responsibilities of an architect?, how do you start chasing down a performance problem in a J2EE system? and how do you take requirements through to design?. Open questions allow you to really get involved in a two-way dialogue, which subsequently lets you explore and get a feel for experience. Of course, like Joe, I still like to throw in a few very specific technology questions (if applicable) to ensure that they *do* have experience with technology X.
ReplyComment fromBasavon 29 August 2006 15:29:31 BSTGood bunch of questions. My thoughts… Architecture definition is very subjective. Technical Architect as such has to wear many hats and play variety of roles. You cannot have a generic Software development architect, it will be easier if we can categorize as J2EE architects, architects, EAI architects, Performance Architects etc. The focus should be on the breadth of the knowledge and right amount of depth. There is lot of weight to the word Architect and sometimes this inflates the ego which can create problems. Architects need not be always right, and should never enforce/stress on his solutions. …more laterReplyComment frommon 15 January 2007 13:04:39 GMTp class=MsoNormalI do complete agree with the last part of your comment, there are so many types of architects who work together to support the lead architect. I my view a true architect is someone who can not only design a solution from working with the client to understand what they themselves dont, then provide direction to the subject matter expert architects to pull in the same direction. That said, getting in at this stage never happens any more as people who claim to be architects have already been there and f*cked it up. More typically architects come in to help solve problems which with hindsight could have been spotted early, make the hard decissions. Take my current assignment; Im lead architect on a deployment of around 500 hundred servers to support a dynamic supply chain (plus a great big central service). Were using the full oracle 10g stack (,db, as, eai, etc,etc) on aspan style= /spanmicrosoft platform and were putting the systems into the field with very unreliable communication infrastructure, therefore no real remote support capability. Thats then coupled with no local technical people means that a number of deployments are bound to fail! So, with a project a certain way through the project life cycle it means some really hard decisions have to be made. If we change the solution, delays will be incurred, money will be lost and people will get very upset. But if we dont switch direction then theres (IMHO) a strong likelihood that the entire solution will not function as it needs to.
p class=MsoNormalThats what an architect does, he/she makes sure the damn thing works and is held accountable.
E-mail addresses are not publicly displayed, so please only leave your e-mail address if you would like to be notified when new comments are added to this blog entry (you can opt-out later).