customer software development