Building reusable and autonomous services that possess the proper degree of granularity is critical for the success of a service-oriented architecture (SOA), especially for large and heterogeneous application landscapes. While there are a number of approaches to service engineering, most of these approaches are designed with a special purpose or project context in mind. This paper presents a pragmatic approach to service engineering that can be applied in scenarios where it is particularly necessary to identify service interfaces with the right granularity. The approach is based on a comparison of service engineering methodologies with special regard for their ability to connect different levels of an SOA. We apply concepts from this approach to build single services and their service landscapes. We also suggest the utilization of service inventory techniques to evaluate and assess the outcome of the proposed service engineering methodology.