It's almost reminiscent of the age-old debate between developers and designers. However, in today's ever-evolving landscape, understanding and collaboration between these two disciplines is more crucial than ever. Let’s start with the conclusion that "balance" is the key and figure out methods that would help us constantly envision that balance and attain it.
With the assertion that "balance is always possible", and it’s never personal to either of these disciplines, here is my list of methods and terminologies that designers can utilize to spin off feasible designs that the developers (and everyone else) would love.
1. Product mindset
If you look around, you see an endless pool of product-races. Every product is having a fierce race with its competitors. Even new products are racing to outpace future competitors. This competitive nature is imperative to any product if it is to survive. Features and their timely delivery are the most important fuels in this race. A typical product starts as an MVP and then thickens up gradually with most relevant features constantly being added. Yet, staying lean is indispensable so it’s becoming vital for both designers and developers (and everyone else for that matter) to understand the vision of the product and regulate their expectations. Stick to the idea that the Product is the most important entity and refrain from going beyond a certain level of interface/interaction complexity that can potentially cause the product to lag behind.
2. "Critical edge" of complexity and delight
Any design has a certain measurable ROI on its implementation effort. The critical edge is a situation where relaxing the design expectation a tiny bit can reduce the development effort tremendously. This might compromise the ‘delight’ in the output but in such cases it’s almost always more important to deliver the feature on time, with or without the delight. An ahead of time solution is to stay in constant touch with developers so that you do a more granular feasibility-check and do not cook surprises in isolation. Imagine an extreme situation where you have to design for a complicated interaction such as a Bluetooth handshake or a Braintree payment flow without any knowledge of the actual process, you might tread way beyond the complexity edge and create an infeasibility pool which looks beautiful but is actually ugly.
Rainbows are spotlessly beautiful, stunning and always a visual delight. But remember that they’re not real. You cannot reach a rainbow and touch it. There are certain design elements that exist only as a visual/experience delight without any tangible value. I call them "Rainbows". So as long as your design or experience ‘rainbows’ can add delight without compromising the functionalities and much of a price to pay, they are awesome. Remove the rainbows that work against the product features and milestones. The key is again to understand the implementation complexity and then to develop a mature product-mindset to take bold decisions of rubbing off your beloved rainbows.
4. Safe Dribbbling
I’m a Dribbble fan and I love dribbbling around. It’s a great source of inspiration to develop ideas and solution-patterns, and mood-boarding. Unfortunately, the pieces of art you see on that platform are imaginary and that in their full rights! Because art is all about imagination. These awesome bunch of creatives are thinking above and beyond any framework or boundaries of feasibility check. But from an implementation point of view, they are mostly impractical, infeasible and wouldn’t scale up. Not their fault, they did not target any practical implementation in the first place.
Safe dribbbling is the method of using Dribbble to only envision an experience-target and not to find a base for an interface/interaction you are to design. An interface/interaction design should always start with product specific wireframes and move towards the product’s theme (high fidelity) which might be inspired by one or more of the pieces of art you spotted on Dribbble.
Think about a line between wireframes and Dribbble inspirations. You have to reach to that usable, consistent and delightful sweet-spot somewhere on that line, but always starting from the wireframes side of it.
Note: ‘Dribbble’ here is a representation of all such platforms - Behance, Muzli, Google images, etc. Dribbble is probably the most famous and frequently misused.
5. Ideal designer and pure-creatives
The Zuckerberg principle of “Move fast and break things” is sadly true for the product race in this age of startups. Any startup would want to trade speed of growth over perfection. Pure creativity, on the other hand, demands thought-independence, dedication and time. But a startup situation would demand creativity as well to be lean and regulated to stick to the roadmap. This has necessitated the concept of ‘Ideal designer’ who learns to spend the cost-time bandwidth to first resolve the functionality and then use the remaining bandwidth in adding creative delight. First make it work and then make it beautiful.
The solution traces back to understanding the complexity-balance and attaining it. Again, talk to the developers.
6. Minimum Viable Developer (MVD)
If you look at the above points, the general idea lurks around the collaboration between designers and developers. A perfect solution might be a designer who’s a full-fledged developer as well. Only problem is that it’s a very rare breed. Collaboration between designers and developers is a solution that works, really, but it does add some lag in the process. If the collaboration can be reduced to chunks rather than being extremely granular, it would considerably reduce the lag. This is achievable if a designer can be a Minimum Viable Developer, which is to have a basic understanding of the concerned technologies from an implementation point of view, carefully regulated to an abstraction level, still maintaining separation of concern.
This hybrid is bound to become a startup dream job profile.
Here is the summary of putting your act together to attain an inherent design feasibility:
“Design with a product mindset and stay behind the critical edge of complexity by checking your rainbows and dribbbling safe, moving towards being an ideal designer and a minimum viable developer”