Software development, .Net, SQL Server, TDD, Agile, Community and other Odds and Sods
Mitch Wheat has been working as a professional programmer since 1984, graduating with a honours degree in Mathematics from Warwick University, UK in 1986. He moved to Perth in 1995, having worked in software houses in London and Rotterdam. He has worked in the areas of mining, electronics, research, defence, financial, GIS, telecommunications, engineering, and information management. Mitch has worked mainly with Microsoft technologies (since Windows version 3.0) but has also used UNIX. He holds the following Microsoft certifications: MCPD (Web and Windows) using C# and SQL Server MCITP (Admin and Developer). His preferred development environment is C#, .Net Framework and SQL Server. Mitch has worked as an independent consultant for the last 10 years, and is currently involved with helping teams improve their Software Development Life Cycle. His areas of special interest lie in performance tuning
Sunday, October 08, 2006
I was interested to see that Nick Randolph mentioned the role of interaction designer recently on his blog, when discussing the demarcation of roles in the design/development process, prompted by disagreeing with Brian Madsen’s blog post, following Greg Linwood's presentation. I’ve been talking about this essential role for a number of years and I mostly get blank stares or a bit of eye rolling, and/or finger twirling when I do!
Although I agree that interaction design is a vital part of the development process, I disagree with Nick when he states “This role [developers] should NOT be concerned with how indexes are structured etc,…”. I believe that developers SHOULD have an understanding of how indexes are structured and used. In fact, the principle of treating systems in a more holistic fashion avoids ‘pigeon holing’ and the “it’s not my problem attitude”. In larger teams, it is highly beneficial to have people spanning roles so that they can bring understanding and promote communication between disciplines and teams.
Interaction Design is something I passionately believe in as a way of ensuring that software meets and (better still) exceeds users’ expectations. The aim should be to create applications that need little or no help, “I shouldn’t have to read the manual to understand how it works”. It is possible. I have used the technique to produce a very successful application, which required minimal training even though the system contained a reasonable amount of complexity. One recent UI technique that I think should be highly valued is the ability to add ‘watermarked’ text (pale gray) to empty controls. For example, in a person’s name control you could set the watermark text to “Wheat, Mitch” explicitly showing the format the field expects data to be entered in. This eliminates ‘cognitive friction’ on the part of the user because they don’t have to think “Is it last name first, followed by a comma, or should a name be entered the way it is read?”.
In fact, more than just creating systems that are easy to use, our aim should be to create passionate users. Kathy Sierra and others, post wonderful articles on creating passionate users here.
Interaction design is something Alan Cooper (the father of Visual Basic) has been involved with for some time (you could even say he pioneered it), and has published several great books on the topic, the most notable being The Inmates are Running the Asylum, but also About Face 2.0.
MSN, Email: mitch døt wheat at gmail.com