Providers and consumers have to deal with variants of software services, which are alternative instances of a services design, implementation, deployment, or operation. This work develops the service feature modeling language to represent software service variants and a suite of methods to select variants for development or delivery. An evaluation describes the systems implemented to make use of service feature modeling and its application to two real-world use cases.