Working from the user's point of view

I have once seen a team spend a lot of time and effort on optimizing the startup time of an application server that worked fine when it was already up and running. Once they had finished speeding it up, they announced their achievement to their customers. They were disappointed to notice that their customers didn't really care about it. This was because the optimization effort was not motivated by the user feedback and was only a bottom-up initiative of the developers. The people who built the system were launching the server multiple times every day. So, the startup time meant a lot to them. But sadly it wasn't that important to their customers.

While making a program start faster is a good thing from an absolute point of view, teams should be careful to prioritize the optimization work and ask themselves the following questions:

Remember that optimization has a cost, and that the developer's point of view is usually meaningless to customers (unless you are writing a framework or a library and the customer is a developer too).

Optimization is not a game. It should be done only when necessary.

In the next section, we will learn how to keep our code readable and maintainable.