Why developers should care about designBy Jason Roberts
My first lines of code were written on a BBC Micro where the interface looked something like this:
Now when I boot up my computer I’m presented with something like this:
There’s obviously a pretty big difference!
When I first started programming, graphical user interfaces (GUIs) didn’t exist. Interaction with the user was achieved through simple text-based prompts (I have fond memories of playing text-based adventure games as a child).
Today, our apps run on touch-enabled hardware where we can take advantage of additional inputs such as the shaking of a phone to roll virtual dice. As user interfaces have evolved, so too has the job of the programmer. First we were programmers (or coders if you want to sound more hip), then we evolved to analyst-programmers, then simply, developers. Over time we’ve evolved from people who type code based on specs given to us, to people who actively participate in what the system should do. And through Agile practices, we are now even closer to the business than ever before.
Influenced by the evolution of web design, computer games and the advent of touchscreen smartphones, users today are used to (and expect) good user experiences. The term “delight” is often used, implying that the goal today is to not just make something possible, but to seek an exceptional and positive emotional response to software.
The role of design in software development has never been more important than it is today.
As developers, we are used to dealing with code, the logical embodiment of what we’re trying to achieve. It can be hard for us to understand design. It might seem like “touchy-feely stuff,” but design is a skill we can learn.
Several years ago I was contacted by a recruiter for some Silverlight consultancy work. While I was competent in both C# and XAML, my response contained a caveat: “…but I’m not a designer.” The recruiter told me that he had received similar responses from other developers. At the time I didn’t think too much about it, but the conversation lingered in my subconscious.
User interface (UI) and user experience (UX) design can be specialized occupations — you may even be lucky enough to have a designer on your current team — but developers can benefit from having design skills as well. Learning design can help us better engage with designers we’re working with and can also improve our users’ lives when we are responsible for crafting the UI.
Keeping up with advancements in the technical areas of software development can feel like a full-time job, so it may seem like an unfair expectation for us software developers.
Are you ready to learn design fundamentals? Check out Jason’s course, An Introduction to Design.
About the Author
Jason Roberts is a Microsoft MVP and Journeyman Software Developer with over 12 years experience. He is the author of the book Keeping Software Soft (KeepingSoftwareSoft.com) and writes at his blog DontCodeTired.com. He is an open source contributor and the creator of FeatureToggle, InAppPurchaseToggle and MoqaLate. He has also created both Windows Phone and Windows 8 Store apps. He holds a Bachelor of Science in computing and is an amateur music producer and landscape photographer.
- New course: Creating User Experiences: Fundamental Design Principles
- New course: Introduction to design
- New course: Raspberry Pi for Developers
- New course: Expression Blend for Developers
- Video: What Elevators Can Teach Us About User Experience Design
- New Course: Windows 8 – From Design to Delivery with C# and XAML
- New course: Career and Survival Strategies for Software Developers
- Free Training on User Experiences: Fundamental Design Principles by Billy Hollis
- New course: Force.com for .NET Developers
- New Course: Android for .NET Developers: 3 Adopting The Android Mindset