SE Radio 172: Feature-Oriented Software Development with Sven Apel – Pt 1

Recording Venue: University of Passau
Guest: Sven Apel
Host: Stefan

In this first episode on Feature-Oriented Software Development (FOSD), Sven Apel explains why developing software in a feature-oriented manner is so vital for us as software engineers and why objects are simply not enough.

Having stated that, Sven provides some clarifying answers to some key questions: What is a feature? What are feature models and feature modules? What is the infamous “feature interaction problem”?  And how come that we often struggle with the so-called “optional feature problem”?

Based on this common understanding, we then discuss the history of FOSD as a movement in software engineering research and a generative programming approach, its relationship to software product lines, and selected software landmarks (e.g. AHEAD). Finally, Sven sketches out the structure of an feature-oriented development process and comments on the relationship between FOSD and process management approaches such as Feature-Driven Design (FDD) and feature teams.

Show Notes


Join the discussion
  • Good podcast, the first one I listened to in your podcast series. I work at a product company with a legacy code base built through acquisition. I joined them 3 years ago and they are using FOSD. It has been a very difficult experience and even though we deliver I wonder what Architectural debt we are incurring. We are extremely market focused so customers drive the feature content for their particular release. The feature content makes its way into the main product line. We have a lot of domain architects and lack application architects. Developers drive UI design. We have a powerful product but at the end of the day I see costs in rework as features are to interdependent and not very configurable. The system is component centric but there is no usable mapping of domain to components at this time. The SDLC is so short due to market pressure it provides a very challenging environment. We can talk in terms of features but I wonder as we start a new growth period how well we will be able to establish a mature FOSD process. Thanks look forward to listening to some more podcasts.

  • Thanks Steve! I am happy to hear about your experience with FOSD. A central problem you mention is the complex mapping between domain abstractions and implementation components. The goal of FOSD is to simplify this mapping, and, for that, proper language mechanisms and tools are needed. So, I fear that, when using standard (hierarchical) component models, the mapping will often be complex. But, I also understand that it is too risky for a company to use more powerful but academic tools. The gap between academia and industry is still too big. Hope that will change…


More from this show