Is the world of UI Design merging with Developers?
Recently, we got a request from our client to revamp their site to add in plugins for Web 2.0 – that is adding bookmarks for Social Bookmarking sites like Digg, del.icio.us, StumbleUpon and so on. While we were developing it, one of the business user pointed out that a competitor had already gone ahead and implemented it! When I checked their site, it was based on PHP and AJAX framework – with a lot of visual Stylesheet based manipulations. This led me to a question: Is the world of graphics designer and web developer merging? Is the border between plain static HTML/CSS merging with middle-tier business logic implementation?
Old world MVC Architecture
Think about it. 3 years back, the Model-View-Controller Architecture was the mantra. You had a UI layer written totally with no business logic. This UI would communicate to controller which would send the request to the corresponding business logic that performed the actual processing. This layer could in turn talk to the database to complete the process. So, you had a clear separation of responsibilities – a UI to present data, a controller to catch the request and forward it, a model/business layer to process the request. In the world of Java, the display was in a JSP, the controller could a FrontController servlet and the business layer could be various Java classes. This architecture was typified in the struts framework of Jakarta foundation.
Enter AJAX
Switch now to the world of AJAX. You have a screen and when a user clicks on it, a neat <div> floats to the top. You have a 3-dimensional presence. The screen takes in the request and generates request for the beackend server, receives it in the form of XML, manipulates and displays it back. At the back-end, the processing still could be via a controller and a business layer. But, the front-end is now suddenly not so dumb. It has to do a lot more job that just display data. It actually catches the request and processes a part of it – with a lot of business logic included within the AJAX engine – which is executing at the client’s end.
Since a lot of business is now embedded within the client’s end of application, it cannot be developed by just graphics designers. Yet, since the requests are not each separate pages, it has to have a flawless visual makeover that can be provided only by a graphics designer in the traditional world.
Web 2.0 Woes
Now switching back to our problem: Our client wanted to have a sort of AJAX based look-and feel where screens would “float in” and the processing would happen within it, with no page refreshes for the end user. Typically in an IT services industry of the Indian market, the developers and engineers, from all disciplines. Some may have a knowledge of programming, some are taught. Yet, none of them are really taught HTML or Style Sheet. The result being that people virtually visually challenged! Simple things like changing colour or using a different font-style gets passed to an over-stressed and generally harassed graphics designer – who in turn is now not working on graphics, but on HTML! This model sustained in the old world of Web 1.0. But, my fear is – will it work in the new world of Web 2.0?
The team working on the client request turned out to be miserably uninformed in the entire area of using these visual elements! At the end of day, we developed a plain vanilla <table> related display with a barely functioning JavaScript code. This was so different from what the competitor was offering that I felt miserable to even propose our solution to the client!
Paradigm Shift
In his epic novel, “Powershif” Alvin Toffler talks about stages in life where there are paradigm shifts – a specific period of time when the whole assumptions are completely challenged and rules re-written. I think in terms of developer community, we are now in one such situation. The whole world of IT services is stuck in a framework of rigidly defined “architecture” where you have a UI, a façade layer for bring some business together with specific business logic embedded in a business layer.
In the world of AJAX though, the concept of layers sort of lose the importance. There is a lot of APIs and web services with hardly much control over their performance – and the web services themselves being invoked via short JavaScript code. For example, we had to write a piece of code to post the details of the current page to a blog site called WordPress. Our guys broke the head and offered to provide a solution to open the Wordpress site in a new window. The competitor on the other hand went ahead with a concept of XMP-RPC, developed a short AJAX based WYSIWIG editor that could post the details onto the blog. When I tried to even explain this to the team, it left them flummoxed!
And the situation is not improving! Even now, the whole training programs are based on Java stream or .Net stream. Nobody’s ever taught on how to use the hundreds of plugins that are available. Nobody’s taught the basics of Linux or any Open Source system. PHP is still considered as a unprofessional programming language. MySQL as a database is not even featured in the technical capability in our internal competency systems – while whole websites like Digg.com are being built entirely on the LAMP framework!
So how do we proceed?
I think to solve this problem, there has to be a person playing the Devil’s advocate. We have all got so cozy with the rapid growth rates and back-office outsourcing that we’ve forgotten that the clients are now looking at us as IT Partners and not as just cheap body-shoppers. If this assumption were true then that day is not far when they will come to us and seek help in the areas of re-designing and improving their websites. When the whole world seems to be shifting into the AJAX/Open Source/LAMP model, if we bury our heads in the J2EE/.Net model, we will be paying dearly. This has already been a case point where clients have suggested us to use specific open-source plugins and tools while we call ourselves technology partners!
Unless we want to go back to being just the back-office babus, it is high time we re-think on the entire strategy of our training processes. At least a part of the intake of the freshers have to be trained on areas of Open Source, CMS systems, Web Analytics, Online Marketing products and Web 2.0 technologies. If we don’t do it soon, we’ll be losing all the good and interesting projects to some other company who can work with these tools. Even though they may not be as cheap as Indian firms, the low cost of ownership of many pluggable software would compensate for the high-costs of development – and we’d always be there as a cheap source for supporting it all – clambering and struggling to keep pace with the rapid advances in technology… and asking a question like one new joinee in my company asked me, "So, what exactly is this CSS? Is this some programming language?"!!!!
Old world MVC Architecture
Think about it. 3 years back, the Model-View-Controller Architecture was the mantra. You had a UI layer written totally with no business logic. This UI would communicate to controller which would send the request to the corresponding business logic that performed the actual processing. This layer could in turn talk to the database to complete the process. So, you had a clear separation of responsibilities – a UI to present data, a controller to catch the request and forward it, a model/business layer to process the request. In the world of Java, the display was in a JSP, the controller could a FrontController servlet and the business layer could be various Java classes. This architecture was typified in the struts framework of Jakarta foundation.
Enter AJAX
Switch now to the world of AJAX. You have a screen and when a user clicks on it, a neat <div> floats to the top. You have a 3-dimensional presence. The screen takes in the request and generates request for the beackend server, receives it in the form of XML, manipulates and displays it back. At the back-end, the processing still could be via a controller and a business layer. But, the front-end is now suddenly not so dumb. It has to do a lot more job that just display data. It actually catches the request and processes a part of it – with a lot of business logic included within the AJAX engine – which is executing at the client’s end.
Since a lot of business is now embedded within the client’s end of application, it cannot be developed by just graphics designers. Yet, since the requests are not each separate pages, it has to have a flawless visual makeover that can be provided only by a graphics designer in the traditional world.
Web 2.0 Woes
Now switching back to our problem: Our client wanted to have a sort of AJAX based look-and feel where screens would “float in” and the processing would happen within it, with no page refreshes for the end user. Typically in an IT services industry of the Indian market, the developers and engineers, from all disciplines. Some may have a knowledge of programming, some are taught. Yet, none of them are really taught HTML or Style Sheet. The result being that people virtually visually challenged! Simple things like changing colour or using a different font-style gets passed to an over-stressed and generally harassed graphics designer – who in turn is now not working on graphics, but on HTML! This model sustained in the old world of Web 1.0. But, my fear is – will it work in the new world of Web 2.0?
The team working on the client request turned out to be miserably uninformed in the entire area of using these visual elements! At the end of day, we developed a plain vanilla <table> related display with a barely functioning JavaScript code. This was so different from what the competitor was offering that I felt miserable to even propose our solution to the client!
Paradigm Shift
In his epic novel, “Powershif” Alvin Toffler talks about stages in life where there are paradigm shifts – a specific period of time when the whole assumptions are completely challenged and rules re-written. I think in terms of developer community, we are now in one such situation. The whole world of IT services is stuck in a framework of rigidly defined “architecture” where you have a UI, a façade layer for bring some business together with specific business logic embedded in a business layer.
In the world of AJAX though, the concept of layers sort of lose the importance. There is a lot of APIs and web services with hardly much control over their performance – and the web services themselves being invoked via short JavaScript code. For example, we had to write a piece of code to post the details of the current page to a blog site called WordPress. Our guys broke the head and offered to provide a solution to open the Wordpress site in a new window. The competitor on the other hand went ahead with a concept of XMP-RPC, developed a short AJAX based WYSIWIG editor that could post the details onto the blog. When I tried to even explain this to the team, it left them flummoxed!
And the situation is not improving! Even now, the whole training programs are based on Java stream or .Net stream. Nobody’s ever taught on how to use the hundreds of plugins that are available. Nobody’s taught the basics of Linux or any Open Source system. PHP is still considered as a unprofessional programming language. MySQL as a database is not even featured in the technical capability in our internal competency systems – while whole websites like Digg.com are being built entirely on the LAMP framework!
So how do we proceed?
I think to solve this problem, there has to be a person playing the Devil’s advocate. We have all got so cozy with the rapid growth rates and back-office outsourcing that we’ve forgotten that the clients are now looking at us as IT Partners and not as just cheap body-shoppers. If this assumption were true then that day is not far when they will come to us and seek help in the areas of re-designing and improving their websites. When the whole world seems to be shifting into the AJAX/Open Source/LAMP model, if we bury our heads in the J2EE/.Net model, we will be paying dearly. This has already been a case point where clients have suggested us to use specific open-source plugins and tools while we call ourselves technology partners!
Unless we want to go back to being just the back-office babus, it is high time we re-think on the entire strategy of our training processes. At least a part of the intake of the freshers have to be trained on areas of Open Source, CMS systems, Web Analytics, Online Marketing products and Web 2.0 technologies. If we don’t do it soon, we’ll be losing all the good and interesting projects to some other company who can work with these tools. Even though they may not be as cheap as Indian firms, the low cost of ownership of many pluggable software would compensate for the high-costs of development – and we’d always be there as a cheap source for supporting it all – clambering and struggling to keep pace with the rapid advances in technology… and asking a question like one new joinee in my company asked me, "So, what exactly is this CSS? Is this some programming language?"!!!!

2 Comments:
There's no denying that there has been a phenomenal development in the tools available for UI implementation. AJAX has taken javascript from client validations and calendar popup to "floating" screens and has done a lot for bridging the gap between web applications and desktop applications. Apart from everything else, it has brought a smile on the faces of usability engineers. They can easily offer UI designs that were earlier technically complex.
Am not sure if Web2.0 has made graphics designers redundant. Frankly, I am not aware of their scope of work. But I don't see a reason as long as the roles are understood.
It's a very good suggestion to include those things as part of training. But a bit tricky to implement in practice. Mainly because of the level of IT awareness/education amongst the freshers. These should be a part of continuous learning. For those who need to have these skills, should be encouraged/promoted/ in whatever way possible to acquire them.
By
Ashish, at 9:45 AM
Thanks a lot for the comments Ashish.
The current work in typical IT Services company for a graphics person is actually designing the screens - not as a Usability person, but, more to provide the HTML code to generate a pop-up and so on. The actual amount of creative/usability related work is really very little.
This in-turn has created a hierarchy where any *web developer* will not learn or touch static HTML pages nor learn about Javascript - thinking it is needed only for fancy look and feel.
The combination of the above two leads to a situation wherein the full potential of scripts is never realized and more importantly when a client has a need, it cannot be addressed since the graphics person cannot really implment the necessary functionailty and the *web developer* does not know scripting!
By
Akshay, at 2:54 PM
Post a Comment
Links to this post:
Create a Link
<< Home