Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting our team. We will be in touch shortly.Close

  1. Blog
  2. Article

Canonical
on 7 April 2010

The process of certainty. And mojitos.


You know that feeling when you know someone very well and you buy them a present? You know they will love it and you are excited at the very thought of their delight? Part of you is a little scared though. A few butterflies in the stomach. What if I have misread? What if they don’t like it?

I listened to someone speak recently who said that one thing he had learnt in his IT career was that the first time you do anything it will be wrong.

I disagree.

Rolling out a new database for a website, for example, can be done right first time. Be clear on what the old one does, write some tests, test the tests, make a rollback plan, test that. Make the new database. Research, plan, build, test, execute. The occasional hardware failure or act of god notwithstanding, everything is likely to work very smoothly and you can sit back and have a celebratory mojito.

I like mojitos.

Certainty isn’t always possible. Let’s aim for confidence.

1. Understand your users. No, don’t simply survey them, understand their underlying needs, behaviours; embrace that information, it will be the difference between functional and delightful. Think about how you ask the questions and make sure you understand the answer.

2. Understand the underlying objectives of the product, service, project you are setting out to design. These might be your objectives, your employers, your clients. Make sure you are clear on these factors.

3. Understand the competitor landscape: what might your users have learnt from them? What can you learn from them? What is food for ideas and what is noise?

4. Understand existing design principles, patterns and rules. Experiment, invent, play but remember that these are part of your toolbox.

5. Understand your need for testing. Test an idea. Test a sketch. Test a prototype. Test again. Be humbled again and again by all the assumptions you have made without realising. Be clear on what you are testing and why. Designing the test is a key part of the process.

6. Understand the limitations of the technologies you are working with. By all means push the limits. Reality checks are enormously important because poor execution of even the most brilliant design will undermine the user experience of it. You need to make sure your understanding matches that of the people who will be putting it together.

7. Understand the need to throw bad ideas away. They are fun. You should play. Test them. Understand why they are wrong and ditch them. Ideas are cheap.

8. Understand what is good about a design. Understand why. Add to it, improve on it, add it to your toolbox, move on. Good ideas are as cheap as bad ones.

Test, repeat, improve.

Perfection is elusive. Have a mojito, sometimes it helps.

Related posts


Ana Sereijo
19 April 2024

Let’s talk open design

Design Article

Why aren’t there more design contributions in open source? Help us find out! ...


Igor Ljubuncic
24 January 2024

Canonical’s recipe for High Performance Computing

HPC HPC

In essence, High Performance Computing (HPC) is quite simple. Speed and scale. In practice, the concept is quite complex and hard to achieve. It is not dissimilar to what happens when you go from a regular car to a supercar or a hypercar – the challenges and problems you encounter at 100 km/h are vastly ...


Anthony Dillon
25 October 2023

Web team – hack week 2023

Design Article

Today, around 96% of software projects utilize open source in some way. The web team here at Canonical is passionate about Open source. We lead with an open-by-default approach and so almost everything we do and work on can be found publicly on the Canonical Github org. It is not enough to simply open our ...