Features are often turned into user stories throughout the development process. Often one user story for something small like our search example above, and multiple user stories for something like the scheduling system. User stories will help the software development team building the project understand more thoroughly why a feature is being built and what purpose it serves for the intended user.
All features should have direct relevance and usefulness for the people using the software. In custom software development, unique features will take up a large part of the development process, as their creation is what stands out over off-the-shelf software options, in which limited, pre-decided features are all you get. Deciding on and creating your own features for your own software is a huge benefit of custom software development.