This blog was originally posted on the rmdStudio website which is a cloud and mobile app development company in Vancouver.
Web application architecture is a popular topic these days. It is also a very misunderstood concept and often mistaken with Web Design or Web Development. To the non-technical mind all the pages on the internet are websites, and therefore it would be a web designer’s job to design them, or perhaps a Web Developer who can can write some programs and all of a sudden build the next social networking website with all the snazzy features!
The same misconception is directing many web application architecture projects to the wrong hands. Clients don’t go to the dentist to have their eyes examined, but they do take a web application project to a design and advertisement company and the failed results leaves them angry and frustrated, because what they have received despite the shiny and sleek look comes short of the business and technical specs.
A good portion of my income, is generated by fixing those mistakes, and every time that I do consulting and development for a frustrated customer, I wonder why and how their software development project ended up in a design and advertising firm to begin with!
There is a change happening in the market, and design firms, who have been the primary sources of web solutions for the last decade, aren’t so thrilled about, yet not willing to point the clients to the right development team. After all, who would want to let go of an attractive business contract?
This article is to better explain a Web Application Architect’s job description and the current state of web application development market.
What are web applications anyway?
Let’s define what an “Application†is.
In Computer Science, an application is essentially computer software built to do a certain task for the users. Word Processors ( Open Office, Microsoft Word ) and Internet Browsers ( Firefox, Safari, Internet Explorer, … ) are all applications that run on personal computers and generally they can be installed or uninstalled at will.
Web applications don’t run on PCs. They run on some computers out there called web servers so multiple users can access them and use them simultaneously. Multiple means as many users a system can or suppose to handle.
If you have managed your bank account online, shopped from Amazon.com, checked your emails on Gmail, Yahoo, or Hotmail, signed up an account with Flickr, Facebook, or watch videos on YouTube, you have been using web applications all along. Some web applications enable users to connect and communicate with each other and form online communities.
Web Applications are convenient. It is a lot easier to maintain a single copy of a web application installed on a server, rather than millions of copies installed on user’s PCs, and users don’t have to apply patches and updates to their application software every month. All they need is an Internet browser to access an application through the Internet from anywhere, any time.
Who Develops Web Applications?
The same people who develop computer applications. Web Application Architects are software developers whose primary skills are Internet Technologies. Naturally they often come from a Computer Science or Technology background, and in addition they also further expand their expertise in the following fields:
- Programming
- Business System Analysis
- Web Design
- Visual Design and Art (Paul Graham the Ph.D computer scientist who wrote the first web application ViaWeb in 1995 is also an accomplished painter)
- Marketing
- Human Ergonomics
- Sociology
- Psychology of cognitive behaviour and user interactions
Web application architecture contains the elements of visual design and programming, but the core of it is Computer Science. We’re talking Software Architecture, System Analysis, and Information Architecture.
So who are the web programmers then?
Most application architects are great programmers, but not all programmers can develop great applications.
The difference between programming and application architecture is like knowing how to write, and knowing how to write a novel or a play. That sets Shakespeare apart from many who just know how to write.
Engineers versus Architects
What Engineers and Architects do overlap in many areas, so the difference is somewhat blurry. Although there is one major characteristic which can be used to set those two species apart:
Engineers often start with building and perfecting a structure, then plan on making it usable for people. If their design is not going to be used by people, then they just skip that stage.
Architects start by studying what people experience in everyday life, then plan on building a structure that caters to people’s unsatisfied needs. Architects’ creations are often more visually pleasing too! In the ideal case a structure is not only aesthetically pleasing, but also functions in a smart and intelligent manner, in other words the focus is on both form and function.
We often hear about both Software Engineers and Software Architects in the field of Computer Science. The term Web Application Engineer doesn’t seem very common, perhaps because usability and user experience are primarily the centre attention. Web projects that ignore those principals could hit the concrete bottom, therefore the term Architect would make more sense here.
Web Application Architects often conduct Business System Analysis, and Information Architecture during a project to makes sure project requirements and goals meet the end users’ needs.
Current market state
For the last decade, design and advertising agencies have been the primary shops offering web design and development services. The rising demand for web applications is making it difficult for these companies to keep up with the demands, because they are visual designers and not software developers.
Despite that some design firms aren’t willing to let go of web application projects brought in by some clients! They either put together something with sticks and glue and sprinkle it with pretty graphics, or the slightly wiser firms outsource the project to a software firm, and in order to remain profitable send a larger bill to their clients.
Part of the problem has roots in business schools. Unfortunately many business graduates do not receive enough training on web technologies during their undergraduate programs. These are topics that should be covered in e-Commerce and Management of Information Systems courses in the senior years, but school system is often lagging behind the industry and that’s nothing new.
Web Application Architecture is still a relatively new field and it would take some time for the market to become more educated about it. Consultants do their share to educate businesses, and time is also another factor. In the mean time many projects will end up in the wrong hands.
In this business, design and advertisement agencies make some profit, but face the consequences of not being able to deliver a viable services. Some of those projects die off and some eventually get fixed by the application architects. In this process clients are the ones who truly pay the price by having the wrong people take over their projects.