Roles and responsibilities of software programmer