Software architects are not the same as senior programmers

The author of this article, Armel Nene, is the chief architect of ETAPIX Global. He lives in London. He has participated in open source projects including Apache Lucene, Apache Nutch, Liferay and Pentaho.

 

Today, the IT department of many companies still believes that recruiting a senior programmer can also take on the role of software architect.

 

Senior programmers have a good understanding of the entire software life cycle, they can be trained to become architects, but they are not the same as architects. The first and foremost of a software architect is his vision. It would be better if an architect had some software development experience, but most of the time, they are dealing with a complex environment with multiple languages. Before the first line of code can be written, the architect needs to work out how the business requirement translates into the solution. This not only requires relevant knowledge of the business environment, from business operations to the customer environment, he also needs to outline a convincing system to the company's superiors. If some issues are not considered in advance, such as scalability, access delay issues, security issues, these are ignored when the system starts to develop. Senior programmers know their team and understand their capabilities. Senior programmers know how to manage the progress of their work and ensure that the software under development achieves the goals of the architectural design.

 

What the architect can decide is how the requirements should be developed to meet the business needs, for example:

This business is distributed around the world, and the business requires that the website response delay does not exceed 3 seconds - no matter where the user is, the website must be able to withstand at least more than 100,000 user visits.

The above requirements relate to the architecture of the system, not the question of how we use the Oracle database to authenticate users securely.

It's important to note that many software architects are senior programmers (like myself) before, and despite this, many senior programmers are not interested in architectural design. Deciding whether a system should use Tomcat or Glassfish, and whether to use Apache Webserver for load balancing, is an architectural matter. Doing code reviews to make sure design patterns are applied correctly is the business of senior programmers. Senior programmers can decide on development methods, such as using agile development methods, but need the approval of the project manager. Architects attend meetings with all parties involved in the project: users, operators, infrastructure providers, developers, testers. When users ask why the system is slow, they turn to an architect, and the architect turns to a senior development leader to study whether the current development is meeting the architectural design goals, or to see if there are any flaws in the architectural design.

 

I'm a software architect and I can easily express my insights to the development team, but at the same time I'm a senior programmer and I still love programming. I work in a software architecture association, and I often meet some architects who have no development experience. I don't agree with their background. Software architects should understand the characteristics of various languages, not just prefer the one they like.

 

I wish more software companies realized the value of architects in software projects - no matter how big or small.

This article is reproduced from: http://www.aqee.net/a-software-architect-is-not-a-senior-developer/

[Original in English: A software architect is not a senior developer ]

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326687191&siteId=291194637