Which two teams would you normally separate when writing and testing software