Skip to content

Software Engineering Radio

The Podcast for Professional Software Developers

Archive

Category: Episodes

Recording Venue: Skype

Guest: Michael Hunger

Michael HungerMichael Hunger of Neo Technology, and a developer on the Neo4J database, joins Robert to discuss graph databases. Graph databases fall within the larger category of NoSQL databases but they are not primarily a solution to problems of scale. They differentiate themselves from RDBMS in offering a data model built with graphs rather than tables. Michael provides insight into many conceptual questions including: What is a graph? Is the world a graph? When are graphs a better representation of a problem than tables? When does a graph database outperform a relational database? How do graph databases scale? Michael also provides some insights into how thinking in terms of graphs changes the way that engineers view their domain. Graph databases are able to natively support queries that would be nearly impossible to express in SQL. The discussion also covers the consistency models of graph databases and an overview of the development environment for graph databases. Finally, the guest gives an overview of the emerging graph database space and where we are on the adoption curve.

Play

Recording Venue: Skype

Guest: Grant Ingersoll

Grant IngersollGrant Ingersoll, founder of the Mahout project, talks with Robert about machine learning.   The conversation begins with an introduction to machine learning and the forces driving the adoption of this technique. Grant explains the three main use cases, similarity metrics, supervised versus unsupervised learning, and the use of large data sets. He also provides a brief history of the Mahout project and the connection between Mahout and Hadoop.  The remainder of the episode dives into the three main uses cases: recommendations, clustering, and classification. Grant and Robert discuss each use case, illustrating with examples and a typical algorithm. Recommendation is a technique for identifying items that a user would like to buy, use, or otherwise consume based on the preferences of similar users. Clustering is the partitioning of the data set into a small number of sets of similar items.  Classification is the assignment of new items to a small number of existing sets.

Play

Recording Venue: Swiss Federal Institute of Technology, Zürich

Guest: Georg von Krogh

Georg von KroghOpen source development has had a major impact on both private and public development and use of software. This is an interview with one of the key researchers on open source development, Professor Georg von Krogh of the Swiss Federal Institute of Technology in Zürich. The interview focuses on the current state of open source development, characteristics of successful open source projects, what management science can learn from the open source community, what motivates open source developers, and research questions related to open source development.

Play

Recording Venue: Skype

Guest: Douglas C. Schmidt

Doug SchmidtIn this episode we talk with Douglas C. Schmidt, who is a professor of computer science at Vanderbilt University and a well-respected authority in the fields of patterns and frameworks for concurrent and networked software. In this interview we talk about these topics in the context of massive open online courses, which are a disruptive technology trend that is profoundly affecting how education is delivered around the world.

Play

Recording Venue: WebEx

Guest: Christof Ebert

Christof EbertChristof Ebert, managing director of Vector Consulting Services talks with Frances Paulisch on his insights to how lean applies to product development. The interview centers around five key principles of lean development, namely end-to-end focus on creating value for the customer, eliminating waste, optimizing value streams, empowering people, and continuously improving. This IEEE podcast addresses lean software development as opposed to management or manufacturing theories. In that context, we sought to address some key questions: What design principles deliver value, and how are they introduced to best manage change? Many practical examples illustrate how to introduce lean without strangulating development.

Play

Recording Venue: Skype

Guest: Eric Lubow

Eric LubowEric Lubow and Robert discuss polyglot persistence, a term used to describe systems that incorporate multiple specialized persistent stores rather than a single general-purpose database.  Eric provides insights into the forces driving this trend:  including diverse data usage patterns, low latency, and increasing volumes of data.  The emergence of many free storage servers that perform well much better than most general-purpose databases for specific usage patterns has made polyglot persistence cost-effective.   Eric shares some of his experiences deploying storage solutions, programming languages, and the driver libraries.  Eric and Robert wrap up with a discussion of the impact of polyglottism on architecture and testing.  Along the way, they explore the cultural shifts that need to take place as organizations move from the one-size-fits-all model.

Play

Recording Venue: Paddington, London

Guests: Suzanne Robertson and James Robertson, Atlantic Systems Guild

James Robertson and Suzanne RobertsonNeil Maiden, Editor of the Requirements column in IEEE Software, talks with Suzanne and James Robertson of the Atlantic Systems Guild about the emergence and impact of agile practices on requirements work. The interview begins with an exploration of how agile practices have changed requirements work. Suzanne and James introduce an important distinction between “Agile” and “agile”, then use it to drill down on how agile can address emerging important topics such as innovation. They close with thoughts about the future of requirements work in an agile world.

Play

Recording Venue: Lucene Revolution 2012 (Boston)

Guest: Grant Ingersoll

Grant IngersollGrant Ingersoll, a committer on the Apache Solr and Lucene, talks with Robert about the  problems of full-text search and why applications are taking control of their own search, and then continues with a dive into the architecture of the Solr search engine. The architecture portion of the interview covers the Lucene full-text index, including the text ingestion process, how indexes are built, and how the search engine ranks search results.  Grant also explains some of the key differences between a search engine and a relational database, and why both have a place within modern application architectures.  They close with a discussion of how Solr can scale up to serve very large indexes.

Play

Recording Venue: Skype

Guest: Martin Fowler and Pramod Sadalage

Martin FowlerPramod SadalageIn this episode, we talk with Pramod Sadalage and Martin Fowler about database evolution and agile database development. We discuss the basic challenges for working with a database in an agile development culture and how to include database design and most of all, database evolution, in the usually short development cycles of modern software development methods. We talk about continuous integration for database-related code changes using scripted database schema changes, the usage of multiple database schemas to overcome centralized deployments for development teams, how to migrate data in incremental steps, and what tools can help in this agile environment. We discuss how to break down database refactorings in small and incremental steps, one of the most important parts of integrating database changes into an agile development flow.

Play

Recording Venue: MongoSF, San Francisco

Guest: Dwight Merriman

Dwight Merriman

As application data size and throughput have outgrown the processing and storage needs of commodity servers, replication has become an increasingly important strategy. In this episode, Robert talks with Dwight Merriman about database replication. Topics covered include replication basics, master-slave versus master-master, failure and recovery, replication versus backup, whether replication primarily for scaling or for availability, and the internals of MongoDB replica sets.

Play