Making decisions effectively as software engineers