Skip to content

Software Engineering Radio

The Podcast for Professional Software Developers

Recording Venue: OOP 2011

Guest: Andrew Brownsword

Host: Markus

In this episode I talk with Andrew Brownsword about software development for (modern) games. At the time, Andrew worked for Electronic Arts, so our discussion is mainly based on the Need for Speed franchise. We discuss characteristics and performance properties of modern games and outline the challenges for software development. We then discuss various patterns Andrew and his team used to address these.

Links:

Play

Guest: Wilbert Albers

Host: Markus

In this episode we take a look at microchip production, with a special focus on waferscanners. To do this, we talked with Wilbert Albers of ASML, the leading waferscanner manufacturer in the world. In the episode, we talk about the overall chip production process (from silicon sand over wafer cutting to lithography and etching), and then we talk about the challenges of building high-precision, high-throughput waferscanners.

Links:

Play

Recording Venue: University of Passau

Guest: Sven Apel

Host: Stefan

In this second episode on Feature-Oriented Software Development (FOSD), Sven Apel gives us an overview of programming language and tool support for FOSD.

He introduces the Eclipse-based FeatureIDE which covers important phases of the FOSD process, namely domain implementation as well as configuration and generation. The Eclipse plugin CIDE comes in handy for refactoring an existing code base towards a feature-oriented design and feature modularisation in a stepwise manner. As for programming language support, Sven gives us some hints on how certain mainstream (e.g., C#, Ruby, Scala) and research-driven languages (FeatureC++) assist at turning features into proper feature modules. Sven makes an interesting point by stating that feature modularisation is limited by the common granularity levels available for modularisation in object-oriented languages, namely the levels of objects and methods. Rather, modularisation at the statement and expression level would be equally required.

We end this episode by outlining some burning issues in FOSD research and practise to be tackled in the years to come (e.g., verification of feature-oriented programs and product lines, optimising feature selection, etc.). Sven finally provides some hints on where to keep yourself informed about FOSD and how to participate in FOSD-related events.

Links:

Play

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.

Links:

Play

Recording Venue: Skype

Guest: Martin Odersky

Host: Markus

This episode is an update on the developments around the Scala language. We covered the new features in 2.7 and 2.8, as well as what’s planned for 2.9. We then discussed briefly the different “proficiency levels” of Scala programmers. The main part of the episode centered around Martin’s new research project: the polymorphic embedding of DSLs for expressing concurrency into Scala.

Links:

Play

Recording Venue: Skype

Guest: Bas Vodde

Host: Michael

In this episode Michael talks with Bas Vodde about how to apply agile principles to large and distributed development organizations. Bas shares his experiences on working in, consulting and coaching companies to adopt Scrum for large scale software development. Together Bas and Michael explore common problems and how organizations deal with these problems. Problems such as how to move to a feature-centric organization, how to get peoples buy-in in the transition or why to base large-scale development on Scrum.

Links:

Play

Recording Venue: Oracle Java One 2010, San Francisco
Guest: Nati Shalom

Host: Robert

In this episode, Robert talks with Nati Shalom about the emergence of large-system architectures consisting of a grid of high-memory nodes. As memory has become faster and cheaper more rapidly than has disk storage, application state has increasingly migrated to memory in the form of caches. Memory grids take this one step further, using memory as the system of record and disk is used as a write-behind journal for recovery purposes.  Data and processing are colocated on the same node, which hosts what would be multiple tiers in the popular multi-tiered architectures. Data partitioning and distributed algorithms such as map-reduce become critical design decisions. Nati also discusses reliability and availability considerations of memory grids.

Links:

Play
Host: Martin/Markus
This episode is a conversation between Martin and Markus about being a consultant (or coach) in the software business. They talk about what it takes to be a good consultant, as well as about some of the positive and negative aspects of the profession.
Play

Recording Venue: Skype
Guest: Kent Beck

Host: Martin

In this episode we talk with Kent Beck about this tiny little thing he created many years ago and that has changed the daily work of many many programmers in the world: automated unit testing and JUnit. We briefly revisit the history of JUnit, talk about how things began and what has happened since then. We discuss test-driven development (TDD), talk about when to do TDD and when not, and chat about experiences in the wild. The episode closes with some personal thoughts about the future of testing and software engineering in general.

Links:

Play

Recording Venue: Skype
Guest: John Wiegand

Host: Martin

This time we have John Wiegand on the mic for an episode on architectures and agile software development. We talk about the role of architectures in an agile world and why architectures change and need to change over time. We discuss the characteristics of those living architectures, using the Eclipse and the Jazz projects as examples, and the surrounding development methods for such environments.

Links:

Play