The technology stack
The “stack” of a product is its collection of interdependent parts. Its environment is vast and intricate.
Among the best analogies I’ve come across from The Software Guild is to picture the IT stack as a burger. A burger must have specific ingredients, but the rest of the sandwich can be customised to the eater’s preferences. The burger in your product might have onions on it, or it might not. The patties were made by one programmer and the cheese by another.
Many technologies may make up the stack used by your design team. One example of a “design stack” might be the programmes Sketch, Framer X, Zeplin, Abstract, Adobe Illustrator, and Origami. You may replace Sketch with another programme, such as Figma. You may use Adobe XD to pool the talents of multiple designers.
Different kinds of developers
From a designer’s perspective, there are only a few types of developers we are likely to meet in our day-to-day operations:
Maintaining a system like this requires several different kinds of people with a variety of talents between them. Most developers are the most comfortable working on a single component of the system, which gives them all different titles and roles.
Front end developers
Every one of us is collaborating with at least one front-end developer. These front-end technologies construct our layouts locally on the client’s machine. They share our enthusiasm for interfaces and are often trying out new approaches.
Developers for both desktop and mobile platforms are responsible for creating compelling user experiences. Even though they speak different languages and specialise in different areas, they all want the same thing.
If you’re a designer and someone asks if you know how to code, they’re probably looking for someone with this degree of proficiency.
Back end developers
People with this title will build the structure and logic of the system. They usually hold computer science or engineering degrees and are enthusiastic about robust and logical solutions. The parts of the experience that are separate from the interface usually belong to back-end developers. Things like quick loading times, secure data transfer, and robust data architecture.
We don’t work directly with them, but their work can directly impact what we can design.
Full stack developers
Developers can work on both the front and back ends of a system. They’re equal to our UX/UI designer role. Good ones are rare and highly sought after.
Designers can use analytics to see how our users are behaving, and data scientists are the ones who make this possible. They’re experts in condensing large amounts of data into critical insights using mathematical methods.
What should designers care about?
This is a lot of information, and I understand that. Your inquiry: “what is the minimum of this material I need to know to be useful?” sound familiar to me.
Your goal is to learn something to improve your work performance. Making a service or product to sell online? Practised use of CSS grids is essential. Keeping confidential data for your project? Learn the difference between public and private keys. Instead of becoming proficient in every conceivable field, focus on developing the skills and mindset that will allow you to succeed in various situations.
In retrospect, the following are among the most formative insights I’ve gained:
Programmers write web pages in a markup language called Hyper Text Markup Language. This allows users to have complete control over the look and feel of their websites by defining their preferred page structure, section roles, section contents, and element styles.
As an example, think about the text you just read. When this page loads, it looks like the image on the right when viewed in a web browser. The red information indicates mandatory data and metadata the client and server require to render this page correctly. Everything that makes us unique is listed in the orange box. In this day and age of abundant, freely available online materials, HTML may be quickly learned.
A solid understanding of the fundamentals is essential if you want to dabble in web design. The ability to practise on your machine using a programme like Brackets makes the process much more manageable.
We create a shared visual language for our goods during design, and developers do the same during development. To manage the appearance of their elements, they employ Cascading Style Sheets. Try viewing some websites with the CSS turned off to demonstrate the information’s importance.
With the example mentioned above, adding some CSS and making the page look fancier is simple. You can build a shared visual vocabulary for your page’s components with just a few lines of code.
Learning CSS can help you understand how challenging it is to make things look as fabulous as your designs. Sketch makes it simple to do what would be challenging to implement.
So, let’s review the last case. When I click the header, I want to be notified. Therefore I inserted an event there. The items on your page can respond to user interaction with just one line of code.
Mobile app development
I’m grouping together all aspects of app development under one umbrella for two reasons. First, I can only offer helpful guidance if I have experience in this area. Second, they are all very similar from the standpoint of a designer with no prior expertise.
App code rendering on mobile devices is distinct from web code rendering. The wide variety of modern technologies makes maintaining consistency far more challenging. Moreover, more complex user behaviours (such as swiping and gyroscopes) are now at your disposal.
Daily challenges can be overcome by tailoring your designs to each platform independently. You should familiarise yourself with the rules for both Android and iOS as soon as possible.
What do I need to know?
Designers who don’t code only need to understand how to make things easier for their developer teammates
Ultimately, coding isn’t for everyone. If you’re exposed to this stuff in your daily workflow, you can remember it. There are a couple of shortcuts you can take to be able to think like a designer/developer without touching a single line of code:
Be empathetic towards developers.
Collaboration improves results and provides opportunities for mutual education. Designers and developers work together to accomplish the same goal. Getting the most out of your team is as simple as making a few adjustments to your usual procedures:
- Build in time for developers to contribute to the design process. Developers have some of the best ideas I’ve ever heard. Please include them in design reviews, brainstorming sessions, and user testing results as much as possible.
- Attend to their advice. When a programmer tells you they can’t implement your concept, it isn’t because they don’t like it. Some things are challenging to construct. Have a constructive attitude and collaborate to find a solution.
- Fight for them and win. The process of handing off your designs continues; you still need to be there for your team while they realise your vision. If adjusting just one detail may improve their lives, then it’s a no-brainer.
Try out some different tools.
Creating digital things is rarely as simple as our “drag and drop” workflow. When you’re coding, your hands seldom leave the keyboard since that’s how you construct everything.
Sometimes, we need tools to bridge the gap between our workflow and engineers.
- Webflow. You don’t need to know how to code to use this online tool, as it will generate your designs as a live HTML page. You can construct your website with pre-made components and customise its appearance as you see fit. If you want to learn more about CSS styling and components, this is the right tool.
- Origami. A Facebook-made prototyping app. It works well with Sketch, but I’m recommending it primarily because it will alter your approach to designing user interfaces. You won’t see them as patterns but rather as a structure of smaller parts.
- Framer. Just another prototyping tool that requires you to know your way around structure and code. It’ll take some getting accustomed to, but practising making your ideas into reality is excellent.
So what do I do now?
We may streamline our processes by learning the fundamentals of the tools we create interfaces for.
One thing that annoys me about expecting designers to make production-ready code is that it needs to cater to designers’ unique needs. If you want to make mobile apps, knowing HTML is a must. No one thinks you have to memorise this information; you can still use it if you don’t know how to fix your car’s engine. How would you use your knowledge of React as a print designer?
As creatives, we should only be satisfied with being the best at what we do. If something requires some research and development, that’s great. And if you don’t, that’s fine, too. If there is something you feel you need to know but don’t, go out and get it.