I like the general idea of putting more focus on good UX Engineers. But, this guy seems to think that making the back-end support a bunch of Ajax calls is easier than.
In fact, you start needing more work to make it efficient since you have to break down everything into exactly what needs to be in that call with appropriate permissions etc.
While I agree with the central theme ("UI/UX Designers and developers are going to get harder to find") I don't agree with a lot of his reasons.
He's obviously not an engineer and doesn't really understand AJAX, jQuery or HTML5.
Personally, I believe the shortage is going to get worse because there is going to be an increase in demand and there are VERY few paths through traditional educational outlets that will produce a good UI/UX designer/engineer. HCI at Stanford is the closest I've seen recently while interviewing candidates, and even then it has less to do with web technologies than interaction principles.
In my experience, the designers are learning how to program way faster than the programmers are learning how to design. (This coming from someone who's doing the latter.) I can't give a good reason as to why; it's just a gut feeling.
So in addition to computer science based HCI programs like CMU and Stanford, keep an eye on programs in studio-based design schools. A lot of undergraduate programs in designing technological experiences - combining engineering training with studio method - are starting up in places like NYU, SVA, SCAD, CCA, CMU's art department, and the like. Many of these schools already have strong masters programs which take undergrads with computer science backgrounds.
There's a difference between the level of programming required to build a proof of concept, and the level required to make it do anything off the beaten path.
I think it's well established that it's never been easier to get a web application off the ground, and UX+design in this space definitely is a differentiator, and probably more important for those initial first impressions than the programming.
It's a function of market saturation though, creating your average web application or site is a pretty established problem, with a huge number of options when you need to go about building it.
Where engineers are not a commodity? Any company that needs things to be delivered yesterday, in a space where you need cross-disciplinary, out-of-the-box thinking, with the ability to play multiple roles (sysadmin, support, customer service, programmer).
These types of engineers are quite hard to find, and satisfaction with the average "commoditized" engineer will be extremely low.
Let's say, making an HTML5 iPad app talk to a proprietary hardware device using a proprietary application protocol over TCP to make for a rocking walking salesman appliance.
Yeah, good luck making that sing in a sufficient timeframe if you don't know what you're doing.
There isn't an engineer in the world that understands AJAX, jQuery or HTML5. Oh wait! You're talking about software developers or computer programmers or computer scientists aren't you? Why didn't you say so??
I'm told in Canada it's not allowed to have 'Engineer' in your title if you lack a P.Eng.; I think I prefer this situation to the common practice here in the States.
Can I ask why you prefer this? I think that prefacing the word engineer with the type of engineering is much more preferable than redefining the word to mean something to do with physical engineering.
I think it's not so much about the 'physical' part as about the 'rigorous training, certification and qa assurance practices' part. Developing software is very different from constructing a building (I do both, not as an engineer though); software is new, almost each and every time, because once it's build, you can just copy it byte by byte. Developing software is about pushing the edge in an unconstrained space. Physical construction (buildings, bridges, roads) is about repeatability; rigorous standards to reach a quantifiable production standard, and a build-in inertia to change. Large outfits (IBM, IT dev depts of big-four, that sort of thing) want to get software development to those levels, but nobody has managed so far.
Everyone in tech fancies themselves an engineer and architect these days, although they have little nothing to do with the original intent for those long established professions.
It can be confusing and misleading for non-tech people.
I went to Northeastern and my undergrad degree was in "Information Science" program which is a mix of HCI/Usability/Com Sci, though it's an unfortunate name for the major as most people have no idea what it means. There was very little focus on web technologies and more of a focus on interaction principles as you said. I don't know that I wanted to take an HTML/CSS/JS class, but I always wished that my major involved some more design type classes to hone people into that type of career more. I love doing front end work, but I think at this point I lack the design skills to do be an effective employee in that sense.
I think HCI -- even though it's a relatively new program in most schools -- is a response to a problem a decade late. For reasons good and bad, Academia can't keep up with Moore's Law.
First, you don't want to build a major for every new technology; the half life of most technologies is very short. Second, sifting the cruft from the stuff that will outlive the specific technology (think personal updates vs. friendster -> myspace -> facebook -> twitter) is difficult.
So you end up with a compromise: A school of thought that teaches (or tries to) timeless principles of interaction. This is an incredible advancement in education, but unfortunately means less to someone looking for employment right out of college.
The problem is that UI and UX are a mix of science -- something taught at universities and colleges -- and what is traditionally relegated to vocational schools. It's not an applied science; it's more like being a mechanic or someone who makes those really fancy import cars even fancier.
The solution, I think, is going to be a long way off; universities will have to hire people that teach more about the history of design, what people are accustomed to and expect, what interfaces work and why and how to design for people whose aesthetic changes once every couple years. Art schools will have to hire hardcore CS people to teach rock solid foundations of logic, how languages work, etc etc...
Just wondering, what really makes a good UX engineer? I'm studying HCI at a university other than stanford, and the course is total BS... I knew the principles we were supposed to learn were important, but having whole lectures spent on comparing command languages vs natural languages (i.e stuff like command languages are fast and good for experts and natural languages are good for novices... how to make prototypes out of postit notes... a low-fidelity prototype is a cheap prototype whilst a high fidelity prototype is expensive... Stuff I could tell you myself) makes it hard to spend my time focusing on the course. :(
The only useful thing I've learnt is that when you're doing a questionnaire with lickert scales, don't use mean because the distances between each point on the scale isn't equal...
It kind of depends on the scale you want to operate at. If you are Google level, UX tends to be VERY mathematically (statistically) driven. In which case I would focus on a degree in math.
Towards the lower end (read: almost everywhere else) of that scale, you're best bet is actually to look at a design degree, and learn the tech on your own.
Your best bet is experience in the field. Very few schools are teaching comp sci programs that are worth anything (Stanford, CMU a few others), and I have seen almost nothing of value in academia in terms of product/UX development (which is why I say focus on Math or pure Design). The web stuff you're really going to have to teach yourself, I think for at least another 3-4 years, maybe longer.
The author is somewhat right about the commoditization of the backend, but it's not to India, it's to frameworks like RoR. Larger companies that require serious, responsive scaling, sharding and cacheing are not, and will not be, outsourcing to these frameworks. But it's definitely not to India (data entry, sure).
I would say it's the same thing that makes anyone good at anything: The ability to take the body of knowledge associated with the field and not only synthesize it, but to riff on it and make new -- or at least -- compelling things.
That might be too broad. Specific to UX, I would say that many companies only consider what a user experiences and the stories they accumulate when their brand is mature -- usually much too late to pivot.
A good UX designer in an early stage venture is usually also an interface designer, to some degree, and taps into the following:
1) Deep understanding of the market and demographic
2) A solid grasp on what people expect
3) A great appreciation for the things that compel people to action
UX designers and engineers make things that cause people to accomplish goals in a way that is unobtrusive (except when it needs to be) unoffensive (except when it needs to be) and not confusing (ever). That's my take, at least.
That's sort of the point. Engineer is a term thrown around, from QA to UI designers. While their positions are no less important to a company, calling them engineers is just wrong.
Also, you can get a true 'engineering' degree in software in Ontario, Canada (UWaterloo)
What hand-wavy nonsense. Yeah, programmers are just commodity and we will just offshore everything. This guy just states this flippantly without even acknowledging the several problems associated with that in Yet Another Case Of UX Worship. The idea that you don't need "backend guys" because you are just going to make "AJAX Calls" makes this guy just look silly.
I mean, yeah, Google wasted money on all those engineers. Why did they build on that infrastructure? All they needed was a few AJAX calls, duh! Finally, Google figured it out and through away all that massive indexing set of algorithms so they could just make AJAX calls.
I don't see what this guy's fascination is with AJAX and "making calls from Javascript" or how this means we don't need programmers anymore. Apparently, we can just appeal to some vague "throw it in the cloud and it will scale" mentality.
What makes it worse for me is that apparently this Usability guru was involved in this website:
I agree. Usability is important, and people who are good at it are valuable, but to turn that into "all this backend stuff is going to be outsourced" is ridiculous. Generally, building a great app requires highly-skilled people working in all areas of the application.
Ignoring the gaping holes in the engineering side of the argument (because clearly there is you use the AJAX "language" to make calls to a magic blackbox that handles all of the data storage, notifications, business logic, etc), the UI/UX arguments aren't even fully baked.
For mobile applications he recommends developing a mobile website instead of a native app. The biggest downfall of mobile websites is that iphone and android have rather different vocabularies for user interactions (hardware buttons vs. all touch screen) and what makes sense on one platform often is confusing on the other. That's probably the biggest downfall I've seen to using a framework like PhoneGap. Yes, you can quickly mock things up to try (which is great for iterating on the UI/UX aspects) but there either end up being two versions (sharing some common code for logic/backend interface) with different UIs built on PhoneGap or you go ahead and build native apps to fully fit into the expected user experiences from both platforms.
Is it silly to ignore UI/UX, of course, but expecting the backend to just magically work (and work well) is just as unwise.
I agree with the sentiment that a UX/UI engineering need is going to be a necessary requirement not easily fulfilled in the near future. The good ones are fluent in back-end keyboard mashing, front-end spit shining, and everything in between. They need to have design skills, programming chops, user experience knowledge, a taste for the tasteful, a writers intellect, and a certain je ne sais quoi insight into what makes people want to use your product. They are not designers, nor are they programmers... They are both.
I liked the article, but little bits don't add up. I'd say it's an entertaining read, but maybe not as solid on information as I'd expect for a frontpage HN article.
"There has to be solid knowledge of how it should be used properly (as opposed to way most UI Engineers use it today), and how to create great user experiences that use jQuery right and not just to use it." Sigh. That's not just really badly written, it's almost almost 100% fluff.
I am an experienced UI developer and while I agree with the main point of the article I would like to note that not all front-end positions are created equal.
I've worked at amazing shops where there was a clear role definition (made easier by the beauty that is Django) and the expected code quality was really high. There were project based code reviews to ensure this.
I've worked at places where a front-end developer meant you write Java in Eclipse (which took 15 mins to launch) that in turn generated JS that manipulated the DOM to create your markup. This is common practice in more places than we realize.
If you're a UI dev do your homework before accepting any position. The market is really dry for our field and people on the interview will lie to get you to come over. I've been to over a dozen interviews in just the past year (and I am thinking I should write more about this) and the industry expectations are simply rarely properly determined of what the role entails.
Apologies for the rant. Downvote if you sense my frustration :)
I'd love to hear more about interviews. As a front end dev with a BFA in design I've had surprisingly easy time finding jobs. I'm always interested in hearing about what other experiences people are having.
As an experienced Frontend Developer thats worked for a number of startups, this article is not well written. I prefer Developer rather than Engineer. It does seem like really good frontend developers are becoming more rare because it takes a unique blend of technical skill (mainly javascript), understanding Usability/UX and having aesthetic tendencies. More and more companies are looking for Frontend developers that can also write Framework template code (Rails, Django) which requires even more skill or exp. Its kinda a specialized niche.
FYI, I am currently looking for a new job if anyone has an opening.....
Google is mostly about backend data processing. Google's front-end effort is nice, but dwarfs in comparison with the backend accomplishments.
The same is true for most other businesses.
So the demand for backend engineers would definitely be higher.
And it's easier to outsource UI than outsource backend, because backend is typically more complex and harder to test and communicate about, so keeping developers closer to business users is even more important in for backend functionality, than for front-end functionality.
As one comedian said, "I don't come down to McDonalds and make fun of you while you're working..."
You might not agree with all my reasons or some of my thoughts. However, the indifference of great UI by engineers kills companies. I have sat in environments time and time again where lack of attention of detail creates horrible user experiences, and this affect the bottom line in a very real way.
This should read as, "you are bitting the hand that feeds you."
The best engineers I have met ask questions, and have a genuine concern for the user. They want to create great experiences. The engineers that don't want to get involved in a positive way without being a destructive gatekeeper, I have no time for them.
We have now reached a tipping point where most companies are recognizing the need for great user experiences, because poor one's cost companies time and money, both in lost customers and lost productivity.
This indifference by engineers is the reason why a UI Engineer position was created by many companies; they realize that most back end engineers just want to code in a way that most people at car manufacturing plants want to put the bolt on.
That mentality didn't work out well for GM and other car companies. It's also not working out for most technology companies.
You can bitch all you want, but if you aren't contributing to the bottom line, you're just a cost center. And cost centers get outsourced, plain and simple.
You're missing the point and kind of making an ass out of yourself while doing it. You can't just say "You might not agree with all my reasons" and make some strawman. Most of the criticism has been around how you flippantly dismiss the skill of programming while serve up UX design on a pedestal but yet you make it out as if we are dismissing usability design. It's like a delusion of persecution. Also, I fail to see how a "UX designer" is any less a cost center than a programmer. Maybe you're not sure what your words mean?
Also, I have managed those outsourced situations and you are naive: "plain and simple." I mean seriously, either respond to the criticisms like an adult or don't play at all.
41 comments
[ 5.3 ms ] story [ 108 ms ] threadIn fact, you start needing more work to make it efficient since you have to break down everything into exactly what needs to be in that call with appropriate permissions etc.
He's obviously not an engineer and doesn't really understand AJAX, jQuery or HTML5.
Personally, I believe the shortage is going to get worse because there is going to be an increase in demand and there are VERY few paths through traditional educational outlets that will produce a good UI/UX designer/engineer. HCI at Stanford is the closest I've seen recently while interviewing candidates, and even then it has less to do with web technologies than interaction principles.
So in addition to computer science based HCI programs like CMU and Stanford, keep an eye on programs in studio-based design schools. A lot of undergraduate programs in designing technological experiences - combining engineering training with studio method - are starting up in places like NYU, SVA, SCAD, CCA, CMU's art department, and the like. Many of these schools already have strong masters programs which take undergrads with computer science backgrounds.
I think it's well established that it's never been easier to get a web application off the ground, and UX+design in this space definitely is a differentiator, and probably more important for those initial first impressions than the programming.
It's a function of market saturation though, creating your average web application or site is a pretty established problem, with a huge number of options when you need to go about building it.
Where engineers are not a commodity? Any company that needs things to be delivered yesterday, in a space where you need cross-disciplinary, out-of-the-box thinking, with the ability to play multiple roles (sysadmin, support, customer service, programmer).
These types of engineers are quite hard to find, and satisfaction with the average "commoditized" engineer will be extremely low.
Let's say, making an HTML5 iPad app talk to a proprietary hardware device using a proprietary application protocol over TCP to make for a rocking walking salesman appliance.
Yeah, good luck making that sing in a sufficient timeframe if you don't know what you're doing.
Everyone in tech fancies themselves an engineer and architect these days, although they have little nothing to do with the original intent for those long established professions.
It can be confusing and misleading for non-tech people.
First, you don't want to build a major for every new technology; the half life of most technologies is very short. Second, sifting the cruft from the stuff that will outlive the specific technology (think personal updates vs. friendster -> myspace -> facebook -> twitter) is difficult.
So you end up with a compromise: A school of thought that teaches (or tries to) timeless principles of interaction. This is an incredible advancement in education, but unfortunately means less to someone looking for employment right out of college.
The problem is that UI and UX are a mix of science -- something taught at universities and colleges -- and what is traditionally relegated to vocational schools. It's not an applied science; it's more like being a mechanic or someone who makes those really fancy import cars even fancier.
The solution, I think, is going to be a long way off; universities will have to hire people that teach more about the history of design, what people are accustomed to and expect, what interfaces work and why and how to design for people whose aesthetic changes once every couple years. Art schools will have to hire hardcore CS people to teach rock solid foundations of logic, how languages work, etc etc...
The only useful thing I've learnt is that when you're doing a questionnaire with lickert scales, don't use mean because the distances between each point on the scale isn't equal...
Towards the lower end (read: almost everywhere else) of that scale, you're best bet is actually to look at a design degree, and learn the tech on your own.
Your best bet is experience in the field. Very few schools are teaching comp sci programs that are worth anything (Stanford, CMU a few others), and I have seen almost nothing of value in academia in terms of product/UX development (which is why I say focus on Math or pure Design). The web stuff you're really going to have to teach yourself, I think for at least another 3-4 years, maybe longer.
The author is somewhat right about the commoditization of the backend, but it's not to India, it's to frameworks like RoR. Larger companies that require serious, responsive scaling, sharding and cacheing are not, and will not be, outsourcing to these frameworks. But it's definitely not to India (data entry, sure).
That might be too broad. Specific to UX, I would say that many companies only consider what a user experiences and the stories they accumulate when their brand is mature -- usually much too late to pivot.
A good UX designer in an early stage venture is usually also an interface designer, to some degree, and taps into the following:
1) Deep understanding of the market and demographic
2) A solid grasp on what people expect
3) A great appreciation for the things that compel people to action
UX designers and engineers make things that cause people to accomplish goals in a way that is unobtrusive (except when it needs to be) unoffensive (except when it needs to be) and not confusing (ever). That's my take, at least.
Also, you can get a true 'engineering' degree in software in Ontario, Canada (UWaterloo)
I mean, yeah, Google wasted money on all those engineers. Why did they build on that infrastructure? All they needed was a few AJAX calls, duh! Finally, Google figured it out and through away all that massive indexing set of algorithms so they could just make AJAX calls.
I don't see what this guy's fascination is with AJAX and "making calls from Javascript" or how this means we don't need programmers anymore. Apparently, we can just appeal to some vague "throw it in the cloud and it will scale" mentality.
What makes it worse for me is that apparently this Usability guru was involved in this website:
http://www.pickanexcuse.com/
Really ... a usability guru?
Yep, it's just that easy. Everyone knows that AJAX calls are outsourced to Chinese and Indian people on the back end. One per request.
For mobile applications he recommends developing a mobile website instead of a native app. The biggest downfall of mobile websites is that iphone and android have rather different vocabularies for user interactions (hardware buttons vs. all touch screen) and what makes sense on one platform often is confusing on the other. That's probably the biggest downfall I've seen to using a framework like PhoneGap. Yes, you can quickly mock things up to try (which is great for iterating on the UI/UX aspects) but there either end up being two versions (sharing some common code for logic/backend interface) with different UIs built on PhoneGap or you go ahead and build native apps to fully fit into the expected user experiences from both platforms.
Is it silly to ignore UI/UX, of course, but expecting the backend to just magically work (and work well) is just as unwise.
"There has to be solid knowledge of how it should be used properly (as opposed to way most UI Engineers use it today), and how to create great user experiences that use jQuery right and not just to use it." Sigh. That's not just really badly written, it's almost almost 100% fluff.
I've worked at amazing shops where there was a clear role definition (made easier by the beauty that is Django) and the expected code quality was really high. There were project based code reviews to ensure this.
I've worked at places where a front-end developer meant you write Java in Eclipse (which took 15 mins to launch) that in turn generated JS that manipulated the DOM to create your markup. This is common practice in more places than we realize.
If you're a UI dev do your homework before accepting any position. The market is really dry for our field and people on the interview will lie to get you to come over. I've been to over a dozen interviews in just the past year (and I am thinking I should write more about this) and the industry expectations are simply rarely properly determined of what the role entails.
Apologies for the rant. Downvote if you sense my frustration :)
there, I said it.
As one comedian said, "I don't come down to McDonalds and make fun of you while you're working..."
You might not agree with all my reasons or some of my thoughts. However, the indifference of great UI by engineers kills companies. I have sat in environments time and time again where lack of attention of detail creates horrible user experiences, and this affect the bottom line in a very real way.
This should read as, "you are bitting the hand that feeds you."
The best engineers I have met ask questions, and have a genuine concern for the user. They want to create great experiences. The engineers that don't want to get involved in a positive way without being a destructive gatekeeper, I have no time for them.
We have now reached a tipping point where most companies are recognizing the need for great user experiences, because poor one's cost companies time and money, both in lost customers and lost productivity.
This indifference by engineers is the reason why a UI Engineer position was created by many companies; they realize that most back end engineers just want to code in a way that most people at car manufacturing plants want to put the bolt on.
That mentality didn't work out well for GM and other car companies. It's also not working out for most technology companies.
You can bitch all you want, but if you aren't contributing to the bottom line, you're just a cost center. And cost centers get outsourced, plain and simple.
Also, I have managed those outsourced situations and you are naive: "plain and simple." I mean seriously, either respond to the criticisms like an adult or don't play at all.