developer purpose