'Devigners' ?... or more complete software developers ?
Discussions about the advent of these ‘Devigners’ have a lot to do with an interesting article Shane Morris at Microsoft wrote some time back. The article talked about possible design talent shortages in case Rich Media Applications (RIA) take off after the arrival of new Microsoft Design technologies.
Design technologies coming out of Microsoft like WPF and Silverlight, and in particular the design tools like Expression Design and Expression Blend are certainly having an impact in this direction. They are allowing developers to write RIAs leveraging the Microsoft technology stack. They are also streamlining the Designer- Developer workflow. But most importantly, these technologies are lowering the bar on the design skill needed to create cool-looking interactive effects.
This situation where more people want to build rich, interactive applications is bound to create a higher need for designers. It has a lot to do with the complexity that is inherently associated with the richness of these applications. Something simple and straight forward can be built with minimal design intervention. For higher complexity and bigger visual impact, the need to involve someone with good design skills becomes more pressing.
Designers, due to their mindset (as well as their training) are lot more comfortable with complex problem spaces. They are trained to seek multiple solutions for one design problem. But most importantly they are also trained to addresses the functional, emotional and aesthetic needs through one holistic design. For developers, the aesthetic sensibilities and ‘artistic’ skills necessary to conceive cool UI design solution always seem like an impossible hurdle to cross.
Given that good design talent is hard to find, and things may get worse with advent of above mentioned technologies, what is the way forward? Do we need those “Devigners”, people who are comfortable in performing either role with equal ease? Or can we train an average developer on certain core interaction design skills and expect things them to deliver well?
My observation is that for a large number of software projects, the second option is not as bad as it may look. Let’s first consider the advancements in modern day design tools. These tools, including Expression Design and Expression Blend, are rich in features that allow a novice user to explore and crate engaging interactions with minimal experimentation. Their interfaces are relatively easy to learn and a lot of complex activities can be automated. There are ways to incorporate or reuse design elements like styles thereby making it easy to isolate the high-end visual design inputs into tangible code files – something a lot of developers reverse engineer to understand the ‘design’. But just good support from tools and technologies is not enough. What about core design skills that ensure a creative and holistic solution?
I have seen that with some rigorous training and hands-on practicum, a software developer with interest in user interface design can be effectively used to fill the void of ‘that unavailable UI design resource’. This is particularly true for line-of-business applications where a certain level of adherence to well accepted interface design standards is expected.
In my view, the four areas where a software developer needs training are:
a. Creative design process and core interaction design theories
b. Basic visual design and layout development principles
c. User interface design patterns
d. Basic usability engineering principles and practices
While, this approach solves the immediate project staffing needs and ensures adherence to minimum design standards; it actually has much bigger rewards in the long term.
Exposure to creative design process makes the developer far more comfortable to open-ended problems - or problems with emerging uncertainties. It equips them with some lateral thinking techniques. And the biggest plus is that they learn to focus their efforts on satisfying the end-user through all their actions. This way, they may not turn into ‘Devigners’, but they sure do become ‘more complete’ developers. In this ‘SOA ‘and ‘Mash-ups’ driven era, where much more data is available for manipulation and display, good UI skills in my view are a ‘must have’, not ‘good to have’ to be categorized as a good developer.
In the weeks to come, I will address these training areas separately in follow-up blogs.