Design tenets to help you design better softwares
Something I have written a while ago, summarising design tenets I have learned along the way which can serve as guiding principles in your design process to ship better softwares.
Start with problem, customer goals and product goals
Start by deeply understanding the customer problem and their goals. Gain insights into your customer needs and overarching business goals. It's crucial to redefine the problem, customer goals, product goals and high-level solution for clarity throughout. Don't rush this phase - a well-defined problem leads to better solutions.

Create shared understanding through visual artefacts
A shared visual artifact should be the outcome of each activity you do throughout the design process. Producing visual artifacts and using them for communication helps create a shared understanding with all stakeholders involved. This could be sketches, wireframes, user flows, or even quick prototypes - anything that helps others visualize your thinking.

Collaborate with clarity and empathy
Successful collaboration hinges on clear understanding of the motivations and objectives of stakeholders involved. Tailor your communication to meet the unique expectations of each stakeholder. Strive for clarity & empathy while collaborating. Remember that different stakeholders speak different languages - engineers think differently from product managers, who think differently from business stakeholders.

Prototype faster and test often
Diverge with multiple parallel solutions, then converge towards the most viable and feasible one based on the insights gathered. Regularly test with stakeholders and end users to iterate. Rely on data as much as possible, change direction if your test results say so. Don't get too attached to your solutions - be ready to pivot based on feedback.

Do extensive iteration to achieve quality
When you are diverging with solutions, do parallel prototypes, iterate faster, compare solutions. Retrospect your launches for opportunities, define KPIs, collect usage metrics, and periodically evaluate the outcomes to drive further refinement. Quality comes from iteration - your first solution is rarely your best solution.

Take design decisions based on data
Throughout the journey, from the initial discovery phase to design validation, let data be your guiding light. Base your decisions on the insights acquired from data analysis, communicate your design choices with the backing of data-driven insights. When data is scarce, trust your intuition and industry best practices. Remember that both quantitative and qualitative data have their place in decision making.

Design for user delight
Differentiating your product from competitors requires a commitment to user delight. Prioritize understanding of the user's needs, behaviors, and preferences. Turn your customers into your superfans. Offer personalization, simpler defaults for novice users and greater customization for advanced users. Focus on the small details - they often make the biggest difference in user experience.
