I've always assumed that software should be written for two principal users:
But it's just occurred to me that in numerous cases there is a third implied user: the administrative user. In many cases the administrative user is the same as the end user or programming user i.e. the same user installs, integrates and executes the application. But for services, the administrative user is often a third but perhaps more important user as they provision the service for both the end user and programming user. For example, a Django application needs to be administered in order for it to be integrated into a project before it may be programmed against to provide the required service to the end user.