Specification by Example
Submitted by Antony Marcano on Mon, 10/03/2008 - 00:09.
'Internet radio' has come a long way since it first began. Long gone are the days where you have to seek out a station that plays the music you like, or several stations for those with more eclectic taste. Instead, services like Pandora.com and Last.fm create a personalised radio station that matches the user's own personal taste.
These personalised internet-radio stations are far more sophisticated than just specifying what genres and styles you like. In fact, you don't do that at all. With last.fm you provide one or more examples of songs that you like by uploading your music library data to their site. Software analyses the songs in your library finding common aspects of the music's 'DNA' - including genre, tempo and countless other sound characteristics in their database. From this they create a user-specific internet radio station that matches the users taste. As you listen, you give them feedback saying which songs you love and which ones you hate. Your future play-lists are refined with each piece of feedback you provide. This feedback is in itself more examples of songs that do and don't match your taste.
That is Specification by Example!
And, as several have been saying for years... Acceptance Test Driven Development is just that - Specification by Example - applied to software development.
These personalised internet-radio stations are far more sophisticated than just specifying what genres and styles you like. In fact, you don't do that at all. With last.fm you provide one or more examples of songs that you like by uploading your music library data to their site. Software analyses the songs in your library finding common aspects of the music's 'DNA' - including genre, tempo and countless other sound characteristics in their database. From this they create a user-specific internet radio station that matches the users taste. As you listen, you give them feedback saying which songs you love and which ones you hate. Your future play-lists are refined with each piece of feedback you provide. This feedback is in itself more examples of songs that do and don't match your taste.
That is Specification by Example!
And, as several have been saying for years... Acceptance Test Driven Development is just that - Specification by Example - applied to software development.
