New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Abel Avram on Jan 21, 2009
The software/enterprise architect job is an important one. The duties of an architect are numerous and require specific leadership, communication and technical skills to be fulfilled.
In a recent post, Gabriel Morgan wrote about the qualities of an enterprise software architect starting from Daniel Goleman's Emotional Intelligence (EI) abilities: Self-Awareness, Self-Management, Social Awareness and Relationship Management.
Self-Awareness
Self-Management
Social Awareness
Relationship Management
The Software Engineering Institute has collected a large number of opinions regarding the duties, the skills and the knowledge of a software architect as seen by various software engineers. A few of the opinions regarding an architect’s required skills are:
David Cornish (Technical Architect, JPMorgan, London, UK):
Strong communication with both technical and business teams
Strong design experience and technical knowledge
Analytical and 'joined-up' thinking
Conflict resolution
Theo Gantos (Consultant, TEKA, Flint, MI, USA):
A renaissance person. Consulting, diplomacy, organization, conceptualization, abstract thinking, logical reasoning, data modeling skills in several methodologies, ability to self-evaluate and adapt quickly, presentation and communication skills, programming expertise, writing skills, sales skills, charisma, finance and return on investment calculation skills, dealing with difficult and change-resistant people, sense of humor.
Venkatesh Krishnamurthy (Technical Architect, Valtech India, Bangalore, KA, India):
- Creative
- An Artist
- Politician
- Strong willed
- Excellent communication skills
- Excellent presentation skills
- People person
- Matured
- Articulative
- Courageous to make decisions and stand by it
- Risk taker
- Good observer
- Negotiator
Victor Alejandro Baez Puente (Chief Technology Officer, Grupo Nacional Provincial, Mexico City, DF, Mexico):
- Experience designing an enterprise application with financial auditing, contract management, enterprise workflow, business process integration, and perhaps asset management components
- Experience with Service Oriented Architecture (SOA).
- Experience as a chief architect on inception-to-delivery of J2EE projects.
- Experience with deploying J2EE rich and/or web client applications in a high-availability, clustered environment
- Expertise in the Unified Modeling Language (UML) for constructing, and documenting the artifacts of software systems
- Exemplary general IT knowledge (applications development, testing, deployment, operations, documentation, standards, best practices, security, hardware, networking, OS, DBMS, middleware, etc.)
- Expertise and experience in lightweight, rapid development, agile methodologies.
- Experience in estimating and measuring project velocity
- Experience with interaction with legacy systems and phased application integration
- Exquisite attention to detail
- Written, verbal, and diagrammatic communication skills
The examples are numerous. Some put an emphasis on leadership/communicator skills while others take specific technical skills into account. What is your opinion on the skills required of a software/enterprise architect?
Agile Practices to Improve Project Management Organization (PMO) Effectiveness
SCM best practices for multiple processes, releases & distributed teams
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
So the usual best of the best of the best type job description!!! Why do all IT jobs need a superman, especially when the compensation levels don't match the job description. Being one of these people I'd say you could narrow it down to being able to process a large amount of information efficiently, make your decision at the correct time and the communicate that decision in a financially sensible way so some one will invest in it.
Sorry, just couldn't restrain myself from commenting.
* Creative
* An Artist
* Politician
* Strong willed
* Excellent communication skills
* Excellent presentation skills
* People person
* Matured
* Articulative
* Courageous to make decisions and stand by it
* Risk taker
* Good observer
* Negotiator
This one looks like a list of catchphrases that business people use, not something that a Software Architect is. I would hire a person like that to be an executive, not a software architect.
Micheal, Your Job Description for the Software Architect is pretty good. Its quite apt.
Funny. I was thinking about the same thing.
Can I point out one thing? I don't know how to reconcile "Strong Willed" with "Negotiator"? Hmmm...I guess I'm just not ready to be a software architect in Bangalore.
I find it amazing that there are no technical skills mentioned in some of the lists. Are there people who truly think one can be an architect without very high proficiency in relevant technologies?
I would add: The ability to perform trade-off analysis of architectural decisions along multiple dimenions (cultural, financial, skills, technology, performance, security, maintainability).
I think this is a good point, trade-off analysis is "mandatory" in an enterprise environment.
This is my take on the attributes of on Agile Architect which covers many technical and business parameters.
I agree with you Michael, indeed most IT job descriptions require a superman and while in most cases compensation might not be according to the description, let us not forget that also the real challenges won't rise to the description either. IMO, someone at this level should be a really adaptable person, with good technical background, a passion for technology and very good communication skills.
The key here would be for the Architect to be up to date with things that are going on in the technology world so that when the right time comes he/she can deepen the knowledge about a specific technology and be able to apply it to the practical situation at hand.
Let's get real, no one can know everything, and the more you know, the more you realize you know nothing.
Abel,
Great post, thanks. Interesting to see the lists that a few others came up with.
I don't understand why some would think this is "the best of the best" - all these soft skills are what's required to be really successful on the business side.
Depending on your model of an architect, the role can be viewed as half business and half technical. The architect needs to be able to relate to the non-technical stakeholders, listen well, sell them on a solution, inspire confidence and communicate the necessary detail of the system.
I think that when you get to listing hard skills, such as UML modeling, or a certain level of coding expertise, or experience in certain architectural styles, then you get into a very domain-specific description.
Is it reasonable to presume that the tech leads might often have more technical expertise than the architect?
The role of architect is necessarily a bridge, so to describe communication skills without describing what you are communicating makes little sense, likewise making decisions without having a firm footing for such decisions results in an effective way of going wrong with confidence. Architects must have a strong technical background.
I gave a keynote at last year's Software Architect conference where I explored some of the skills that were relevant, anchoring the notion of architect in the concept of architecture (perhaps an obvious starting point, but one that seems to be overlooked in many lists):
www.software-architect.co.uk/slides/sa08-Kevlin...
Kevlin, that presentation sums up my views perfectly :-)
This isn't about being a Software Architect, this is describing the sort of person I aspire to be. Someone with the described attributes isn't just a great Software Architect, they're also a wonderful human being. Hooray for us Software Architects. Actually I subscribe to the pragprog view that Software Architects should also cut code. I guess there is a project size over which that may become impractical but nothing informs a design like being involved in coding it.
According to what has been asked from this role, people like Prime Minister Tony Blair, President Barack Obhama, and President Sarkozy, Markel etc. only can fulfill this role as they are the only people I can think of has all these desired qualities (and of course provided by support from many advisors or special advisors as they say). I can tell you friends, if you do have such expertise, you are in the wrong business.
Not to mention "Articulative" is not an actual word
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
14 comments
Watch Thread Reply