Smaller Web development companies and Start-ups have a difficult time separating job specifications and actual work. Their lack of understanding of the software development process usually leads to recruiting the wrong person or giving internal promotions to the wrong persons. These people, many of whom have never worked in or for a very
large organization typically have no idea of which roles their personnel are competent to handle. They always seem to think that anyone given or taking the title "senior programmer" means they can do everything with and within a particular technology or software. Even worse they confuse the architects role with that of senior programmer. So what qualities and skills does an architect have and programmers or developers need to have to become competent architects? And why is it so confusing to know which role is needed?
Let's answer this by starting with understanding the roles and what they mean to an organisation. The Architects become involved with a project at the time of inception and they are involved in the Functional Analysis (FA) and developing the initial requirements. Developers typically deal with the building after this process.
Some of most common misconceptions about "architect" and "developer" are:
It is essential for architects to keep their hands dirty with code and to stay sharp technically. The good ones do this continually.
Let's answer this by starting with understanding the roles and what they mean to an organisation. The Architects become involved with a project at the time of inception and they are involved in the Functional Analysis (FA) and developing the initial requirements. Developers typically deal with the building after this process.
Architects:
- Application architect - When an application becomes so vast and complex that dealing with the overall technical vision and planning, and translating business needs into technical strategy becomes a full-time job, that is an application architect. Application architects also often mentor and/or lead developers, and know the code of their responsible application(s) well. Many Start-ups and small businesses when choosing Drupal, Magento and other hugely complicated systems, incorrectly hunt for a Senior programmer for these systems when they should be looking for an application architect. It becomes more difficult for them when they find that these "frameworks" have a very limited pool of people that can use or even understand the architecture. Most often the complaint is that they cannot find good developers when the truth is they are looking in the wrong place.
- Solution Architect -When an organization has so many applications and infrastructure inter-dependencies like API's and web services that it is a full-time job to ensure their alignment and strategy with minimal involvement in the coding of any of them, that is a solution architect. Solution architects can sometimes be similar to an application architects, but they need to have a broader understanding of the business and other technologies outside of a particular application. In other words someone that knows more than how to build an application using a CMS like Drupal. But can design a system with Drupal as part of the larger systems architecture. They can translate requirements into tools or technologies other than Drupal. Inorder to do this they have to be more knowledgeable in more areas than an application architect or programmer. Programming skills are more necessary not less. While good programmers can get by knowing only how to make things work in a particular language a Solutions Architect must be more flexible. This means they should be able to program in different languages by learning enough of a language to be able to prototype. Prototyping, visual presentation skills and communication are more important than optimizing code.
Some of most common misconceptions about "architect" and "developer" are:
- An architect is simply a more senior/higher-earning developer with a fancy title
- An architect is someone who is technically limited or has little skill in the actual coding of an application.
- An architect is a Project manager or vice-versa.
- Universities and schools are incubators for Architects
- An architect has a better understanding of business needs and strategies than a developer needs to have. This understanding comes mostly from experience in business as salesperson, marketer, manager, owner or corporate leader.
- Architects need excellent communication skills. In the world of IT this also means English language skills, both written and oral. Often some project management and business analysis skills are used.
It is essential for architects to keep their hands dirty with code and to stay sharp technically. The good ones do this continually.
No comments:
Post a Comment