software engineer developer productivity