2018 software development trends