This course is about development fundamentals for UX designers & how to involve developers in your design processes.
We won't teach you how to code, instead, we'll focus on all the topics, aspects you need to know in order to create designs that developers'll be able to build effectively. You, as a designer, contribute to a software development process. And without knowing what's under the hood, you won't be able to make informed design decisions.
[Update: 0.5-hour new content added on 16th November, 2019 - Designing for Different Screen Sizes & Devices; Design Handoff Advice]
[Release date: 7th November, 2018]
By learning about technical constraints and development aspects, you’ll be able to include a valuable additional layer in your design work. As a result, you’ll stand out from the crowd, you’ll be able to provide a more complete, more intentional design to your clients (whether you are a freelancer or an employee). Here are some of these aspects you can and should include:
Let’s say users can upload pictures inside your app. But how many pictures can they upload? Or let’s say you design a form. You should specify the max. length for each text fields, otherwise the user input displayed on a UI - e.g. a username - might break the layout. Or what happens if two or more users modify e.g. the price of a product simultaneously, how this conflict should be resolved? Another aspect is that based on the users’ context, what application type should you choose, an online or an offline app would support user goals better?
These are all design decisions, and if you don’t make them, someone else will do, so if you want to design a product or service intentionally, you should consider these aspects.
It is even better if you can make these decisions together with developers. Their unique, specific perspective’ll complement your interpretation and point of view.
So next to considering and incorporating technical aspects during your design work, it’s also great to collaborate with developers right from the start of a design process. You should involve them in UX research and ideation (e.g. design sprint, storyboarding) activities. Likewise, you should participate in their workflows, for instance during implementation, you should follow their progress inside a version control software, help them write automated tests and regularly test out what they built.
To sum up, the course has two main goals.
1. We teach you the main technical constraints and development aspects.
Understanding these is beneficial for any designers, whether you are a freelancer or an employee.
2. You'll learn how to collaborate with developers. We'll teach you how you can involve them, how you can ask better questions from them, and how you can participate in their workflows.
Learning how to collaborate effectively is beneficial for designers who work in a team or collaborate with others regularly.
The two goals are closely connected: understanding development aspects will help you improve the way you work with developers.
The course has 4 parts:
Foundation: By watching this section, you’ll understand how design work is incorporated into a digital product development process (e.g. waterfall, agile, lean)
Being On The Same Page: Without having a common language, you can’t collaborate effectively. By watching this section, you’ll learn how sketching and visual thinking helps you establish a shared understanding with developers.
Design Aspects: Involving developers in your design workflow right from the start lets you include a unique, additional perspective in the process. Thanks to this section, you’ll learn about the main opportunities for involving developers, e.g. conducting UX research together; ideating together (e.g. design sprint)
Developments Aspects: To design and implement a digital product or service in a way that it matches users’ needs, you must know what is going on inside the computer. We’ll teach you the most important aspects in this section.
If you are a UX designer / interaction designer / product designer / service designer / UI designer (your label doesn't really matter), most probably you are working on digital product or services. In other words, you are creating software products.
Learning about the different development aspects is not only about making a product development process more efficient. It's so much better to work in an organizational culture or in a cross-functional team where you can concentrate on doing your best work! Your team members'll appreciate that you understand the risks, costs, trade-offs of a design decision, a request, and as a result, a mutual trust can be established.
This mutual trust means that developers know that you won't ask for an unreasonable modification, and you'll also know that they'll be transparent about their processes and about the amount of development effort required to complete a task.
As you'll see, involving developers in your design processes, and asking developers to involve you in their processes results in an effective cross-functional collaboration. Product development processes have evolved in a way to reflect how technology and users' expectations have changed. Now we can get user feedback from the market really fast, and based on that feedback, we can continuously improve and fine-tune our digital product or service, in other words, we apply continuous integration and continuous deployment. To be able to work in this environment, we need cross-functional teams creating software products in close collaboration. And even if your organization still uses a waterfall process, you'll learn a lot about how you can take into account development aspects during your design process, how you can create a better design hand-off.
About the course material:
We created more than 50 hand-drawn sketches to explain the otherwise complicated concepts in a digestible, comprehensible way - you can download all these sketches in high-resolution!
We included a many practice activities so that you can solidify your understanding
You'll also find a walkthrough of GitLab's interface - knowing about how version control systems work helps you participate in implementation activities; and since version control tools created for designers apply the same concepts and terminology, this guided tour'll help you use these tools, for instance Abstract.
While we won't teach you how to code, thanks to the lectures about algorithms and programming, you'll understand all the basic concepts that are actually prerequisites of programming. Therefore, you can use these parts of the course material as a litmus test: if you particularly enjoy those parts, maybe programming is for you. But we believe that the infamous "Should designers learn to code?" question is irrelevant. If you want to learn to code, go ahead and start learning it. However, what is truly relevant is that you should understand how developers work, what challenges they face, what their main tasks are. This course'll teach you all these.
We have also included the related UX Knowledge Base Sketches, you can also download these in high-resolution.
The course videos are optimized for full HD resolution [select 1080p (or "Auto") resolution at the bottom left corner of your streaming player if it is not set to that resolution automatically]. If for any reasons (e.g. slow Internet connection) you can't access the videos in full HD resolution, we attached all the sketches in high-resolution, so you can print them out and follow the lectures by using the printed material.
Stay tuned for future updates! We're planning to add new lectures soon, e.g. about Responsivity (designing for different screen sizes and devices); Internationalization & Localization; Security and Cryptography.
As a result of watching these lectures, you'll be a more confident designer, who knows what making intentional design decisions mean.