As computer programmers, it’s easy to get carried away into the vast and interesting world of software engineering. However, we must remember that people use computers as a means to an end, they need to get their jobs done. Despite having endless possibilities of all the features we can build, it’s important to stay focused and true to the needs of our users.

This is where the Jobs to be Done (JTBD) framework comes in. Tony Ulwick pioneered this approach, and the basic idea is to take a job that your user needs to do with a computer, and build the best possible software for that particular job. You can of course extend this idea beyond software. By doing so, you put the customer at the centre of your development process and ensure that your software really does serve their needs.

In my opinion, one of the reasons why iPhones continue to sell so well, despite constant criticism that they lack features that other phones may have, is because they were designed with the JTBD framework in mind. Apple understands that its customers want a device that just works and helps them do their jobs, not a device with endless features that they may never use.

In one of the companies I used to work for, one of the values was “Don’t f@ck the customer”. This is a great value to have because it helps you make the best judgement in so many situations. When you’re throwing an exception in your code, adding a button, choosing colours, planning navigation, and so on, always keep the customer in mind. Combine this value with the JTBD framework and you’ll be amazed at the results.

No matter what you are working on - a customer-facing product or an internal deployment tool - keep your customer in mind and what they are trying to achieve. By focusing on the tasks your customers need to do, you’ll be able to create software that truly serves their needs, and they’ll keep coming back for more.