Popular just now

ad1

Which do I need, a Senior Programmer or Solution Architect?

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.

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
These misconceptions come from a lot of web and software development companies getting lucky creating systems with bad or no architecture.  Most organizations that use Drupal or other web-based systems have a terrible understanding of software architecture and the development process. It is common to promote the top programmer into an architects role, this is something that should be done only after researching your needs. The two have some overlapping but not identical skillsets. The best programmer may often be, but is not always, an ideal architect. The better architects have a good understanding of many technical aspects of the IT industry among other things.  If you are considering hiring or promoting a programmer to do an architects job then you should be aware of the skillsets and knowledge differences:

  • 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