Open source software development: theoretical perspectives