“There’s no such 'software architect' job.”
“There’s no such 'software architect' job,” begins a blog post by System Expert at Kapsch CarrierCom AG Sergey Mikhanov. Under the inflammatory banner of 'Why I Don't Believe in Software Architects' Mikhanov says that too many people chase after the position of software architect in an effort to play a managerial role, without actually having to be a manager.
To him, software architecture is too often just UML modeling – and there's a fair bit of difference between working with models of software, and getting your hands on actual software. Surely a software architect, by definition, should be someone who gets their hands on real-life software every now and again? Or at least write some code? The way Mikhanov sees it, many software architects are charged with “squeezing 3rd party code into a conceptual software model.”
His vision of a software architect as a conduit through which 3rd party code flows, is perhaps an unfair one. Many architects have additional responsibilities, including deciding which systems, applications, software and hardware they should employ to meet their targets. Often, they are charged with ensuring all the parts of a large project come together as a coherent whole.
But, should a software architect be involved in code-writing? If they aren't aware of the sort of code their developers are producing, can they know whether their project is still on-track? Perhaps software architects should make a point of checking the code being produced by their team, at regular intervals.
To Mikhanov's mind, software architecture is not a job description, it is a way of thinking; namely the ability to handle large problems and take responsibility for alterations to a significant amount of code. But this isn't everyone's definition of a software architect.......
“Avoid advertised ’software architect’ positions,” he warns, perhaps not unreasonably. Software architect is, after all, a vague term, open to mis-representation by potential employers. Taking care to ensure your personal interpretation of the term 'software architect' matches that laid down in the job description, is sound advice. This is particularly true, as a general IT managerial role (cost analysis, project management, vendor management etc.) seems to have a nasty habit of masquerading under the banner of 'software architect.'
Mikhanov proposes a code-writing position as the best way to get into his own personal definition of a software architect role. To his mind, if that company allows you to expand your influence wider and wider, giving you more responsibility while keeping one foot in the code-writing camp – then you can call yourself a software architect.